From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.43; helo=mga05.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 30C80211B76AE for ; Tue, 15 Jan 2019 02:29:42 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jan 2019 02:29:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,481,1539673200"; d="scan'208";a="310538352" Received: from shwdeopenpsi068.ccr.corp.intel.com ([10.239.158.46]) by fmsmga006.fm.intel.com with ESMTP; 15 Jan 2019 02:29:41 -0800 From: Star Zeng To: edk2-devel@lists.01.org Cc: Star Zeng Date: Tue, 15 Jan 2019 18:29:22 +0800 Message-Id: <1547548179-42552-1-git-send-email-star.zeng@intel.com> X-Mailer: git-send-email 2.7.0.windows.1 Subject: [PATCH V3 00/17] Merge EmuVariable and Real variable driver X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jan 2019 10:29:43 -0000 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. V3: Addressed all the great feedbacks from Jian, Hao, Laszlo and Leif, thanks. Pick up RB and AB tags. Repo: git@github.com:lzeng14/edk2.git Branch: MergedVariableDriver_EmuNvMode_V3 Patches 1~9: Preparation Patch 3 and 9 are new added based on feedbacks. Patch 10~11: Real work Patch 12~17: Migration for platforms and cleanup V2: Addressed all the feedbacks from Laszlo, thanks. Repo: git@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: git@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 (17): MdeModulePkg Variable: Add some missing changes for 9b18845 MdeModulePkg Variable: Abstract InitRealNonVolatileVariableStore MdeModulePkg Variable: Move "extern XXX" to Variable.h MdeModulePkg Variable: Not get NV PCD in VariableWriteServiceInitialize MdeModulePkg Variable: Abstract VariableWriteServiceInitializeDxe/Smm MdeModulePkg Variable: Remove CacheOffset in UpdateVariable() MdeModulePkg Variable: type case VolatileBase to UINTN directly MdeModulePkg: Add PcdEmuVariableNvModeEnable in dec MdeModulePkg: Refine description a little for PcdEmuVariableNvStoreReserved 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 | 14 +- BeagleBoardPkg/BeagleBoardPkg.fdf | 4 +- CorebootPayloadPkg/CorebootPayloadPkg.fdf | 4 +- CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | 11 +- CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 11 +- MdeModulePkg/MdeModulePkg.dec | 16 +- MdeModulePkg/MdeModulePkg.dsc | 5 +- MdeModulePkg/MdeModulePkg.uni | 14 +- .../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 | 19 +- .../Universal/Variable/RuntimeDxe/VariableDxe.c | 103 +- .../Variable/RuntimeDxe/VariableRuntimeDxe.inf | 4 +- .../Universal/Variable/RuntimeDxe/VariableSmm.c | 90 +- .../Universal/Variable/RuntimeDxe/VariableSmm.inf | 4 +- QuarkPlatformPkg/QuarkMin.dsc | 8 +- QuarkPlatformPkg/QuarkMin.fdf | 4 +- 26 files changed, 518 insertions(+), 2736 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