Cc: Jaben Carsey <jaben.car...@intel.com> According to the comment from Jaben Carsey <jaben.car...@intel.com>, update PACKAGE_GUID and PACKAGE_VERSION in SecurityPkg.dec after the deletion of authenticated variable definition, VariableInfo, VariablePei and Auth Variable driver from SecurityPkg.
For your easy review, the forked code is at g...@github.com:lzeng14/edk2.git branch SeparateAuthVariableServiceV4. What to do: 1. Move TpmMeasurementLib LibraryClass from SecurityPkg to MdeModulePkg. 2. Implement a NULL TpmMeasurementLib library instance in MdeModulePkg. 3. Move authenticated variable definition from AuthenticatedVariableFormat.h to VariableFormat.h. 4. Merge VariableInfo in SecurityPkg to VariableInfo in MdeModulePkg. 5. Merge from VariablePei in SecurityPkg to VariablePei in MdeModulePkg. 6. Add AuthVariableLib LibraryClass definitions in MdeModulePkg. 7. Implement a NULL AuthVariableLib library instance in MdeModulePkg. 8. Implement AuthVariableLib library instance in SecurityPkg. 9. Merge from Auth Variable driver in SecurityPkg to Variable drive in MdeModulePkg. 10. Update platform package to use the merged Variable driver. Why to do: 1. Share code. We are moving forward to separate auth variable service from Auth Variable driver in SecurityPkg to AuthVariableLib. Then the AuthVariableLib could benefit and be used by different implementation of Auth Variable drivers. 2. Remove code duplication and reduce maintenance effort. 2.1. After auth variable service separated from Auth Variable driver in SecurityPkg to AuthVariableLib. The remaining code logic of Auth Variable driver in SecurityPkg will be almost same with Variable driver in MdeModulePkg. We are going to merge them. 2.2. The functionality of VariableInfo in SecurityPkg has covered VariableInfo in MdeModulePkg. 2.3. The code logic of VariablePei in SecurityPkg is same with VariablePei in MdeModulePkg. 3. TpmMeasurementLib is consumed by Auth Variable driver in SecurityPkg now, as Auth Variable driver in SecurityPkg will be merged to Variable driver in MdeModulePkg, so the library class also needs to be moved to MdeModulePkg. 4. gEfiAuthenticatedVariableGuid will be used by both merged Variable driver and AuthVariableLib, AUTHENTICATED_VARIABLE_HEADER will be used by merged Variable driver. What test done: Nt32: Boot with SECURE_BOOT_ENABLE = TRUE or FALSE, enable secure boot with SECURE_BOOT_ENABLE = TRUE. OVMF: Boot with SECURE_BOOT_ENABLE = TRUE or FALSE, enable secure boot with SECURE_BOOT_ENABLE = TRUE. By Laszlo Ersek <ler...@redhat.com>, build -a X64 -p OvmfPkg/OvmfPkgX64.dsc -D SECURE_BOOT_ENABLE -t GCC48 -b DEBUG It booted all fine and the guest kernel confirmed secure boot was enabled Vlv2TbltDevice: Boot and enable secure boot with SECURE_BOOT_ENABLE = TRUE. ArmVirtQumu: Built and run both with SECURE_BOOT_ENABLE = TRUE and SECURE_BOOT_ENABLE, and both seem to work fine by Ard Biesheuvel <ard.biesheu...@linaro.org>. What is the impact to platform: 1. Only platform dsc and fdf need to be updated except the change in ArmPlatformPkg.dec and NorFlashAuthenticatedDxe.inf to remove gVariableAuthenticatedRuntimeDxeFileGuid and use gVariableRuntimeDxeFileGuid. Star Zeng (21): MdeModulePkg PlatDriOverrideDxe: Remove unneeded VARIABLE_HEADER reference MdeModulePkg: Move TpmMeasurementLib LibraryClass from SecurityPkg MdeModulePkg: Move authenticated variable definition from SecurityPkg MdeModulePkg VariableInfo: Merge from VariableInfo in SecurityPkg MdeModulePkg VariablePei: Merge from VariablePei in SecurityPkg MdeModulePkg: Add AuthVariableLib LibraryClass SecurityPkg: Implement AuthVariableLib library instance Nt32Pkg: Link AuthVariableLib for following merged variable driver deploy OvmfPkg: Link AuthVariableLib for following merged variable driver deploy EmulatorPkg: Add TpmMeasurementLib and AuthVariableLib library mapping ArmPlatformPkg: Add TpmMeasurementLib and AuthVariableLib library mapping ArmVirtPkg: Link AuthVariableLib for following merged variable driver deploy Vlv2TbltDevicePkg: Link AuthVariableLib for following merged variable driver deploy MdeModulePkg Variable: Merge from Auth Variable driver in SecurityPkg Nt32Pkg: Use the merged Variable driver OvmfPkg: Use the merged Variable driver ArmPlatformPkg: Use the merged Variable driver ArmVirtPkg: Cleanup redundant library class resolution of Variable modules ArmVirtPkg: Use the merged Variable driver Vlv2TbltDevicePkg: Use the merged Variable driver SecurityPkg: Delete Auth Variable driver ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc | 7 +- ArmPlatformPkg/ArmPlatformPkg.dec | 5 +- .../ArmRealViewEbPkg/ArmRealViewEb-RTSM-A8.dsc | 7 +- .../ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-CTA9x4.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-RTSM-A15.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc | 7 +- .../ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc | 7 +- .../NorFlashDxe/NorFlashAuthenticatedDxe.inf | 5 +- ArmVirtPkg/ArmVirt.dsc.inc | 5 + ArmVirtPkg/ArmVirtQemu.dsc | 15 +- ArmVirtPkg/ArmVirtQemu.fdf | 9 +- EmulatorPkg/EmulatorPkg.dsc | 4 +- .../Application/VariableInfo/VariableInfo.c | 209 +- .../Application/VariableInfo/VariableInfo.inf | 25 +- .../Application/VariableInfo/VariableInfo.uni | Bin 2430 -> 2904 bytes MdeModulePkg/Include/Guid/SmmVariableCommon.h | 8 +- MdeModulePkg/Include/Guid/VariableFormat.h | 68 +- MdeModulePkg/Include/Library/AuthVariableLib.h | 261 ++ MdeModulePkg/Include/Library/TpmMeasurementLib.h | 44 + MdeModulePkg/Include/Protocol/VarCheck.h | 6 + .../AuthVariableLibNull/AuthVariableLibNull.c | 78 + .../AuthVariableLibNull/AuthVariableLibNull.inf | 40 + .../AuthVariableLibNull/AuthVariableLibNull.uni | Bin 0 -> 1710 bytes .../TpmMeasurementLibNull/TpmMeasurementLibNull.c | 45 + .../TpmMeasurementLibNull.inf | 34 + .../TpmMeasurementLibNull.uni | Bin 0 -> 1654 bytes MdeModulePkg/MdeModulePkg.dec | 12 + MdeModulePkg/MdeModulePkg.dsc | 4 + .../PlatformDriOverrideDxe/PlatDriOverrideLib.c | 3 +- .../Universal/Variable/Pei/PeiVariable.uni | Bin 2130 -> 2182 bytes MdeModulePkg/Universal/Variable/Pei/Variable.c | 194 +- MdeModulePkg/Universal/Variable/Pei/Variable.h | 4 +- .../Universal/Variable/Pei/VariablePei.inf | 9 +- .../Universal/Variable/RuntimeDxe/Measurement.c | 255 ++ .../Universal/Variable/RuntimeDxe/Reclaim.c | 5 +- .../Universal/Variable/RuntimeDxe/VarCheck.c | 234 +- .../Universal/Variable/RuntimeDxe/Variable.c | 1156 ++++-- .../Universal/Variable/RuntimeDxe/Variable.h | 455 ++- .../Universal/Variable/RuntimeDxe/VariableDxe.c | 83 +- .../Universal/Variable/RuntimeDxe/VariableExLib.c | 256 ++ .../Variable/RuntimeDxe/VariableRuntimeDxe.inf | 48 +- .../Variable/RuntimeDxe/VariableRuntimeDxe.uni | Bin 2588 -> 3150 bytes .../Universal/Variable/RuntimeDxe/VariableSmm.c | 77 +- .../Universal/Variable/RuntimeDxe/VariableSmm.inf | 61 +- .../Universal/Variable/RuntimeDxe/VariableSmm.uni | Bin 3746 -> 4454 bytes .../Variable/RuntimeDxe/VariableSmmExtra.uni | Bin 1348 -> 1332 bytes .../Variable/RuntimeDxe/VariableSmmRuntimeDxe.c | 130 +- .../Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf | 43 +- Nt32Pkg/Nt32Pkg.dsc | 12 +- Nt32Pkg/Nt32Pkg.fdf | 8 +- OvmfPkg/OvmfPkgIa32.dsc | 9 +- OvmfPkg/OvmfPkgIa32.fdf | 6 +- OvmfPkg/OvmfPkgIa32X64.dsc | 9 +- OvmfPkg/OvmfPkgIa32X64.fdf | 6 +- OvmfPkg/OvmfPkgX64.dsc | 9 +- OvmfPkg/OvmfPkgX64.fdf | 6 +- .../Application/VariableInfo/VariableInfo.c | 265 -- .../Application/VariableInfo/VariableInfo.inf | 63 - .../Application/VariableInfo/VariableInfo.uni | Bin 2902 -> 0 bytes .../Application/VariableInfo/VariableInfoExtra.uni | Bin 1360 -> 0 bytes .../Include/Guid/AuthenticatedVariableFormat.h | 184 +- SecurityPkg/Include/Library/TpmMeasurementLib.h | 44 - SecurityPkg/Library/AuthVariableLib/AuthService.c | 2432 ++++++++++++ .../Library/AuthVariableLib/AuthServiceInternal.h | 411 ++ .../Library/AuthVariableLib/AuthVariableLib.c | 460 +++ .../Library/AuthVariableLib/AuthVariableLib.inf | 86 + .../Library/AuthVariableLib/AuthVariableLib.uni | Bin 0 -> 1670 bytes .../DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf | 5 +- SecurityPkg/SecurityPkg.dec | 12 +- SecurityPkg/SecurityPkg.dsc | 11 +- .../EsalVariableDxeSal/AuthService.c | 42 +- .../EsalVariableDxeSal/Variable.c | 220 +- .../EsalVariableDxeSal/Variable.h | 18 +- .../VariableAuthenticated/Pei/PeiVariableAuth.uni | Bin 2170 -> 0 bytes .../VariableAuthenticated/Pei/PeiVariableExtra.uni | Bin 1348 -> 0 bytes SecurityPkg/VariableAuthenticated/Pei/Variable.c | 1087 ----- SecurityPkg/VariableAuthenticated/Pei/Variable.h | 148 - .../VariableAuthenticated/Pei/VariablePei.inf | 73 - .../VariableAuthenticated/RuntimeDxe/AuthService.c | 2532 ------------ .../VariableAuthenticated/RuntimeDxe/AuthService.h | 360 -- .../VariableAuthenticated/RuntimeDxe/Measurement.c | 255 -- .../VariableAuthenticated/RuntimeDxe/Reclaim.c | 161 - .../VariableAuthenticated/RuntimeDxe/VarCheck.c | 1264 ------ .../VariableAuthenticated/RuntimeDxe/Variable.c | 4170 -------------------- .../VariableAuthenticated/RuntimeDxe/Variable.h | 842 ---- .../RuntimeDxe/VariableAuthRuntimeDxe.uni | Bin 3204 -> 0 bytes .../RuntimeDxe/VariableAuthSmm.uni | Bin 4488 -> 0 bytes .../RuntimeDxe/VariableAuthSmmRuntimeDxe.uni | Bin 3320 -> 0 bytes .../VariableAuthenticated/RuntimeDxe/VariableDxe.c | 530 --- .../RuntimeDxe/VariableRuntimeDxe.inf | 158 - .../RuntimeDxe/VariableRuntimeDxeExtra.uni | Bin 1376 -> 0 bytes .../VariableAuthenticated/RuntimeDxe/VariableSmm.c | 988 ----- .../RuntimeDxe/VariableSmm.inf | 165 - .../RuntimeDxe/VariableSmmExtra.uni | Bin 1332 -> 0 bytes .../RuntimeDxe/VariableSmmRuntimeDxe.c | 1118 ------ .../RuntimeDxe/VariableSmmRuntimeDxe.inf | 102 - .../RuntimeDxe/VariableSmmRuntimeDxeExtra.uni | Bin 1390 -> 0 bytes Vlv2TbltDevicePkg/PlatformPkg.fdf | 14 +- Vlv2TbltDevicePkg/PlatformPkgGcc.fdf | 14 +- Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc | 32 +- Vlv2TbltDevicePkg/PlatformPkgIA32.dsc | 32 +- Vlv2TbltDevicePkg/PlatformPkgX64.dsc | 32 +- 106 files changed, 6885 insertions(+), 15470 deletions(-) create mode 100644 MdeModulePkg/Include/Library/AuthVariableLib.h create mode 100644 MdeModulePkg/Include/Library/TpmMeasurementLib.h create mode 100644 MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.c create mode 100644 MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf create mode 100644 MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.uni create mode 100644 MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.c create mode 100644 MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf create mode 100644 MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.uni create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/VariableExLib.c delete mode 100644 SecurityPkg/Application/VariableInfo/VariableInfo.c delete mode 100644 SecurityPkg/Application/VariableInfo/VariableInfo.inf delete mode 100644 SecurityPkg/Application/VariableInfo/VariableInfo.uni delete mode 100644 SecurityPkg/Application/VariableInfo/VariableInfoExtra.uni delete mode 100644 SecurityPkg/Include/Library/TpmMeasurementLib.h create mode 100644 SecurityPkg/Library/AuthVariableLib/AuthService.c create mode 100644 SecurityPkg/Library/AuthVariableLib/AuthServiceInternal.h create mode 100644 SecurityPkg/Library/AuthVariableLib/AuthVariableLib.c create mode 100644 SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf create mode 100644 SecurityPkg/Library/AuthVariableLib/AuthVariableLib.uni delete mode 100644 SecurityPkg/VariableAuthenticated/Pei/PeiVariableAuth.uni delete mode 100644 SecurityPkg/VariableAuthenticated/Pei/PeiVariableExtra.uni delete mode 100644 SecurityPkg/VariableAuthenticated/Pei/Variable.c delete mode 100644 SecurityPkg/VariableAuthenticated/Pei/Variable.h delete mode 100644 SecurityPkg/VariableAuthenticated/Pei/VariablePei.inf delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.h delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/Measurement.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/Reclaim.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VarCheck.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableAuthRuntimeDxe.uni delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableAuthSmm.uni delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableAuthSmmRuntimeDxe.uni delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxeExtra.uni delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.inf delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmExtra.uni delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxe.c delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxe.inf delete mode 100644 SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxeExtra.uni -- 1.9.5.msysgit.0 ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel