audk/ArmVirtPkg
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
..
FdtClientDxe ArmVirtPkg/FdtClientDxe: take DT node 'status' properties into account 2018-11-26 17:57:37 +01:00
HighMemDxe ArmVirtPkg/HighMemDxe: check new regions against GCD memory space map 2017-03-21 10:41:25 +00:00
Include ArmVirtPkg: introduce ArmVirtMemInfoLib library class 2017-11-23 16:05:18 +00:00
Library ArmVirtPkg/NorFlashQemuLib: discover NOR flash banks dynamically 2018-11-26 17:57:41 +01:00
PlatformHasAcpiDtDxe ArmVirtPkg/PlatformHasAcpiDtDxe: depend on gEfiVariableArchProtocolGuid 2018-04-12 21:24:40 +02:00
PrePi ArmVirtPkg/PrePi: clear frame pointer in startup code 2018-11-19 11:10:10 -08:00
VirtioFdtDxe ArmVirtPkg/VirtFdtDxe: remove Xenio handling and rename to VirtioFdtDxe 2016-04-13 17:26:07 +02:00
XenAcpiPlatformDxe ArmVirtPkg/XenAcpiPlatformDxe: don't cast UINT64 to pointer directly 2017-03-28 13:48:39 +02:00
XenPlatformHasAcpiDtDxe MdeModulePkg: move PlatformHasAcpiGuid from EmbeddedPkg 2017-04-05 16:59:13 +01:00
XenioFdtDxe ArmVirtPkg/FdtClientDxe: report address and size cell count directly 2016-09-15 15:31:24 +01:00
ArmVirt.dsc.inc ArmVirtPkg: remove wrong and superfluous ResourcePublicationLib resolution 2018-07-24 22:44:29 +02:00
ArmVirtPkg.dec ArmVirtPkg: introduce ArmVirtMemInfoLib library class 2017-11-23 16:05:18 +00:00
ArmVirtQemu.dsc ArmVirtPkg/ArmVirtQemu: enable the IPv6 stack 2018-07-13 08:40:32 +02:00
ArmVirtQemu.fdf ArmVirtPkg: factor out Rules FDF section 2016-07-12 15:19:42 +02:00
ArmVirtQemuFvMain.fdf.inc ArmVirtPkg/ArmVirtQemu: enable the IPv6 stack 2018-07-13 08:40:32 +02:00
ArmVirtQemuKernel.dsc ArmVirtPkg/ArmVirtQemu: enable the IPv6 stack 2018-07-13 08:40:32 +02:00
ArmVirtQemuKernel.fdf ArmVirtPkg/ArmVirtQemuKernel: increase slack space for DTB 2017-04-04 16:00:12 +01:00
ArmVirtRules.fdf.inc ArmVirtPkg: Add Ramdisk support to ArmVirtPkg platforms 2016-08-22 09:05:17 +02:00
ArmVirtXen.dsc ArmVirtPkg: use protocol-based DevicePathLib instance for most DXE modules 2018-04-30 11:21:19 +02:00
ArmVirtXen.fdf ArmVirtPkg/ArmVirtXen: move from Intel to generic BDS 2017-12-04 16:12:34 +00:00
VarStore.fdf.inc ArmVirtPkg: add FDF definition for empty varstore 2016-06-23 16:07:38 +02:00