Fix bug to create capsule image.
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 12 Sep 2007 06:29:31 +0000 (06:29 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 12 Sep 2007 06:29:31 +0000 (06:29 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@718 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/GenFv/GenFvInternalLib.c
Source/C/GenFv/GenFvInternalLib.h

index 9c37c30..ebf76e4 100644 (file)
@@ -2589,32 +2589,15 @@ Returns:
   //\r
   Status = FindToken (InfFile, OPTIONS_SECTION_STRING, EFI_CAPSULE_FLAGS_STRING, 0, Value);\r
   if (Status == EFI_SUCCESS) {\r
-    if (stricmp (Value, "PersistAcrossReset") == 0) {\r
-      CapInfo->Flags = CAPSULE_FLAGS_PERSIST_ACROSS_RESET; \r
-    } else if (stricmp (Value, "PopulateSystemTable") == 0) {\r
-      CapInfo->Flags = CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE;\r
+    if (strstr (Value, "PersistAcrossReset") != NULL) {\r
+      CapInfo->Flags |= CAPSULE_FLAGS_PERSIST_ACROSS_RESET; \r
+    } else if (strstr (Value, "PopulateSystemTable") != NULL) {\r
+      CapInfo->Flags |= CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE;\r
     } else {\r
       Error (NULL, 0, 2000, "Invalid paramter", "invalid Flag setting for %s", EFI_CAPSULE_FLAGS_STRING);\r
       return EFI_ABORTED;\r
     }\r
   }\r
-  \r
-  //\r
-  // Read the Capsule Version\r
-  //\r
-  Status = FindToken (InfFile, OPTIONS_SECTION_STRING, EFI_CAPSULE_VERSION_STRING, 0, Value);\r
-  if (Status == EFI_SUCCESS) {\r
-    if (stricmp (Value, "UEFI") == 0) {\r
-      CapInfo->Version = 0x20000;  \r
-    } else if (stricmp (Value, "FRAMEWORK") == 0) {\r
-      CapInfo->Version = 0x10010;\r
-      Error (NULL, 0, 2000, "Invalid paramter", "%s is not supported Version for %s", Value, EFI_CAPSULE_VERSION_STRING);\r
-      return EFI_ABORTED;\r
-    } else {\r
-      Error (NULL, 0, 2000, "Invalid paramter", "%s is invalid Version setting for %s", Value, EFI_CAPSULE_VERSION_STRING);\r
-      return EFI_ABORTED;\r
-    }\r
-  }\r
 \r
   //\r
   // Read Capsule File name\r
@@ -2624,7 +2607,7 @@ Returns:
     //\r
     // Get output file name\r
     //\r
-    strcpy (CapInfo->CapName, Value); \r
+    strcpy (CapInfo->CapName, Value);\r
   }\r
 \r
   //\r
@@ -2647,7 +2630,7 @@ Returns:
   }\r
   \r
   if (Index == 0 && VerboseMode) {\r
-    fprintf(stdout, "Cap Files are not specified.\n");\r
+    fprintf(stdout, "Capsule components are not specified.\n");\r
   }\r
 \r
   return EFI_SUCCESS;\r
@@ -2719,16 +2702,16 @@ Returns:
   }\r
   \r
   if (CapFileName == NULL) {\r
-    Error (NULL, 0, 2001, "Missing required argument", "Capsule file name");\r
+    Error (NULL, 0, 2001, "Missing required argument", "Output Capsule file name");\r
     return EFI_INVALID_PARAMETER;\r
   }\r
-      \r
+\r
   //\r
   // Calculate the size of capsule image.\r
   //\r
   Index    = 0;\r
   FileSize = 0;\r
-  CapSize  = sizeof (EFI_CAPSULE_HEADER);\r
+  CapSize  = CapInfo.HeaderSize;\r
   while (CapInfo.CapFiles [Index][0] != '\0') {\r
     fpin = fopen (CapInfo.CapFiles[Index], "rb");\r
     if (fpin == NULL) {\r
@@ -2753,7 +2736,7 @@ Returns:
   //\r
   // Initialize the capsule header to zero\r
   //\r
-  memset (CapBuffer, 0, sizeof (EFI_CAPSULE_HEADER));\r
+  memset (CapBuffer, 0, CapInfo.HeaderSize);\r
   \r
   //\r
   // create capsule header and get capsule body\r
index 21be189..7597127 100644 (file)
@@ -227,7 +227,6 @@ typedef struct {
   EFI_GUID                CapGuid;\r
   UINT32                  HeaderSize;\r
   UINT32                  Flags;\r
-  UINT32                  Version;\r
   CHAR8                   CapName[_MAX_PATH];\r
   CHAR8                   CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][_MAX_PATH];\r
 } CAP_INFO;\r