REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1323
Purpose: 1. Add emulated variable NV mode support in MdeModulePkg\Universal\Variable\RuntimeDxe. Platform can configure PCD statically (build time) or dynamically (boot time) to support emulated variable NV mode. 2. Remove MdeModulePkg\Universal\Variable\EmuRuntimeDxe whose most codes are duplicated. V2: Addressed all the feedbacks from Laszlo, thanks. Repo: g...@github.com:lzeng14/edk2.git Branch: MergedVariableDriver_EmuNvMode_V2 Patches 1~7: Preparation Patch 6 and 7 are new separated. Patch 8~9: Real work Patch 10~15: Migration for platforms and cleanup Patch 11 is new added to let ArmVirtXen be aligned with ArmVirtQemuXXX. V1: Repo: g...@github.com:lzeng14/edk2.git Branch: MergedVariableDriver_EmuNvMode Patches 1~5: Preparation Patch 6~7: Real work Patch 8~12: Migration for platforms and cleanup Test done: Build code with VS2012, VS2015 and GCC49. Regression: Boot Nt32, Ovmf (including 32, 3264 and 64 with no SMM) to UEFI SHELL. Boot some internal platform to UEFI SHELL and Windows. Functionality: Boot Nt32, Ovmf (including 32, 3264 and 64 with no SMM) to UEFI SHELL with PcdEmuVariableNvModeEnable == TRUE. More test will be welcome and appreciated. :) Patches to update edk2-platforms Repo will be sent out separately. Star Zeng (15): MdeModulePkg Variable: Add some missing changes for 9b18845 MdeModulePkg Variable: Abstract InitRealNonVolatileVariableStore MdeModulePkg Variable: Not get NV PCD in VariableWriteServiceInitialize MdeModulePkg Variable: Abstract VariableWriteServiceInitializeDxe/Smm MdeModulePkg: Add PcdEmuVariableNvModeEnable in dec MdeModulePkg Variable: Remove CacheOffset in UpdateVariable() MdeModulePkg Variable: type case VolatileBase to UINTN directly MdeModulePkg Variable: Add emulated variable NV mode support MdeModulePkg VariablePei: Don't check BOOT_IN_RECOVERY_MODE ArmVirtXen: Use merged variable driver for emulated NV mode ArmVirtXen: Link VarCheckUefiLib NULL class library instance BeagleBoardPkg: Use merged variable driver for emulated NV mode QuarkMin: Use merged variable driver for emulated NV mode CorebootPayloadPkg: Use merged variable driver for emulated NV mode MdeModulePkg: Remove EmuVariableRuntimeDxe ArmVirtPkg/ArmVirtXen.dsc | 12 +- ArmVirtPkg/ArmVirtXen.fdf | 4 +- BeagleBoardPkg/BeagleBoardPkg.dsc | 13 +- BeagleBoardPkg/BeagleBoardPkg.fdf | 4 +- CorebootPayloadPkg/CorebootPayloadPkg.fdf | 4 +- CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | 11 +- CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 11 +- MdeModulePkg/MdeModulePkg.dec | 10 +- MdeModulePkg/MdeModulePkg.dsc | 5 +- MdeModulePkg/MdeModulePkg.uni | 10 +- .../Universal/Variable/EmuRuntimeDxe/EmuVariable.c | 1820 -------------------- .../EmuRuntimeDxe/EmuVariableRuntimeDxe.inf | 88 - .../EmuRuntimeDxe/EmuVariableRuntimeDxe.uni | 22 - .../EmuRuntimeDxe/EmuVariableRuntimeDxeExtra.uni | 19 - .../Variable/EmuRuntimeDxe/InitVariable.c | 259 --- .../Universal/Variable/EmuRuntimeDxe/Variable.h | 277 --- MdeModulePkg/Universal/Variable/Pei/Variable.c | 8 +- .../Universal/Variable/Pei/VariablePei.inf | 3 +- .../Universal/Variable/RuntimeDxe/Variable.c | 431 +++-- .../Universal/Variable/RuntimeDxe/Variable.h | 10 +- .../Universal/Variable/RuntimeDxe/VariableDxe.c | 100 +- .../Variable/RuntimeDxe/VariableRuntimeDxe.inf | 4 +- .../Universal/Variable/RuntimeDxe/VariableSmm.c | 88 +- .../Universal/Variable/RuntimeDxe/VariableSmm.inf | 4 +- QuarkPlatformPkg/QuarkMin.dsc | 8 +- QuarkPlatformPkg/QuarkMin.fdf | 4 +- 26 files changed, 505 insertions(+), 2724 deletions(-) delete mode 100644 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c delete mode 100644 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf delete mode 100644 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.uni delete mode 100644 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxeExtra.uni delete mode 100644 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/InitVariable.c delete mode 100644 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/Variable.h -- 2.7.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel