From: Min M Xu Date: Sat, 7 May 2022 01:36:22 +0000 (+0800) Subject: OvmfPkg/TdxDxe: Install MpInitLibDepLib protocols X-Git-Tag: edk2-stable202205~31 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=73d6d41de0ceeadb49b05ba75ca39dea84ae799d;hp=b63a49e056ea2ea64ff89d81da9583534f5e5117;p=mirror_edk2.git OvmfPkg/TdxDxe: Install MpInitLibDepLib protocols BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3918 In Td guest CpuDxe driver uses the MpInitLibUp, the other guest type use the MpInitLib. So we install different Protocols according to the current working guest type. Cc: Eric Dong Cc: Ray Ni Cc: Brijesh Singh Cc: Erdem Aktas Cc: James Bottomley Cc: Jiewen Yao Cc: Tom Lendacky Cc: Gerd Hoffmann Signed-off-by: Min Xu Tested-by: Tom Lendacky Acked-by: Gerd Hoffmann Acked-by: Jiewen Yao Reviewed-by: Ray Ni --- diff --git a/OvmfPkg/TdxDxe/TdxDxe.c b/OvmfPkg/TdxDxe/TdxDxe.c index f092999823..2318db9897 100644 --- a/OvmfPkg/TdxDxe/TdxDxe.c +++ b/OvmfPkg/TdxDxe/TdxDxe.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -250,13 +251,32 @@ TdxDxeEntryPoint ( if (!TdIsEnabled ()) { // - // If it is Non-Td guest, we're done. + // If it is Non-Td guest, we install gEfiMpInitLibMpDepProtocolGuid so that + // MpInitLib will be used in CpuDxe driver. // + gBS->InstallProtocolInterface ( + &ImageHandle, + &gEfiMpInitLibMpDepProtocolGuid, + EFI_NATIVE_INTERFACE, + NULL + ); + return EFI_SUCCESS; } SetMmioSharedBit (); + // + // It is Td guest, we install gEfiMpInitLibUpDepProtocolGuid so that + // MpInitLibUp will be used in CpuDxe driver. + // + gBS->InstallProtocolInterface ( + &ImageHandle, + &gEfiMpInitLibUpDepProtocolGuid, + EFI_NATIVE_INTERFACE, + NULL + ); + // // Call TDINFO to get actual number of cpus in domain // diff --git a/OvmfPkg/TdxDxe/TdxDxe.inf b/OvmfPkg/TdxDxe/TdxDxe.inf index 2ec2ef2ed5..a7e0abda15 100644 --- a/OvmfPkg/TdxDxe/TdxDxe.inf +++ b/OvmfPkg/TdxDxe/TdxDxe.inf @@ -50,6 +50,8 @@ gQemuAcpiTableNotifyProtocolGuid ## CONSUMES gEfiAcpiSdtProtocolGuid ## CONSUMES gEfiAcpiTableProtocolGuid ## CONSUMES + gEfiMpInitLibMpDepProtocolGuid + gEfiMpInitLibUpDepProtocolGuid [Pcd] gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase