]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Update Nt32 FVB driver to provide the valid FvHeader that header checksum is zero.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 24 Mar 2009 07:57:42 +0000 (07:57 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 24 Mar 2009 07:57:42 +0000 (07:57 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7930 6f19259b-4bc3-4df7-8a09-765794883524

Nt32Pkg/FvbServicesRuntimeDxe/FWBlockService.c
Nt32Pkg/FvbServicesRuntimeDxe/FvbInfo.c

index 350672448fa4ed55796fdb4e246528b3848a26c5..a3981f6b0f252992d0ac87758f46d3fddf3a0f33 100644 (file)
@@ -1104,10 +1104,6 @@ Returns:
 \r
 --*/\r
 {\r
-  UINT16  *Ptr;\r
-  UINT16  HeaderLength;\r
-  UINT16  Checksum;\r
-\r
   //\r
   // Verify the header revision, header signature, length\r
   // Length of FvBlock cannot be 2**64-1\r
@@ -1124,26 +1120,10 @@ Returns:
   //\r
   // Verify the header checksum\r
   //\r
-  HeaderLength  = (UINT16) (FwVolHeader->HeaderLength / 2);\r
-  Ptr           = (UINT16 *) FwVolHeader;\r
-  Checksum      = 0;\r
-  while (HeaderLength > 0) {\r
-    Checksum = (UINT16)(Checksum + (*Ptr));\r
-    HeaderLength--;\r
-    Ptr++;\r
-  }\r
-\r
-  if (Checksum != 0) {\r
+  if (CalculateCheckSum16 ((UINT16 *) FwVolHeader, FwVolHeader->HeaderLength) != 0) {\r
     return EFI_NOT_FOUND;\r
   }\r
 \r
-  //\r
-  // PI specification defines the name guid of FV exists in extension header.\r
-  //\r
-  if (FwVolHeader->ExtHeaderOffset == 0) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-  \r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -1180,7 +1160,7 @@ Returns:
   UINTN                               NumOfBlocks;\r
   EFI_PEI_HOB_POINTERS                FvHob;\r
 \r
-   //\r
+  //\r
   // Get the DXE services table\r
   //\r
   DxeServices = gDS;\r
index d4ecf3b9bdf00426c5de6e296aa333e0789363dd..b39cd2ea912868714d9326ad64f1699b1ddb23e7 100644 (file)
@@ -70,14 +70,16 @@ EFI_FVB_MEDIA_INFO  mPlatformFvbMediaInfo[] = {
       EFI_FIRMWARE_FILE_SYSTEM2_GUID,\r
       FixedPcdGet32 (PcdWinNtFlashFvRecoverySize),\r
       EFI_FVH_SIGNATURE,\r
-      EFI_FVB2_READ_ENABLED_CAP |\r
+      EFI_FVB2_MEMORY_MAPPED |  \r
+        EFI_FVB2_READ_ENABLED_CAP |\r
         EFI_FVB2_READ_STATUS |\r
         EFI_FVB2_WRITE_ENABLED_CAP |\r
         EFI_FVB2_WRITE_STATUS |\r
-        EFI_FVB2_ERASE_POLARITY,\r
+        EFI_FVB2_ERASE_POLARITY |\r
+        EFI_FVB2_ALIGNMENT_16,\r
       sizeof (EFI_FIRMWARE_VOLUME_HEADER) + sizeof (EFI_FV_BLOCK_MAP_ENTRY),\r
-      0,  // CheckSum\r
-      0,  // ExtHeaderOffset\r
+      0xE947,   // CheckSum\r
+      0,        // ExtHeaderOffset\r
       {\r
         0,\r
       },  // Reserved[1]\r
@@ -110,14 +112,16 @@ EFI_FVB_MEDIA_INFO  mPlatformFvbMediaInfo[] = {
       FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize) +\r
       FixedPcdGet32 (PcdWinNtFlashNvStorageEventLogSize),\r
       EFI_FVH_SIGNATURE,\r
-      EFI_FVB2_READ_ENABLED_CAP |\r
+      EFI_FVB2_MEMORY_MAPPED |  \r
+        EFI_FVB2_READ_ENABLED_CAP |\r
         EFI_FVB2_READ_STATUS |\r
         EFI_FVB2_WRITE_ENABLED_CAP |\r
         EFI_FVB2_WRITE_STATUS |\r
-        EFI_FVB2_ERASE_POLARITY,\r
+        EFI_FVB2_ERASE_POLARITY |\r
+        EFI_FVB2_ALIGNMENT_16,\r
       sizeof (EFI_FIRMWARE_VOLUME_HEADER) + sizeof (EFI_FV_BLOCK_MAP_ENTRY),\r
-      0,  // CheckSum\r
-      0,  // ExtHeaderOffset\r
+      0xFBFF,  // CheckSum\r
+      0,       // ExtHeaderOffset\r
       {\r
         0,\r
       },  // Reserved[1]\r