From: Min M Xu <min.m.xu@intel.com>
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3918
This reverts commit 88da06ca763eb6514565c1867a801a427c1f3447.
This commit triggers the ASSERT in Non-Td guest.
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
---
UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 3 -
UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h | 69 ------------
UefiCpuPkg/Library/MpInitLib/MpLib.c | 63 +----------
UefiCpuPkg/Library/MpInitLib/MpLibTdx.c | 106 ------------------
UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c | 69 ------------
UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 3 -
6 files changed, 5 insertions(+), 308 deletions(-)
delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h
delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdx.c
delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c
diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
index 159b4d16ed0e..e1cd0b350008 100644
--- a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
+++ b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
@@ -24,12 +24,10 @@
[Sources.IA32]
Ia32/AmdSev.c
Ia32/MpFuncs.nasm
- MpLibTdxNull.c
[Sources.X64]
X64/AmdSev.c
X64/MpFuncs.nasm
- MpLibTdx.c
[Sources.common]
AmdSev.c
@@ -38,7 +36,6 @@
MpLib.c
MpLib.h
Microcode.c
- MpIntelTdx.h
[Packages]
MdePkg/MdePkg.dec
diff --git a/UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h b/UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h
deleted file mode 100644
index 8a26f6c19fc4..000000000000
--- a/UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/** @file
- CPU MP Initialize Library header file for Td guest.
-
- Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef MP_INTEL_TDX_H_
-#define MP_INTEL_TDX_H_
-
-#include <PiPei.h>
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Uefi/UefiBaseType.h>
-#include <Protocol/MpService.h>
-
-/**
- Gets detailed MP-related information on the requested processor at the
- instant this call is made. This service may only be called from the BSP.
-
- @param[in] ProcessorNumber The handle number of processor.
- @param[out] ProcessorInfoBuffer A pointer to the buffer where information for
- the requested processor is deposited.
- @param[out] HealthData Return processor health data.
-
- @retval EFI_SUCCESS Processor information was returned.
- @retval EFI_DEVICE_ERROR The calling processor is an AP.
- @retval EFI_INVALID_PARAMETER ProcessorInfoBuffer is NULL.
- @retval EFI_NOT_FOUND The processor with the handle specified by
- ProcessorNumber does not exist in the platform.
- @retval EFI_NOT_READY MP Initialize Library is not initialized.
-
-**/
-EFI_STATUS
-TdxMpInitLibGetProcessorInfo (
- IN UINTN ProcessorNumber,
- OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer,
- OUT EFI_HEALTH_FLAGS *HealthData OPTIONAL
- );
-
-/**
- Retrieves the number of logical processor in the platform and the number of
- those logical processors that are enabled on this boot. This service may only
- be called from the BSP.
-
- @param[out] NumberOfProcessors Pointer to the total number of logical
- processors in the system, including the BSP
- and disabled APs.
- @param[out] NumberOfEnabledProcessors Pointer to the number of enabled logical
- processors that exist in system, including
- the BSP.
-
- @retval EFI_SUCCESS The number of logical processors and enabled
- logical processors was retrieved.
- @retval EFI_DEVICE_ERROR The calling processor is an AP.
- @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL and NumberOfEnabledProcessors
- is NULL.
- @retval EFI_NOT_READY MP Initialize Library is not initialized.
-
-**/
-EFI_STATUS
-TdxMpInitLibGetNumberOfProcessors (
- OUT UINTN *NumberOfProcessors, OPTIONAL
- OUT UINTN *NumberOfEnabledProcessors OPTIONAL
- );
-
-#endif
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index 91c7afaeb2ad..4a73787ee43a 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -9,11 +9,9 @@
**/
#include "MpLib.h"
-#include "MpIntelTdx.h"
#include <Library/VmgExitLib.h>
#include <Register/Amd/Fam17Msr.h>
#include <Register/Amd/Ghcb.h>
-#include <ConfidentialComputingGuestAttr.h>
EFI_GUID mCpuInitMpLibHobGuid = CPU_INIT_MP_LIB_HOB_GUID;
@@ -1805,10 +1803,6 @@ MpInitLibInitialize (
UINTN BackupBufferAddr;
UINTN ApIdtBase;
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- return EFI_SUCCESS;
- }
-
OldCpuMpData = GetCpuMpDataFromGuidedHob ();
if (OldCpuMpData == NULL) {
MaxLogicalProcessorNumber = PcdGet32 (PcdCpuMaxLogicalProcessorNumber);
@@ -2079,10 +2073,6 @@ MpInitLibGetProcessorInfo (
CPU_INFO_IN_HOB *CpuInfoInHob;
UINTN OriginalProcessorNumber;
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- return TdxMpInitLibGetProcessorInfo (ProcessorNumber, ProcessorInfoBuffer, HealthData);
- }
-
CpuMpData = GetCpuMpData ();
CpuInfoInHob = (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;
@@ -2177,10 +2167,6 @@ SwitchBSPWorker (
BOOLEAN OldInterruptState;
BOOLEAN OldTimerInterruptState;
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- return EFI_UNSUPPORTED;
- }
-
//
// Save and Disable Local APIC timer interrupt
//
@@ -2321,10 +2307,6 @@ EnableDisableApWorker (
CPU_MP_DATA *CpuMpData;
UINTN CallerNumber;
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- return EFI_UNSUPPORTED;
- }
-
CpuMpData = GetCpuMpData ();
//
@@ -2385,11 +2367,6 @@ MpInitLibWhoAmI (
return EFI_INVALID_PARAMETER;
}
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- *ProcessorNumber = 0;
- return EFI_SUCCESS;
- }
-
CpuMpData = GetCpuMpData ();
return GetProcessorNumber (CpuMpData, ProcessorNumber);
@@ -2428,16 +2405,12 @@ MpInitLibGetNumberOfProcessors (
UINTN EnabledProcessorNumber;
UINTN Index;
+ CpuMpData = GetCpuMpData ();
+
if ((NumberOfProcessors == NULL) && (NumberOfEnabledProcessors == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- return TdxMpInitLibGetNumberOfProcessors (NumberOfProcessors, NumberOfEnabledProcessors);
- }
-
- CpuMpData = GetCpuMpData ();
-
//
// Check whether caller processor is BSP
//
@@ -2517,16 +2490,13 @@ StartupAllCPUsWorker (
BOOLEAN HasEnabledAp;
CPU_STATE ApState;
+ CpuMpData = GetCpuMpData ();
+
if (FailedCpuList != NULL) {
*FailedCpuList = NULL;
}
- Status = MpInitLibGetNumberOfProcessors (&ProcessorCount, NULL);
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- if ((ProcessorCount == 1) && ExcludeBsp) {
+ if ((CpuMpData->CpuCount == 1) && ExcludeBsp) {
return EFI_NOT_STARTED;
}
@@ -2534,22 +2504,6 @@ StartupAllCPUsWorker (
return EFI_INVALID_PARAMETER;
}
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- //
- // For Td guest ExcludeBsp must be FALSE. Otherwise it will return in above checks.
- //
- ASSERT (!ExcludeBsp);
-
- //
- // Start BSP.
- //
- Procedure (ProcedureArgument);
-
- return EFI_SUCCESS;
- }
-
- CpuMpData = GetCpuMpData ();
-
//
// Check whether caller processor is BSP
//
@@ -2689,13 +2643,6 @@ StartupThisAPWorker (
CPU_AP_DATA *CpuData;
UINTN CallerNumber;
- //
- // In Td guest, startup of AP is not supported in current stage.
- //
- if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
- return EFI_UNSUPPORTED;
- }
-
CpuMpData = GetCpuMpData ();
if (Finished != NULL) {
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLibTdx.c b/UefiCpuPkg/Library/MpInitLib/MpLibTdx.c
deleted file mode 100644
index fdb58fba9323..000000000000
--- a/UefiCpuPkg/Library/MpInitLib/MpLibTdx.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/** @file
- CPU MP Initialize Library common functions for Td guest.
-
- Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include "MpLib.h"
-#include "MpIntelTdx.h"
-
-/**
- Gets detailed MP-related information on the requested processor at the
- instant this call is made. This service may only be called from the BSP.
-
- In current stage only the BSP is workable. So ProcessorNumber should be 0.
-
- @param[in] ProcessorNumber The handle number of processor.
- @param[out] ProcessorInfoBuffer A pointer to the buffer where information for
- the requested processor is deposited.
- @param[out] HealthData Return processor health data.
-
- @retval EFI_SUCCESS Processor information was returned.
- @retval EFI_DEVICE_ERROR The calling processor is an AP.
- @retval EFI_INVALID_PARAMETER ProcessorInfoBuffer is NULL or ProcessorNumber is not 0.
- @retval EFI_NOT_FOUND The processor with the handle specified by
- ProcessorNumber does not exist in the platform.
- @retval EFI_NOT_READY MP Initialize Library is not initialized.
-
-**/
-EFI_STATUS
-TdxMpInitLibGetProcessorInfo (
- IN UINTN ProcessorNumber,
- OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer,
- OUT EFI_HEALTH_FLAGS *HealthData OPTIONAL
- )
-{
- UINTN OriginalProcessorNumber;
-
- //
- // Lower 24 bits contains the actual processor number.
- //
- OriginalProcessorNumber = ProcessorNumber;
- ProcessorNumber &= BIT24 - 1;
-
- if ((ProcessorInfoBuffer == NULL) || (ProcessorNumber != 0)) {
- return EFI_INVALID_PARAMETER;
- }
-
- ProcessorInfoBuffer->ProcessorId = 0;
- ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT | PROCESSOR_ENABLED_BIT;
- ZeroMem (&ProcessorInfoBuffer->Location, sizeof (EFI_CPU_PHYSICAL_LOCATION));
-
- if ((OriginalProcessorNumber & CPU_V2_EXTENDED_TOPOLOGY) != 0) {
- ZeroMem (&ProcessorInfoBuffer->ExtendedInformation.Location2, sizeof (EFI_CPU_PHYSICAL_LOCATION2));
- }
-
- if (HealthData != NULL) {
- HealthData->Uint32 = 0;
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Retrieves the number of logical processor in the platform and the number of
- those logical processors that are enabled on this boot. This service may only
- be called from the BSP.
-
- @param[out] NumberOfProcessors Pointer to the total number of logical
- processors in the system, including the BSP
- and disabled APs.
- @param[out] NumberOfEnabledProcessors Pointer to the number of enabled logical
- processors that exist in system, including
- the BSP.
-
- @retval EFI_SUCCESS The number of logical processors and enabled
- logical processors was retrieved.
- @retval EFI_DEVICE_ERROR The calling processor is an AP.
- @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL and NumberOfEnabledProcessors
- is NULL.
- @retval EFI_NOT_READY MP Initialize Library is not initialized.
-
-**/
-EFI_STATUS
-TdxMpInitLibGetNumberOfProcessors (
- OUT UINTN *NumberOfProcessors, OPTIONAL
- OUT UINTN *NumberOfEnabledProcessors OPTIONAL
- )
-{
- ASSERT (NumberOfProcessors != NULL || NumberOfEnabledProcessors != NULL);
- //
- // In current stage only the BSP is workable. So NumberOfProcessors
- // & NumberOfEnableddProcessors are both 1.
- //
- if (NumberOfProcessors != NULL) {
- *NumberOfProcessors = 1;
- }
-
- if (NumberOfEnabledProcessors != NULL) {
- *NumberOfEnabledProcessors = 1;
- }
-
- return EFI_SUCCESS;
-}
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c b/UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c
deleted file mode 100644
index b5aaf6df283f..000000000000
--- a/UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/** @file
- CPU MP Initialize Library common functions (NULL instance) for Td guest.
-
- Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include "MpLib.h"
-#include "MpIntelTdx.h"
-
-/**
- Gets detailed MP-related information on the requested processor at the
- instant this call is made. This service may only be called from the BSP.
-
- @param[in] ProcessorNumber The handle number of processor.
- @param[out] ProcessorInfoBuffer A pointer to the buffer where information for
- the requested processor is deposited.
- @param[out] HealthData Return processor health data.
-
- @retval EFI_SUCCESS Processor information was returned.
- @retval EFI_DEVICE_ERROR The calling processor is an AP.
- @retval EFI_INVALID_PARAMETER ProcessorInfoBuffer is NULL.
- @retval EFI_NOT_FOUND The processor with the handle specified by
- ProcessorNumber does not exist in the platform.
- @retval EFI_NOT_READY MP Initialize Library is not initialized.
-
-**/
-EFI_STATUS
-TdxMpInitLibGetProcessorInfo (
- IN UINTN ProcessorNumber,
- OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer,
- OUT EFI_HEALTH_FLAGS *HealthData OPTIONAL
- )
-{
- ASSERT (FALSE);
- return EFI_UNSUPPORTED;
-}
-
-/**
- Retrieves the number of logical processor in the platform and the number of
- those logical processors that are enabled on this boot. This service may only
- be called from the BSP.
-
- @param[out] NumberOfProcessors Pointer to the total number of logical
- processors in the system, including the BSP
- and disabled APs.
- @param[out] NumberOfEnabledProcessors Pointer to the number of enabled logical
- processors that exist in system, including
- the BSP.
-
- @retval EFI_SUCCESS The number of logical processors and enabled
- logical processors was retrieved.
- @retval EFI_DEVICE_ERROR The calling processor is an AP.
- @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL and NumberOfEnabledProcessors
- is NULL.
- @retval EFI_NOT_READY MP Initialize Library is not initialized.
-
-**/
-EFI_STATUS
-TdxMpInitLibGetNumberOfProcessors (
- OUT UINTN *NumberOfProcessors, OPTIONAL
- OUT UINTN *NumberOfEnabledProcessors OPTIONAL
- )
-{
- ASSERT (FALSE);
- return EFI_UNSUPPORTED;
-}
diff --git a/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf b/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
index 894be0f8daab..5facf4db9499 100644
--- a/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
+++ b/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
@@ -24,12 +24,10 @@
[Sources.IA32]
Ia32/AmdSev.c
Ia32/MpFuncs.nasm
- MpLibTdxNull.c
[Sources.X64]
X64/AmdSev.c
X64/MpFuncs.nasm
- MpLibTdx.c
[Sources.common]
AmdSev.c
@@ -38,7 +36,6 @@
MpLib.c
MpLib.h
Microcode.c
- MpIntelTdx.h
[Packages]
MdePkg/MdePkg.dec
--
2.29.2.windows.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89563): https://edk2.groups.io/g/devel/message/89563
Mute This Topic: https://groups.io/mt/90946715/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Ray Ni <ray.ni@intel.com>
> -----Original Message-----
> From: Xu, Min M <min.m.xu@intel.com>
> Sent: Saturday, May 7, 2022 9:36 AM
> To: devel@edk2.groups.io
> Cc: Xu, Min M <min.m.xu@intel.com>; Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Brijesh Singh
> <brijesh.singh@amd.com>; Aktas, Erdem <erdemaktas@google.com>; James Bottomley <jejb@linux.ibm.com>; Yao, Jiewen
> <jiewen.yao@intel.com>; Tom Lendacky <thomas.lendacky@amd.com>; Gerd Hoffmann <kraxel@redhat.com>
> Subject: [PATCH V2 1/6] UefiCpuPkg: Revert "UefiCpuPkg: Enable Tdx support in MpInitLib"
>
> From: Min M Xu <min.m.xu@intel.com>
>
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3918
>
> This reverts commit 88da06ca763eb6514565c1867a801a427c1f3447.
> This commit triggers the ASSERT in Non-Td guest.
>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Brijesh Singh <brijesh.singh@amd.com>
> Cc: Erdem Aktas <erdemaktas@google.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Min Xu <min.m.xu@intel.com>
> ---
> UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 3 -
> UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h | 69 ------------
> UefiCpuPkg/Library/MpInitLib/MpLib.c | 63 +----------
> UefiCpuPkg/Library/MpInitLib/MpLibTdx.c | 106 ------------------
> UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c | 69 ------------
> UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 3 -
> 6 files changed, 5 insertions(+), 308 deletions(-)
> delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h
> delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdx.c
> delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c
>
> diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
> index 159b4d16ed0e..e1cd0b350008 100644
> --- a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
> +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
> @@ -24,12 +24,10 @@
> [Sources.IA32]
> Ia32/AmdSev.c
> Ia32/MpFuncs.nasm
> - MpLibTdxNull.c
>
> [Sources.X64]
> X64/AmdSev.c
> X64/MpFuncs.nasm
> - MpLibTdx.c
>
> [Sources.common]
> AmdSev.c
> @@ -38,7 +36,6 @@
> MpLib.c
> MpLib.h
> Microcode.c
> - MpIntelTdx.h
>
> [Packages]
> MdePkg/MdePkg.dec
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h b/UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h
> deleted file mode 100644
> index 8a26f6c19fc4..000000000000
> --- a/UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h
> +++ /dev/null
> @@ -1,69 +0,0 @@
> -/** @file
> - CPU MP Initialize Library header file for Td guest.
> -
> - Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -
> -#ifndef MP_INTEL_TDX_H_
> -#define MP_INTEL_TDX_H_
> -
> -#include <PiPei.h>
> -#include <Library/BaseLib.h>
> -#include <Library/DebugLib.h>
> -#include <Uefi/UefiBaseType.h>
> -#include <Protocol/MpService.h>
> -
> -/**
> - Gets detailed MP-related information on the requested processor at the
> - instant this call is made. This service may only be called from the BSP.
> -
> - @param[in] ProcessorNumber The handle number of processor.
> - @param[out] ProcessorInfoBuffer A pointer to the buffer where information for
> - the requested processor is deposited.
> - @param[out] HealthData Return processor health data.
> -
> - @retval EFI_SUCCESS Processor information was returned.
> - @retval EFI_DEVICE_ERROR The calling processor is an AP.
> - @retval EFI_INVALID_PARAMETER ProcessorInfoBuffer is NULL.
> - @retval EFI_NOT_FOUND The processor with the handle specified by
> - ProcessorNumber does not exist in the platform.
> - @retval EFI_NOT_READY MP Initialize Library is not initialized.
> -
> -**/
> -EFI_STATUS
> -TdxMpInitLibGetProcessorInfo (
> - IN UINTN ProcessorNumber,
> - OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer,
> - OUT EFI_HEALTH_FLAGS *HealthData OPTIONAL
> - );
> -
> -/**
> - Retrieves the number of logical processor in the platform and the number of
> - those logical processors that are enabled on this boot. This service may only
> - be called from the BSP.
> -
> - @param[out] NumberOfProcessors Pointer to the total number of logical
> - processors in the system, including the BSP
> - and disabled APs.
> - @param[out] NumberOfEnabledProcessors Pointer to the number of enabled logical
> - processors that exist in system, including
> - the BSP.
> -
> - @retval EFI_SUCCESS The number of logical processors and enabled
> - logical processors was retrieved.
> - @retval EFI_DEVICE_ERROR The calling processor is an AP.
> - @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL and NumberOfEnabledProcessors
> - is NULL.
> - @retval EFI_NOT_READY MP Initialize Library is not initialized.
> -
> -**/
> -EFI_STATUS
> -TdxMpInitLibGetNumberOfProcessors (
> - OUT UINTN *NumberOfProcessors, OPTIONAL
> - OUT UINTN *NumberOfEnabledProcessors OPTIONAL
> - );
> -
> -#endif
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> index 91c7afaeb2ad..4a73787ee43a 100644
> --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
> +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> @@ -9,11 +9,9 @@
> **/
>
> #include "MpLib.h"
> -#include "MpIntelTdx.h"
> #include <Library/VmgExitLib.h>
> #include <Register/Amd/Fam17Msr.h>
> #include <Register/Amd/Ghcb.h>
> -#include <ConfidentialComputingGuestAttr.h>
>
> EFI_GUID mCpuInitMpLibHobGuid = CPU_INIT_MP_LIB_HOB_GUID;
>
> @@ -1805,10 +1803,6 @@ MpInitLibInitialize (
> UINTN BackupBufferAddr;
> UINTN ApIdtBase;
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - return EFI_SUCCESS;
> - }
> -
> OldCpuMpData = GetCpuMpDataFromGuidedHob ();
> if (OldCpuMpData == NULL) {
> MaxLogicalProcessorNumber = PcdGet32 (PcdCpuMaxLogicalProcessorNumber);
> @@ -2079,10 +2073,6 @@ MpInitLibGetProcessorInfo (
> CPU_INFO_IN_HOB *CpuInfoInHob;
> UINTN OriginalProcessorNumber;
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - return TdxMpInitLibGetProcessorInfo (ProcessorNumber, ProcessorInfoBuffer, HealthData);
> - }
> -
> CpuMpData = GetCpuMpData ();
> CpuInfoInHob = (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;
>
> @@ -2177,10 +2167,6 @@ SwitchBSPWorker (
> BOOLEAN OldInterruptState;
> BOOLEAN OldTimerInterruptState;
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - return EFI_UNSUPPORTED;
> - }
> -
> //
> // Save and Disable Local APIC timer interrupt
> //
> @@ -2321,10 +2307,6 @@ EnableDisableApWorker (
> CPU_MP_DATA *CpuMpData;
> UINTN CallerNumber;
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - return EFI_UNSUPPORTED;
> - }
> -
> CpuMpData = GetCpuMpData ();
>
> //
> @@ -2385,11 +2367,6 @@ MpInitLibWhoAmI (
> return EFI_INVALID_PARAMETER;
> }
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - *ProcessorNumber = 0;
> - return EFI_SUCCESS;
> - }
> -
> CpuMpData = GetCpuMpData ();
>
> return GetProcessorNumber (CpuMpData, ProcessorNumber);
> @@ -2428,16 +2405,12 @@ MpInitLibGetNumberOfProcessors (
> UINTN EnabledProcessorNumber;
> UINTN Index;
>
> + CpuMpData = GetCpuMpData ();
> +
> if ((NumberOfProcessors == NULL) && (NumberOfEnabledProcessors == NULL)) {
> return EFI_INVALID_PARAMETER;
> }
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - return TdxMpInitLibGetNumberOfProcessors (NumberOfProcessors, NumberOfEnabledProcessors);
> - }
> -
> - CpuMpData = GetCpuMpData ();
> -
> //
> // Check whether caller processor is BSP
> //
> @@ -2517,16 +2490,13 @@ StartupAllCPUsWorker (
> BOOLEAN HasEnabledAp;
> CPU_STATE ApState;
>
> + CpuMpData = GetCpuMpData ();
> +
> if (FailedCpuList != NULL) {
> *FailedCpuList = NULL;
> }
>
> - Status = MpInitLibGetNumberOfProcessors (&ProcessorCount, NULL);
> - if (EFI_ERROR (Status)) {
> - return Status;
> - }
> -
> - if ((ProcessorCount == 1) && ExcludeBsp) {
> + if ((CpuMpData->CpuCount == 1) && ExcludeBsp) {
> return EFI_NOT_STARTED;
> }
>
> @@ -2534,22 +2504,6 @@ StartupAllCPUsWorker (
> return EFI_INVALID_PARAMETER;
> }
>
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - //
> - // For Td guest ExcludeBsp must be FALSE. Otherwise it will return in above checks.
> - //
> - ASSERT (!ExcludeBsp);
> -
> - //
> - // Start BSP.
> - //
> - Procedure (ProcedureArgument);
> -
> - return EFI_SUCCESS;
> - }
> -
> - CpuMpData = GetCpuMpData ();
> -
> //
> // Check whether caller processor is BSP
> //
> @@ -2689,13 +2643,6 @@ StartupThisAPWorker (
> CPU_AP_DATA *CpuData;
> UINTN CallerNumber;
>
> - //
> - // In Td guest, startup of AP is not supported in current stage.
> - //
> - if (CC_GUEST_IS_TDX (PcdGet64 (PcdConfidentialComputingGuestAttr))) {
> - return EFI_UNSUPPORTED;
> - }
> -
> CpuMpData = GetCpuMpData ();
>
> if (Finished != NULL) {
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpLibTdx.c b/UefiCpuPkg/Library/MpInitLib/MpLibTdx.c
> deleted file mode 100644
> index fdb58fba9323..000000000000
> --- a/UefiCpuPkg/Library/MpInitLib/MpLibTdx.c
> +++ /dev/null
> @@ -1,106 +0,0 @@
> -/** @file
> - CPU MP Initialize Library common functions for Td guest.
> -
> - Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -
> -#include "MpLib.h"
> -#include "MpIntelTdx.h"
> -
> -/**
> - Gets detailed MP-related information on the requested processor at the
> - instant this call is made. This service may only be called from the BSP.
> -
> - In current stage only the BSP is workable. So ProcessorNumber should be 0.
> -
> - @param[in] ProcessorNumber The handle number of processor.
> - @param[out] ProcessorInfoBuffer A pointer to the buffer where information for
> - the requested processor is deposited.
> - @param[out] HealthData Return processor health data.
> -
> - @retval EFI_SUCCESS Processor information was returned.
> - @retval EFI_DEVICE_ERROR The calling processor is an AP.
> - @retval EFI_INVALID_PARAMETER ProcessorInfoBuffer is NULL or ProcessorNumber is not 0.
> - @retval EFI_NOT_FOUND The processor with the handle specified by
> - ProcessorNumber does not exist in the platform.
> - @retval EFI_NOT_READY MP Initialize Library is not initialized.
> -
> -**/
> -EFI_STATUS
> -TdxMpInitLibGetProcessorInfo (
> - IN UINTN ProcessorNumber,
> - OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer,
> - OUT EFI_HEALTH_FLAGS *HealthData OPTIONAL
> - )
> -{
> - UINTN OriginalProcessorNumber;
> -
> - //
> - // Lower 24 bits contains the actual processor number.
> - //
> - OriginalProcessorNumber = ProcessorNumber;
> - ProcessorNumber &= BIT24 - 1;
> -
> - if ((ProcessorInfoBuffer == NULL) || (ProcessorNumber != 0)) {
> - return EFI_INVALID_PARAMETER;
> - }
> -
> - ProcessorInfoBuffer->ProcessorId = 0;
> - ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT | PROCESSOR_ENABLED_BIT;
> - ZeroMem (&ProcessorInfoBuffer->Location, sizeof (EFI_CPU_PHYSICAL_LOCATION));
> -
> - if ((OriginalProcessorNumber & CPU_V2_EXTENDED_TOPOLOGY) != 0) {
> - ZeroMem (&ProcessorInfoBuffer->ExtendedInformation.Location2, sizeof (EFI_CPU_PHYSICAL_LOCATION2));
> - }
> -
> - if (HealthData != NULL) {
> - HealthData->Uint32 = 0;
> - }
> -
> - return EFI_SUCCESS;
> -}
> -
> -/**
> - Retrieves the number of logical processor in the platform and the number of
> - those logical processors that are enabled on this boot. This service may only
> - be called from the BSP.
> -
> - @param[out] NumberOfProcessors Pointer to the total number of logical
> - processors in the system, including the BSP
> - and disabled APs.
> - @param[out] NumberOfEnabledProcessors Pointer to the number of enabled logical
> - processors that exist in system, including
> - the BSP.
> -
> - @retval EFI_SUCCESS The number of logical processors and enabled
> - logical processors was retrieved.
> - @retval EFI_DEVICE_ERROR The calling processor is an AP.
> - @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL and NumberOfEnabledProcessors
> - is NULL.
> - @retval EFI_NOT_READY MP Initialize Library is not initialized.
> -
> -**/
> -EFI_STATUS
> -TdxMpInitLibGetNumberOfProcessors (
> - OUT UINTN *NumberOfProcessors, OPTIONAL
> - OUT UINTN *NumberOfEnabledProcessors OPTIONAL
> - )
> -{
> - ASSERT (NumberOfProcessors != NULL || NumberOfEnabledProcessors != NULL);
> - //
> - // In current stage only the BSP is workable. So NumberOfProcessors
> - // & NumberOfEnableddProcessors are both 1.
> - //
> - if (NumberOfProcessors != NULL) {
> - *NumberOfProcessors = 1;
> - }
> -
> - if (NumberOfEnabledProcessors != NULL) {
> - *NumberOfEnabledProcessors = 1;
> - }
> -
> - return EFI_SUCCESS;
> -}
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c b/UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c
> deleted file mode 100644
> index b5aaf6df283f..000000000000
> --- a/UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c
> +++ /dev/null
> @@ -1,69 +0,0 @@
> -/** @file
> - CPU MP Initialize Library common functions (NULL instance) for Td guest.
> -
> - Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>
> -
> - SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -
> -#include "MpLib.h"
> -#include "MpIntelTdx.h"
> -
> -/**
> - Gets detailed MP-related information on the requested processor at the
> - instant this call is made. This service may only be called from the BSP.
> -
> - @param[in] ProcessorNumber The handle number of processor.
> - @param[out] ProcessorInfoBuffer A pointer to the buffer where information for
> - the requested processor is deposited.
> - @param[out] HealthData Return processor health data.
> -
> - @retval EFI_SUCCESS Processor information was returned.
> - @retval EFI_DEVICE_ERROR The calling processor is an AP.
> - @retval EFI_INVALID_PARAMETER ProcessorInfoBuffer is NULL.
> - @retval EFI_NOT_FOUND The processor with the handle specified by
> - ProcessorNumber does not exist in the platform.
> - @retval EFI_NOT_READY MP Initialize Library is not initialized.
> -
> -**/
> -EFI_STATUS
> -TdxMpInitLibGetProcessorInfo (
> - IN UINTN ProcessorNumber,
> - OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer,
> - OUT EFI_HEALTH_FLAGS *HealthData OPTIONAL
> - )
> -{
> - ASSERT (FALSE);
> - return EFI_UNSUPPORTED;
> -}
> -
> -/**
> - Retrieves the number of logical processor in the platform and the number of
> - those logical processors that are enabled on this boot. This service may only
> - be called from the BSP.
> -
> - @param[out] NumberOfProcessors Pointer to the total number of logical
> - processors in the system, including the BSP
> - and disabled APs.
> - @param[out] NumberOfEnabledProcessors Pointer to the number of enabled logical
> - processors that exist in system, including
> - the BSP.
> -
> - @retval EFI_SUCCESS The number of logical processors and enabled
> - logical processors was retrieved.
> - @retval EFI_DEVICE_ERROR The calling processor is an AP.
> - @retval EFI_INVALID_PARAMETER NumberOfProcessors is NULL and NumberOfEnabledProcessors
> - is NULL.
> - @retval EFI_NOT_READY MP Initialize Library is not initialized.
> -
> -**/
> -EFI_STATUS
> -TdxMpInitLibGetNumberOfProcessors (
> - OUT UINTN *NumberOfProcessors, OPTIONAL
> - OUT UINTN *NumberOfEnabledProcessors OPTIONAL
> - )
> -{
> - ASSERT (FALSE);
> - return EFI_UNSUPPORTED;
> -}
> diff --git a/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf b/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
> index 894be0f8daab..5facf4db9499 100644
> --- a/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
> +++ b/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
> @@ -24,12 +24,10 @@
> [Sources.IA32]
> Ia32/AmdSev.c
> Ia32/MpFuncs.nasm
> - MpLibTdxNull.c
>
> [Sources.X64]
> X64/AmdSev.c
> X64/MpFuncs.nasm
> - MpLibTdx.c
>
> [Sources.common]
> AmdSev.c
> @@ -38,7 +36,6 @@
> MpLib.c
> MpLib.h
> Microcode.c
> - MpIntelTdx.h
>
> [Packages]
> MdePkg/MdePkg.dec
> --
> 2.29.2.windows.2
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89571): https://edk2.groups.io/g/devel/message/89571
Mute This Topic: https://groups.io/mt/90946715/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.