Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Laszlo Ersek 6e2543b01d 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
2015-01-02 12:04:15 +00:00
AppPkg AppPkg: Disable Lua builds by default. Update the ReadMe file. 2014-11-11 23:15:32 +00:00
ArmPkg ArmPkg/AsmMacroIoLib: Fixed the global variables initialization 2014-12-12 19:32:50 +00:00
ArmPlatformPkg ArmVirtualizationPkg: introduce QemuFwCfgLib instance for DXE drivers 2015-01-02 12:04:15 +00:00
BaseTools Rollback change 16544. 2014-12-30 03:03:37 +00:00
BeagleBoardPkg ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CryptoPkg Correct the Hash Calculation for Revoked X.509 Certificate to align with RFC3280 and UEFI 2.4 Spec. 2014-12-25 08:37:08 +00:00
DuetPkg Change NT32 and DUET to use UEFI Shell by default. Use "-D USE_OLD_SHELL" for NT32 to use EDK Shell. 2014-11-25 08:53:33 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Make this field name match the name in the spec. 2014-11-26 01:22:15 +00:00
EdkShellBinPkg EDK II Contributions.txt: Update patch format information 2014-10-31 22:05:50 +00:00
EdkShellPkg EDK II Contributions.txt: Update patch format information 2014-10-31 22:05:50 +00:00
EmbeddedPkg EmbeddedPkg/Lan9118Dxe: Remove link check in SNP initialization 2014-11-11 00:49:50 +00:00
EmulatorPkg EmulatorPkg/MpService: add enabled processor check for startupThisAP 2014-11-21 22:46:49 +00:00
FatBinPkg EDK II Contributions.txt: Update patch format information 2014-10-31 22:05:50 +00:00
IntelFrameworkModulePkg Address the potential system TPL does not been restore. 2014-12-24 00:53:11 +00:00
IntelFrameworkPkg IntelFrameworkPkg: fix mixed dos and linux EOL format issue 2014-12-23 08:31:24 +00:00
IntelFspPkg Move EndOfPei signal earlier before giving control back to FspInitDone. 2014-12-06 01:05:19 +00:00
IntelFspWrapperPkg Fix typo. 2014-12-04 06:03:58 +00:00
MdeModulePkg Remove the FV header assumption in variable driver. 2014-12-31 01:46:50 +00:00
MdePkg Do not assert when the device path node length is invalid. 2014-12-23 09:56:33 +00:00
NetworkPkg Code refine. Check the original length of array to avoid buffer over flow. 2014-12-19 02:37:53 +00:00
Nt32Pkg Change NT32 and DUET to use UEFI Shell by default. Use "-D USE_OLD_SHELL" for NT32 to use EDK Shell. 2014-11-25 08:53:33 +00:00
Omap35xxPkg EDK II Contributions.txt: Update patch format information 2014-10-31 22:05:50 +00:00
OptionRomPkg EDK II Contributions.txt: Update patch format information 2014-10-31 22:05:50 +00:00
OvmfPkg OvmfPkg: enable the IPv6 support 2014-12-19 19:13:44 +00:00
PcAtChipsetPkg Initialize alarm register in PcRtc module entrypoint to make UEFI SCT GetWakeupTime pass. 2014-11-25 03:38:20 +00:00
PerformancePkg PerformancePkg: Update comments on TscTimerLib 2014-12-01 08:17:51 +00:00
SecurityPkg Remove the FV header assumption in variable driver. 2014-12-31 01:47:39 +00:00
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. 2014-12-05 02:33:45 +00:00
ShellPkg ShellPkg: Check the unrecognized environment variable name before it is removed from command line. 2014-12-31 01:31:00 +00:00
SourceLevelDebugPkg SourceLevelDebugPkg DebugAgentLib: Fix build error with GNU assembler 2014-12-17 05:31:42 +00:00
StdLib StdLib/BsdSocketLib: Fix function declaration mismatch with definition. 2014-12-02 21:30:41 +00:00
StdLibPrivateInternalFiles EDK II Contributions.txt: Update patch format information 2014-10-31 22:05:50 +00:00
UefiCpuPkg UefiCpuPkg CpuExceptionHandlerLib: Use %rax instead of %eax to make code consistence. 2014-12-17 05:30:33 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat Updated version, missed the last two commits and to add the SVN Revision property (last part of the version value). 2014-08-22 16:08:47 +00:00
Maintainers.txt Update some package owners 2014-10-23 01:35:44 +00:00
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when building the Nt32Pkg emulation platform (enabled using the --nt32 flag). 2014-10-30 17:09:25 +00:00
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout 2014-07-28 17:37:40 +00:00