]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/FspSecCore/SecFsp.c
OvmfPkg/QemuFlashFvbServicesRuntimeDxe: mark Flash memory range as MMIO
[mirror_edk2.git] / IntelFspPkg / FspSecCore / SecFsp.c
index b4566045f9ba828b77fb480ce3db34a0642b6c1b..07aed1c1c06236f12681e25f63906e1663468414 100644 (file)
@@ -32,7 +32,7 @@ FspGetExceptionHandler(
   IA32_IDT_GATE_DESCRIPTOR *IdtGateDescriptor;\r
   FSP_INFO_HEADER          *FspInfoHeader;\r
 \r
-  FspInfoHeader     = (FSP_INFO_HEADER *)(GetFspBaseAddress() + FSP_INFO_HEADER_OFF);\r
+  FspInfoHeader     = (FSP_INFO_HEADER *)AsmGetFspInfoHeader();\r
   ExceptionHandler  = IdtEntryTemplate;\r
   IdtGateDescriptor = (IA32_IDT_GATE_DESCRIPTOR *)&ExceptionHandler;\r
   Entry = (IdtGateDescriptor->Bits.OffsetHigh << 16) | IdtGateDescriptor->Bits.OffsetLow;\r
@@ -171,7 +171,7 @@ FspGlobalDataInit (
   // Get FSP Header offset\r
   // It may have multiple FVs, so look into the last one for FSP header\r
   //\r
-  PeiFspData->FspInfoHeader      = (FSP_INFO_HEADER *)(GetFspBaseAddress() + FSP_INFO_HEADER_OFF);\r
+  PeiFspData->FspInfoHeader      = (FSP_INFO_HEADER *)AsmGetFspInfoHeader();\r
   SecGetPlatformData (PeiFspData);\r
 \r
   //\r
@@ -265,7 +265,7 @@ FspApiCallingCheck (
     //\r
     if ((UINT32)FspData != 0xFFFFFFFF) {\r
       Status = EFI_UNSUPPORTED;\r
-    } else if ((FspRtBuffer == NULL) || ((FspRtBuffer->BootLoaderTolumSize % EFI_PAGE_SIZE) != 0)) {\r
+    } else if ((FspRtBuffer == NULL) || ((FspRtBuffer->BootLoaderTolumSize % EFI_PAGE_SIZE) != 0) || (EFI_ERROR(FspUpdSignatureCheck(ApiIdx, ApiParam)))) {\r
       Status = EFI_INVALID_PARAMETER;\r
     }\r
   } else if (ApiIdx == 2) {\r
@@ -285,7 +285,7 @@ FspApiCallingCheck (
     //\r
     if ((UINT32)FspData != 0xFFFFFFFF) {\r
       Status = EFI_UNSUPPORTED;\r
-    } else if ((FspRtBuffer == NULL) || ((FspRtBuffer->BootLoaderTolumSize % EFI_PAGE_SIZE) != 0)) {\r
+    } else if ((FspRtBuffer == NULL) || ((FspRtBuffer->BootLoaderTolumSize % EFI_PAGE_SIZE) != 0) || (EFI_ERROR(FspUpdSignatureCheck(ApiIdx, ApiParam)))) {\r
       Status = EFI_INVALID_PARAMETER;\r
     }\r
   } else if (ApiIdx == 4) {\r
@@ -308,6 +308,8 @@ FspApiCallingCheck (
     } else {\r
       if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
         Status = EFI_UNSUPPORTED;\r
+      } else if (EFI_ERROR(FspUpdSignatureCheck(ApiIdx, ApiParam))) {\r
+        Status = EFI_INVALID_PARAMETER;\r
       }\r
     }\r
   } else {\r