audk/ArmVirtPkg/Library
Ard Biesheuvel 72e514c907 ArmVirtPkg/NorFlashQemuLib: discover NOR flash banks dynamically
NorFlashQemuLib is one of the last remaining drivers in ArmVirtPkg
that are not based on the device tree received from QEMU.

For ArmVirtQemu, this does not really matter, given that the NOR
flash banks are always the same: the PEI code is linked to execute
in place from flash bank #0, and the fixed varstore PCDs refer to
flash bank #1 directly.

However, ArmVirtQemuKernel can execute at any offset, permitting it
to be used as an intermediary loader when running QEMU with secure
world emulation enabled, in which case NOR flash bank #0 is secure
only and contains the secure world firmware. In this case,
NorFlashQemuLib should not expose the first flash bank at all.

To prevent introducing too much internal knowledge about which flash
bank is accessible under which circumstances, let's switch to using
the DTB to decide which flash banks to expose to the NOR flash driver.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
2018-11-26 17:57:41 +01:00
..
ArmVirtDxeHobLib ArmVirtPkg: Removing ipf which is no longer supported from edk2. 2018-06-29 16:19:36 +08:00
ArmVirtGicArchLib ArmVirtPkg/ArmVirtGicArchLib: eliminate unchecked PcdSetXX() calls 2016-10-25 10:46:29 +02:00
ArmVirtMemoryInitPeiLib ArmVirtPkg/ArmVirtMemoryInitPeiLib: move to ArmVirtMemInfoLib 2017-11-23 16:53:29 +00:00
ArmVirtPL031FdtClientLib ArmVirtPkg/ArmVirtPL031FdtClientLib: unconditionally disable DT node 2017-03-09 18:37:04 +01:00
ArmVirtPsciResetSystemLib ArmVirtPkg: switch to generic ResetSystemRuntimeDxe 2017-07-03 18:49:56 +01:00
ArmVirtTimerFdtClientLib ArmVirtPkg/ArmVirtTimerFdtClientLib: eliminate unchecked PcdSetXX() calls 2016-10-25 10:46:35 +02:00
BaseCachingPciExpressLib ArmVirtPkg/BaseCachingPciExpressLib: depend on PciPcdProducerLib 2016-04-12 16:57:20 +02:00
FdtPL011SerialPortLib ArmVirtPkg: switch to new PL011UartLib implementation 2017-11-17 10:02:36 +00:00
FdtPciHostBridgeLib ArmVirtPkg/FdtPciHostBridgeLib: enable 64-bit PCI DMA 2016-09-06 15:46:53 +01:00
FdtPciPcdProducerLib ArmVirtPkg/FdtPciPcdProducerLib: eliminate unchecked PcdSetXX() calls 2016-10-25 10:46:36 +02:00
NorFlashQemuLib ArmVirtPkg/NorFlashQemuLib: discover NOR flash banks dynamically 2018-11-26 17:57:41 +01:00
PlatformBootManagerLib ArmVirtPkg/PlatformBDS: Implement PlatformBootManagerUnableToBoot 2018-07-27 15:47:55 +08:00
PlatformPeiLib ArmVirtPkg/PlatformPeiLib: honor DT node 'status' property 2017-04-04 15:25:19 +01:00
QemuFwCfgLib ArmVirtPkg, OvmfPkg: retire QemuFwCfgS3Enabled() from QemuFwCfgLib 2017-03-14 21:49:16 +01:00
QemuVirtMemInfoLib ArmVirtPkg: create QemuVirtMemInfoLib version for ArmVirtQemu 2017-11-23 16:53:26 +00:00
XenArmGenericTimerVirtCounterLib ArmVirtPkg: reinstate timer unmask quirk for Xen 2018-04-26 08:31:40 +02:00
XenRealTimeClockLib ArmVirtPkg: XenRealTimeClockLib: fixup typo in Linaro copyright notice 2015-06-08 22:00:32 +00:00
XenVirtMemInfoLib ArmVirtPkg/ArmVirtXen: add ArmVirtMemInfoLib implementation 2017-11-23 16:05:28 +00:00