diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.inf b/UefiCpuPkg/CpuDxe/CpuDxe.inf index 0e53651edb..aa37269de7 100644 --- a/UefiCpuPkg/CpuDxe/CpuDxe.inf +++ b/UefiCpuPkg/CpuDxe/CpuDxe.inf @@ -70,6 +70,7 @@ [Protocols] gEfiCpuArchProtocolGuid ## PRODUCES + gEfiMpServiceProtocolGuid ## SOMETIMES_PRODUCES [Guids] gIdleLoopEventGuid ## CONSUMES ## Event diff --git a/UefiCpuPkg/CpuDxe/CpuMp.c b/UefiCpuPkg/CpuDxe/CpuMp.c index a87d67f180..e3734c2790 100644 --- a/UefiCpuPkg/CpuDxe/CpuMp.c +++ b/UefiCpuPkg/CpuDxe/CpuMp.c @@ -24,6 +24,16 @@ VOID *mApStackStart = 0; volatile UINTN mNumberOfProcessors; +EFI_MP_SERVICES_PROTOCOL mMpServicesTemplate = { + NULL, // GetNumberOfProcessors, + NULL, // GetProcessorInfo, + NULL, // StartupAllAPs, + NULL, // StartupThisAP, + NULL, // SwitchBSP, + NULL, // EnableDisableAP, + NULL // WhoAmI +}; + /** Application Processors do loop routine after switch to its own stack. diff --git a/UefiCpuPkg/CpuDxe/CpuMp.h b/UefiCpuPkg/CpuDxe/CpuMp.h index e28f162f53..157ac36c48 100644 --- a/UefiCpuPkg/CpuDxe/CpuMp.h +++ b/UefiCpuPkg/CpuDxe/CpuMp.h @@ -15,6 +15,8 @@ #ifndef _CPU_MP_H_ #define _CPU_MP_H_ +#include + /** Initialize Multi-processor support.