https://github.com/jljusten/edk2.git ovmf-nvvars-v2
This series implements support for QEMU's emulated system flash. This allows for persistent UEFI non-volatile variables. Previously we attempted to emulate non-volatile variables in a few ways, but each of them would fail in particular situations. To support flash based variable storage, we: * Reserve space in the firmware device image * Add a new flash firmware volume block driver * Disable EmuVariableFvbRuntimeDxe (at runtime) if QEMU flash is available. To use: * QEMU version 1.1 or newer is required without KVM * KVM support requires Linux 3.7 and QEMU 1.6 * Run QEMU with -pflash OVMF.fd instead of -L or -bios or use OvmfPkg/build.sh --enable-flash qemu ... * If QEMU is 1.6 or newer, then OvmfPkg/build.sh will automatically enable flash when running QEMU, so in that case --enable-flash is not required. See also: * http://wiki.qemu.org/Features/PC_System_Flash v2: * Replace "OvmfPkg/AcpiPlatformDxe/Qemu: Allow high runtime memory regions" with "OvmfPkg/AcpiPlatformDxe/Qemu: Decrease upper limit for PCI window 32" * Separate portions of "OvmfPkg/build.sh: Support --enable-flash switch" out into a new patch "OvmfPkg/build.sh: Enable flash for QEMU >= 1.6" * Add "OvmfPkg/README: Add information about OVMF flash layout" * Update "OvmfPkg: Add NV Variable storage within FD" to also change the size of PcdVariableStoreSize * Update commit messages on a couple patches for better clarity Jordan Justen (10): OvmfPkg: Increase DEBUG build size to 2MB by default OvmfPkg: Add flash PCD items OvmfPkg: Add NV Variable storage within FD OvmfPkg/README: Add information about OVMF flash layout OvmfPkg/AcpiPlatformDxe/Qemu: Decrease upper limit for PCI window 32 OvmfPkg/EmuVariableFvbRuntimeDxe: Disable if flash variables are supported OvmfPkg: Add QemuFlashFvbServicesRuntimeDxe driver OvmfPkg: Add QemuFlashFvbServicesRuntimeDxe to firmware image OvmfPkg/build.sh: Support --enable-flash switch OvmfPkg/build.sh: Enable flash for QEMU >= 1.6 OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 1 + OvmfPkg/AcpiPlatformDxe/Qemu.c | 2 +- OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c | 6 + OvmfPkg/OvmfPkg.dec | 12 +- OvmfPkg/OvmfPkgIa32.dsc | 6 +- OvmfPkg/OvmfPkgIa32.fdf | 109 +- OvmfPkg/OvmfPkgIa32X64.dsc | 6 +- OvmfPkg/OvmfPkgIa32X64.fdf | 109 +- OvmfPkg/OvmfPkgX64.dsc | 6 +- OvmfPkg/OvmfPkgX64.fdf | 109 +- OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbInfo.c | 137 +++ .../FvbServicesRuntimeDxe.inf | 83 ++ .../FwBlockService.c | 1226 ++++++++++++++++++++ .../FwBlockService.h | 184 +++ OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 262 +++++ OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h | 89 ++ OvmfPkg/README | 37 + OvmfPkg/build.sh | 40 +- 18 files changed, 2362 insertions(+), 62 deletions(-) create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbInfo.c create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h -- 1.7.10.4 ------------------------------------------------------------------------------ November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
