Date
1 - 3 of 3
[PATCH V4 0/8] Enable secure-boot when lauch OVMF with -bios parameter
Min Xu
Secure-Boot related variables include the PK/KEK/DB/DBX and they are
stored in NvVarStore (OVMF_VARS.fd). When lauching with -pflash, QEMU/OVMF will use emulated flash, and fully support UEFI variables. But when launching with -bios parameter, UEFI variables will be partially emulated, and non-volatile variables may lose their contents after a reboot. See OvmfPkg/README. Tdx guest is an example that -pflash is not supported. So this patch-set is designed to initialize the NvVarStore with the content of in OVMF_VARS.fd. patch 1: Add a new function (AllocateRuntimePages) in PrePiMemoryAllocationLib. This function will be used in PeilessStartupLib which will run in SEC phase. patch 2: Delete the TdxValidateCfv in PeilessStartupLib. Because it is going to be renamed to PlatformValidateNvVarStore and be moved to PlatformInitLib. patch 3 - 7: Then we add functions for EmuVariableNvStore in PlatformInitLib. This lib will then be called in OvmfPkg/PlatformPei and PeilessStartupLib. We also shortcut ConnectNvVarsToFileSystem in secure-boot. patch 8: At last a build-flag (SECURE_BOOT_FEATURE_ENABLED) is introduced in the dsc in OvmfPkg. Because the copy over of OVMR_VARS.fd to EmuVariableNvStore is only required when secure-boot is enabled. Code: https://github.com/mxu9/edk2/tree/secure-boot.v4 v4 chagnes: - "EmbeddedPkg: Add AllocateRuntimePages in PrePiMemoryAllocationLib" is missed in v3. It is added in this version. - No other changes. v3 changes: - Renamed TdxValidateCfv to PlatformValidateNvVarStore and implemented in PlatformInitlLib/Platform.c. - Shortcut ConnectNvVarsToFileSystem in secure-boot. - Other minor changes, such as adding log in PlatformInitEmuVariableNvStore. v2 changes: - The v1 title is "Enable Secure-Boot in Tdx guest". Because the patch-setwe was first designed to fix the gap when secure-boot feature was enabled in Tdx guest. After discussing with the community (see the disuccsions under https://edk2.groups.io/g/devel/message/90589) this patch-set can fix the secure-boot issue when OVMF is lauched with -bios parameter. So the title is updated. - Add a new function (AllocateRuntimePages) in PrePiMemoryAllocationLib. - Add build-flag SECURE_BOOT_FEATURE_ENABLED to control the copy over of OVMF_VARS.fd to EmuVariableNvStore. Cc: Leif Lindholm <quic_llindhol@...> Cc: Ard Biesheuvel <ardb+tianocore@...> Cc: Abner Chang <abner.chang@...> Cc: Daniel Schaefer <daniel.schaefer@...> Cc: Erdem Aktas <erdemaktas@...> Cc: James Bottomley <jejb@...> [jejb] Cc: Jiewen Yao <jiewen.yao@...> [jyao1] Cc: Tom Lendacky <thomas.lendacky@...> [tlendacky] Cc: Gerd Hoffmann <kraxel@...> Signed-off-by: Min Xu <min.m.xu@...> Min M Xu (8): EmbeddedPkg: Add AllocateRuntimePages in PrePiMemoryAllocationLib OvmfPkg/PeilessStartupLib: Delete TdxValidateCfv OvmfPkg/PlatformInitLib: Add functions for EmuVariableNvStore OvmfPkg/PlatformPei: Update ReserveEmuVariableNvStore OvmfPkg: Reserve and init EmuVariableNvStore in Pei-less Startup OvmfPkg/NvVarsFileLib: Shortcut ConnectNvVarsToFileSystem in secure-boot OvmfPkg/TdxDxe: Set PcdEmuVariableNvStoreReserved OvmfPkg: Add build-flag SECURE_BOOT_FEATURE_ENABLED EmbeddedPkg/Include/Library/PrePiLib.h | 19 ++ .../MemoryAllocationLib.c | 64 +++-- OvmfPkg/CloudHv/CloudHvX64.dsc | 9 + OvmfPkg/Include/Library/PlatformInitLib.h | 51 ++++ OvmfPkg/IntelTdx/IntelTdxX64.dsc | 9 + OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.c | 7 + OvmfPkg/Library/PeilessStartupLib/IntelTdx.c | 153 ----------- .../PeilessStartupLib/PeilessStartup.c | 15 +- .../PeilessStartupInternal.h | 17 -- OvmfPkg/Library/PlatformInitLib/Platform.c | 238 ++++++++++++++++++ .../PlatformInitLib/PlatformInitLib.inf | 3 + OvmfPkg/OvmfPkgIa32.dsc | 9 + OvmfPkg/OvmfPkgIa32X64.dsc | 9 + OvmfPkg/OvmfPkgX64.dsc | 9 + OvmfPkg/PlatformPei/Platform.c | 25 +- OvmfPkg/TdxDxe/TdxDxe.c | 2 + OvmfPkg/TdxDxe/TdxDxe.inf | 1 + 17 files changed, 428 insertions(+), 212 deletions(-) -- 2.29.2.windows.2
|
|
Min Xu
Hi, Gerd
toggle quoted messageShow quoted text
Do you have any comments to this patch-set? Thanks Min
-----Original Message-----
|
|
Gerd Hoffmann
On Wed, Jul 20, 2022 at 06:38:32AM +0000, Xu, Min M wrote:
Hi, GerdWith this in place it should be possible to allow secure boot builds for AmdSev and Microvm, that is something I plan to try for additional verification. Havn't found the time to to so, and most likely wouldn't before my summer vacation (starting next week and ending after soft freeze). Have to drop that ball I guess ... From looking at the code this all looks sane. Acked-by: Gerd Hoffmann <kraxel@...> take care, Gerd
|
|