]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/CpuMpPei/CpuMpPei.c
UefiCpuPkg/CpuMpPei: Consume CpuExceptionHandlerLib
[mirror_edk2.git] / UefiCpuPkg / CpuMpPei / CpuMpPei.c
index ef1c2812e2bf7f0ca620ecde61102bdd0e9592ad..4ed1da98787858e8008df9614e45900333c5ff2c 100644 (file)
@@ -852,14 +852,31 @@ CpuMpPeimInit (
   IN CONST EFI_PEI_SERVICES     **PeiServices\r
   )\r
 {\r
   IN CONST EFI_PEI_SERVICES     **PeiServices\r
   )\r
 {\r
-  EFI_STATUS           Status;\r
-  PEI_CPU_MP_DATA      *PeiCpuMpData;\r
+  EFI_STATUS                       Status;\r
+  PEI_CPU_MP_DATA                 *PeiCpuMpData;\r
+  EFI_VECTOR_HANDOFF_INFO         *VectorInfo;\r
+  EFI_PEI_VECTOR_HANDOFF_INFO_PPI *VectorHandoffInfoPpi;\r
 \r
   //\r
   // Load new GDT table on BSP\r
   //\r
   AsmInitializeGdt (&mGdt);\r
   //\r
 \r
   //\r
   // Load new GDT table on BSP\r
   //\r
   AsmInitializeGdt (&mGdt);\r
   //\r
+  // Get Vector Hand-off Info PPI\r
+  //\r
+  VectorInfo = NULL;\r
+  Status = PeiServicesLocatePpi (\r
+             &gEfiVectorHandoffInfoPpiGuid,\r
+             0,\r
+             NULL,\r
+             (VOID **)&VectorHandoffInfoPpi\r
+             );\r
+  if (Status == EFI_SUCCESS) {\r
+    VectorInfo = VectorHandoffInfoPpi->Info;\r
+  }\r
+  Status = InitializeCpuExceptionHandlers (VectorInfo);\r
+  ASSERT_EFI_ERROR (Status);\r
+  //\r
   // Get wakeup buffer and copy AP reset code in it\r
   //\r
   PeiCpuMpData = PrepareAPStartupVector ();\r
   // Get wakeup buffer and copy AP reset code in it\r
   //\r
   PeiCpuMpData = PrepareAPStartupVector ();\r