]> git.proxmox.com Git - mirror_edk2.git/commit
ArmVirtualizationPkg: introduce QemuFwCfgLib instance for DXE drivers
authorLaszlo Ersek <lersek@redhat.com>
Fri, 2 Jan 2015 12:04:15 +0000 (12:04 +0000)
committerlersek <lersek@Edk2>
Fri, 2 Jan 2015 12:04:15 +0000 (12:04 +0000)
commit6e2543b01d0cbd16b3fbcc6f12f6938d8c12bcc8
tree015b36479f53e7ef98ab54de7989282959473a16
parentad652d46941c6a1e0f828cb084fb6829c3abb68d
ArmVirtualizationPkg: introduce QemuFwCfgLib instance for DXE drivers

After reviewing OvmfPkg's use of its own QemuFwCfgLib instances, it is
clear that its only pre-DXE fw_cfg dependency concerns S3 support (the
QemuFwCfgS3Enabled() call in "PlatformPei/Platform.c").

For ARM guests, S3 is in the distant future, but we can see several
shorter term applications for fw_cfg that all reside in DXE:
- controlling boot order (to be implemented in PlatformBdsLib for Intel
  BDS),
- supporting -kernel / -initrd / -append boot on QEMU (to be implemented
  in PlatformBdsLib for Intel BDS, similarly),
- loading and linking ACPI tables,
- installing SMBIOS tables.

Therefore it makes sense to add a simple MMIO-based fw_cfg client library
to ArmVirtualizationPkg that for the moment is only available to
DXE_DRIVER modules.

Because MMIO accesses are costly on KVM/ARM, InternalQemuFwCfgReadBytes()
accesses the fw_cfg data register in full words. This speeds up transfers
almost linearly.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16567 6f19259b-4bc3-4df7-8a09-765794883524
ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
ArmPlatformPkg/ArmVirtualizationPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c [new file with mode: 0644]
ArmPlatformPkg/ArmVirtualizationPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf [new file with mode: 0644]