GenVtf code clean up to delete the IA32 VTF related functions since the tool does...
authorhtao <htao@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 15 Aug 2007 03:03:18 +0000 (03:03 +0000)
committerhtao <htao@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 15 Aug 2007 03:03:18 +0000 (03:03 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@571 7335b38e-4728-0410-8992-fb3ffe349368

Source/Bin/Win32/GenVtf.exe
Source/C/GenVtf/GenVtf.c
Source/C/GenVtf/GenVtf.h
UserManuals/GenVtf_HLD.doc

index 6610bc2..aceeb22 100644 (file)
Binary files a/Source/Bin/Win32/GenVtf.exe and b/Source/Bin/Win32/GenVtf.exe differ
index 92cb1bc..14c68cd 100644 (file)
@@ -16,7 +16,7 @@ Module Name:
 \r
 Abstract:\r
 \r
-  This file contains functions required to generate a boot strap file (VTF) \r
+  This file contains functions required to generate a boot strap file (BSF) \r
   also known as the Volume Top File (VTF)\r
 \r
 --*/\r
@@ -33,9 +33,6 @@ Abstract:
 //\r
 // Global variables\r
 //\r
-EFI_GUID      Vtf1NameGuid = EFI_IPF_VTF1_GUID\r
-EFI_GUID      Vtf2NameGuid = EFI_IPF_VTF2_GUID\r
-\r
 UINTN SectionOptionFlag = 0;\r
 UINTN SectionCompFlag = 0;\r
 \r
@@ -366,7 +363,6 @@ Returns:
     } else if (strnicmp (*TokenStr, "COMP_TYPE", 9) == 0) {\r
       TokenStr++;\r
       if (AsciiStringToUint64 (*TokenStr, FALSE, &StringValue) != EFI_SUCCESS) {\r
-        //printf ("\nERROR: COMP_TYPE Could not read a numeric value from \"0x%x\".", *TokenStr);\r
         Error (NULL, 0, 5001, "Cannot get: \"0x%x\".", *TokenStr);\r
         return ;\r
       }\r
@@ -396,7 +392,6 @@ Returns:
       } else {\r
         VtfInfo->PreferredSize = TRUE;\r
         if (AsciiStringToUint64 (*TokenStr, FALSE, &StringValue) != EFI_SUCCESS) {\r
-          //printf ("\nERROR: COMP_SIZE Could not read a numeric value from \"%s\".", TokenStr);\r
           Error (NULL, 0, 5001, "Cannot get: %s", TokenStr);\r
           return ;\r
         }\r
@@ -443,12 +438,11 @@ Returns:
 \r
 --*/\r
 {\r
-//  UINTN SectionOptionFlag;\r
-//  UINTN SectionCompFlag;\r
 \r
   SectionOptionFlag = 0;\r
   SectionCompFlag   = 0;\r
   TokenStr          = OrgStrTokPtr;\r
+  \r
   while (*TokenStr != NULL) {\r
     if (strnicmp (*TokenStr, "[OPTIONS]", 9) == 0) {\r
       SectionOptionFlag = 1;\r
@@ -1985,44 +1979,10 @@ Returns:
     } else if (SecondVTF != TRUE) {\r
       Error (NULL, 0, 2000, "Invalid paramter", "BaseAddress + FwVolumeSize must equal 0x100000000!");\r
     }\r
-    //Usage();\r
+    Usage();\r
     return EFI_INVALID_PARAMETER;\r
   }  \r
-//  memset (OutFileName1, 0, FILE_NAME_SIZE);\r
-  //\r
-  // if output file name specified\r
-  //\r
-/*  \r
-  if (VTF_OUTPUT) {\r
-    printf("The first VTF output file is %s\n", OutFileName1);\r
-    printf("The second VTF output file is %s\n", OutFileName2);\r
-  }\r
-  //\r
-  // else if output file name not specified, then use the default one\r
-  //\r
-  else {\r
-  printf("\nno output file specified, output to stdout!");\r
-  //Error (NULL, 0, 2000, "Invalid paramter", "no output file specified, output to stdout!");\r
-\r
-  sprintf (\r
-    OutFileName1,\r
-    "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x-%s",\r
-    Vtf1NameGuid.Data1,\r
-    Vtf1NameGuid.Data2,\r
-    Vtf1NameGuid.Data3,\r
-    Vtf1NameGuid.Data4[0],\r
-    Vtf1NameGuid.Data4[1],\r
-    Vtf1NameGuid.Data4[2],\r
-    Vtf1NameGuid.Data4[3],\r
-    Vtf1NameGuid.Data4[4],\r
-    Vtf1NameGuid.Data4[5],\r
-    Vtf1NameGuid.Data4[6],\r
-    Vtf1NameGuid.Data4[7],\r
-    VTF_OUTPUT_FILE\r
-    );\r
 \r
-    }\r
-*/    \r
   //\r
   // The image buffer for the First VTF\r
   //\r
@@ -2047,25 +2007,7 @@ Returns:
       Usage();\r
       return EFI_INVALID_PARAMETER;\r
     }    \r
-//    memset (OutFileName2, 0, FILE_NAME_SIZE);\r
-/*\r
-    sprintf (\r
-      OutFileName2,\r
-      "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x-%s",\r
-      Vtf2NameGuid.Data1,\r
-      Vtf2NameGuid.Data2,\r
-      Vtf2NameGuid.Data3,\r
-      Vtf2NameGuid.Data4[0],\r
-      Vtf2NameGuid.Data4[1],\r
-      Vtf2NameGuid.Data4[2],\r
-      Vtf2NameGuid.Data4[3],\r
-      Vtf2NameGuid.Data4[4],\r
-      Vtf2NameGuid.Data4[5],\r
-      Vtf2NameGuid.Data4[6],\r
-      Vtf2NameGuid.Data4[7],\r
-      VTF_OUTPUT_FILE\r
-      );\r
-*/    \r
+\r
     //\r
     // The image buffer for the second VTF\r
     //\r
@@ -2183,25 +2125,6 @@ Returns:
   }\r
   *StartAddressPtr = StartAddress;\r
 \r
-//  memset (OutFileName1, 0, FILE_NAME_SIZE);\r
-\r
-  sprintf (\r
-    OutFileName1,\r
-    "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x-%s",\r
-    Vtf1NameGuid.Data1,\r
-    Vtf1NameGuid.Data2,\r
-    Vtf1NameGuid.Data3,\r
-    Vtf1NameGuid.Data4[0],\r
-    Vtf1NameGuid.Data4[1],\r
-    Vtf1NameGuid.Data4[2],\r
-    Vtf1NameGuid.Data4[3],\r
-    Vtf1NameGuid.Data4[4],\r
-    Vtf1NameGuid.Data4[5],\r
-    Vtf1NameGuid.Data4[6],\r
-    Vtf1NameGuid.Data4[7],\r
-    VTF_OUTPUT_FILE\r
-    );\r
-\r
   Fp = fopen (OutFileName1, "r+b");\r
 \r
   if (Fp == NULL) {\r
@@ -2533,122 +2456,23 @@ Returns:
 \r
 --*/\r
 {\r
-  UINT8       Index;\r
-  UINT64      StartAddress1;\r
-  UINT64      StartAddress2;\r
-  UINT64      FwVolSize1;\r
-  UINT64      FwVolSize2;\r
-  BOOLEAN     FirstRoundO;\r
-  BOOLEAN     FirstRoundB;\r
-  BOOLEAN     FirstRoundS;\r
+  UINT8           Index;\r
+  UINT64         StartAddress1;\r
+  UINT64         StartAddress2;\r
+  UINT64         FwVolSize1;\r
+  UINT64         FwVolSize2;\r
+  BOOLEAN      FirstRoundO;\r
+  BOOLEAN      FirstRoundB;\r
+  BOOLEAN      FirstRoundS;\r
   EFI_STATUS  Status;\r
-  BOOLEAN     IsIA32;\r
-  FILE           *VtfFP;\r
-  CHAR8        *OutputFileName;\r
-  CHAR8        *VtfFileName;\r
+  BOOLEAN      IsIA32;\r
+  FILE            *VtfFP;\r
+  CHAR8         *OutputFileName;\r
+  CHAR8         *VtfFileName;\r
 \r
   SetUtilityName (UTILITY_NAME);\r
   \r
   VtfFP = NULL;\r
-  //\r
-  // Verify the correct number of IA32 arguments\r
-  //\r
-  IsIA32 = FALSE;\r
-  if (argc == IA32_ARGS) {\r
-    //\r
-    //  Now this tool is not used for IA32 platform, if it will be used in future,\r
-    //  the IA32-specific functions need to be updated and verified, the updating can  \r
-    //  refer to IPF relevant functions)\r
-    //\r
-    Error (NULL, 0, 2000, "Invalid paramter", "Now this tool does not support the IA32 platform!\n");\r
-    Error (NULL, 0, 2000, "Invalid paramter", "And the IA32-specific functions need to be updated and verified!\n");\r
-    return 5;\r
-    \r
-    /*\r
-    StartAddress1 = 0;\r
-    IsIA32        = TRUE;\r
-\r
-    //\r
-    // Parse the command line arguments\r
-    //\r
-    for (Index = 1; Index < IA32_ARGS; Index += 2) {\r
-\r
-      //\r
-      // Make sure argument pair begin with - or /\r
-      //\r
-      if (argv[Index][0] != '-' && argv[Index][0] != '/') {\r
-        Usage ();\r
-        printf ("ERROR: Argument pair must begin with \"-\" or \"/\"\n");\r
-        return 1;\r
-      }\r
-\r
-      //\r
-      // Make sure argument specifier is only one letter\r
-      //\r
-      if (argv[Index][2] != 0) {\r
-        Usage ();\r
-        printf ("ERROR: Unrecognized argument \"%s\".\n", argv[Index]);\r
-        return 1;\r
-      }\r
-\r
-      //\r
-      // Determine argument to read\r
-      //\r
-      switch (argv[Index][1]) {\r
-\r
-      case 't':\r
-      case 'T':\r
-        Status = AsciiStringToUint64 (argv[Index + 1], FALSE, &StartAddress1);\r
-        if (Status != EFI_SUCCESS) {\r
-          printf ("\nERROR: Bad start of address \"%s\"\n", argv[Index + 1]);\r
-          return 1;\r
-        }\r
-        break;\r
-\r
-      default:\r
-        Usage ();\r
-        printf ("Unrecognized IA32 argument \"%s\".\n", argv[Index]);\r
-        IsIA32 = FALSE;\r
-        break;\r
-      }\r
-    }\r
-\r
-    if (IsIA32) {\r
-      //\r
-      // Call the GenVtfImage \r
-      //\r
-      Status = Generate32VtfImage (StartAddress1);\r
-\r
-      if (EFI_ERROR(Status)) {\r
-        switch (Status) {\r
-\r
-        case EFI_INVALID_PARAMETER:\r
-          printf ("\nERROR: Invalid parameter passed to GenVtfImage function .\n");\r
-          break;\r
-\r
-        case EFI_ABORTED:\r
-          printf ("\nERROR: Error detected while creating the file image.\n");\r
-          break;\r
-\r
-        case EFI_OUT_OF_RESOURCES:\r
-          printf ("\nERROR: GenVtfImage function could not allocate required resources.\n");\r
-          break;\r
-\r
-        case EFI_VOLUME_CORRUPTED:\r
-          printf ("\nERROR: No base address was specified \n");\r
-          break;\r
-\r
-        default:\r
-          printf ("\nERROR: GenVtfImage function returned unknown status %X.\n", Status);\r
-          break;\r
-        }\r
-        return 2;\r
-      }\r
-\r
-      return 0;\r
-    }\r
-    */\r
-  } \r
 \r
   //\r
   // Verify the correct number of arguments\r
@@ -2687,8 +2511,6 @@ Returns:
   OutFileName1  = NULL;\r
   OutFileName2  = NULL;\r
   \r
-//  memset (OutFileName1, 0, FILE_NAME_SIZE);\r
-//  memset (OutFileName2, 0, FILE_NAME_SIZE);\r
   //\r
   // Parse the command line arguments\r
   //\r
@@ -2700,7 +2522,6 @@ Returns:
     if (argv[Index][0] != '-' && argv[Index][0] != '/') {\r
       Usage ();\r
       Error (NULL, 0, 2000, "Invalid paramter", "Argument pair must begin with \"-\" or \"/\"!");\r
-      //return 1;\r
       goto ERROR;\r
     }\r
 \r
@@ -2710,7 +2531,6 @@ Returns:
     if (argv[Index][2] != 0) {\r
       Usage ();\r
       Error (NULL, 0, 2000, "Invalid paramter", "Unrecognized argument %s", argv[Index]);\r
-      //return 1;\r
       goto ERROR;\r
     }\r
     //\r
@@ -2728,15 +2548,13 @@ Returns:
     //\r
     // It's the first output file name\r
     //\r
-    //strncpy(OutFileName1, argv[Index+1], FILE_NAME_SIZE);\r
     OutFileName1 = (CHAR8 *)argv[Index+1];\r
     FirstRoundO = FALSE;\r
     }\r
     else {\r
     //\r
+    //It's the second output file name\r
     //\r
-    //\r
-    //strncpy(OutFileName2, argv[Index+1], FILE_NAME_SIZE);\r
     OutFileName2 = (CHAR8 *)argv[Index+1];\r
     }\r
     break;\r
@@ -2750,7 +2568,6 @@ Returns:
     VtfFP = fopen(VtfFileName, "rb");\r
     if (VtfFP == NULL) {\r
       Error (NULL, 0, 0001, "Error opening file", VtfFileName);\r
-      //return 1;\r
       goto ERROR;\r
     }\r
     break;\r
@@ -2765,7 +2582,6 @@ Returns:
       }\r
       if (Status = 0) {\r
         Error (NULL, 0, 2000, "Invalid paramter", "Bad start of address %s", argv[Index + 1]);\r
-        //return 1;\r
         goto ERROR;\r
       }\r
       break;\r
@@ -2781,7 +2597,6 @@ Returns:
 \r
       if (Status != EFI_SUCCESS) {\r
         Error (NULL, 0, 2000, "Invalid paramter", "Bad size %s", argv[Index + 1]);\r
-        //return 1;\r
         goto ERROR;\r
       }\r
       break;\r
@@ -2796,7 +2611,6 @@ Returns:
     default:\r
       Usage ();\r
       Error (NULL, 0, 2000, "Invalid paramter", "Unrecognized argument %s", argv[Index]);\r
-      //return 1;\r
       goto ERROR;\r
       break;\r
     }\r
@@ -2843,846 +2657,3 @@ ERROR:
   }\r
   return 0;\r
 }\r
-\r
-EFI_STATUS\r
-Generate32VtfImage (\r
-IN  UINT64  BootFileStartAddress\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This is the main IA32 function which will be called from application.\r
-  (Now this tool is not used for IA32 platform, if it will be used in future,\r
-  the relative functions need to be updated, the updating can refer to IPF \r
-  functions)\r
-\r
-Arguments:\r
-\r
-  BootFileStartAddress   - Top Address of Boot File\r
-\r
-Returns:\r
\r
-  The return value can be any of the values \r
-  returned by the calls to following functions:\r
-      Get32VftRelatedInfoFromInfFile\r
-      CreateVtfBuffer\r
-      ProcessAndCreate32Vtf\r
-      Update32FfsHeader\r
-      WriteVtfBinary\r
-  \r
---*/\r
-{\r
-  EFI_STATUS    Status;\r
-  UINT32        VtfSize;\r
-  CHAR8         OutFileName[FILE_NAME_SIZE];\r
-\r
-  EFI_GUID      VtfNameGuid = EFI_IA32_BOOT_STRAP_GUID;\r
-\r
-  Status = EFI_UNSUPPORTED;\r
-\r
-  memset (OutFileName, 0, FILE_NAME_SIZE);\r
-\r
-  sprintf (\r
-    OutFileName, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x-%s",\r
-    VtfNameGuid.Data1,\r
-    VtfNameGuid.Data2,\r
-    VtfNameGuid.Data3,\r
-    VtfNameGuid.Data4[0],\r
-    VtfNameGuid.Data4[1],\r
-    VtfNameGuid.Data4[2],\r
-    VtfNameGuid.Data4[3],\r
-    VtfNameGuid.Data4[4],\r
-    VtfNameGuid.Data4[5],\r
-    VtfNameGuid.Data4[6],\r
-    VtfNameGuid.Data4[7],\r
-    VTF_OUTPUT_FILE\r
-    );\r
-\r
-\r
-  Status = Get32VtfRelatedInfoFromInfFile (VTF_INPUT_FILE);\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    printf ("\nERROR: Error in parsing input file");\r
-    CleanUpMemory ();\r
-    return Status;\r
-  }\r
-\r
-  if (GetTotal32VtfSize (&VtfSize) == EFI_SUCCESS) {\r
-    Vtf1Buffer = malloc ((UINTN) VtfSize);\r
-    if (Vtf1Buffer == NULL) {\r
-      printf ("\nERROR: Not enough resource to create memory mapped file for Boot Strap File");\r
-      CleanUpMemory ();\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-    memset (Vtf1Buffer, 0x00, (UINTN) VtfSize);\r
-  } else {\r
-    printf ("\nERROR: Could not get VTF size.");\r
-    CleanUpMemory ();\r
-    return EFI_ABORTED;\r
-  }\r
-\r
-  //\r
-  //VTF must align properly\r
-  //\r
-  Vtf1LastStartAddress = BootFileStartAddress - VtfSize;\r
-  Vtf1LastStartAddress = Vtf1LastStartAddress & -8;\r
-  VtfSize          = (UINT32)BootFileStartAddress - (UINT32)Vtf1LastStartAddress;\r
-  Vtf1LastStartAddress = VtfSize;\r
-  BufferToTop      = (UINT32)BootFileStartAddress - VtfSize;\r
-\r
-  Status = ProcessAndCreate32Vtf (VtfSize);\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    CleanUpMemory();\r
-    return Status;\r
-  }\r
-\r
-  //\r
-  // Write the FFS header\r
-  //\r
-  Status = Update32FfsHeader (VtfSize);\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    CleanUpMemory();\r
-    return Status;\r
-  }\r
-\r
-  // \r
-  // Calculate the Start address of this VTF\r
-  //\r
-  Vtf1Buffer = (UINT8 *)Vtf1Buffer + Vtf1LastStartAddress;\r
-\r
-  //\r
-  // Update the VTF buffer into specified VTF binary file\r
-  //\r
-  Status = WriteVtfBinary (OutFileName, VtfSize - (UINT32)Vtf1LastStartAddress, FIRST_VTF);\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    CleanUpMemory();\r
-    return Status;\r
-  }\r
-\r
-  Status = Write32SoftFit (IA32_SOFT_FIT, FileListHeadPtr);\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    CleanUpMemory();\r
-    return Status;\r
-  }\r
-  \r
-  CleanUpMemory ();\r
-  printf ("\n");  \r
-\r
-  return Status;\r
-}\r
-\r
-EFI_STATUS\r
-GetTotal32VtfSize(\r
-  IN  UINT32  *VtfSize \r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function calculates total size for IA32 VTF which would be needed to create\r
-  the buffer. This will be done using Passed Info link list and looking for the\r
-  size of the components which belong to VTF. The addtional file header is accounted.\r
-\r
-Arguments:\r
-\r
-  VTFSize     - Pointer to the size of IA32 VTF \r
-\r
-Returns:\r
-\r
-  EFI_ABORTED - Returned due to one of the following resons:\r
-                (a) Error Opening File\r
-  EFI_SUCCESS - The fuction completes successfully\r
-\r
---*/\r
-{\r
-  PARSED_VTF_INFO     *VtfInfo;\r
-  FILE                *Fp;\r
-  UINT32              Alignment;\r
-\r
-  *VtfSize = 0;\r
-  Alignment = 0;\r
-  \r
-  VtfInfo = FileListHeadPtr;\r
-\r
-  while (VtfInfo != NULL) {\r
-    if (VtfInfo->LocationType != SECOND_VTF) {\r
-\r
-      if ( VtfInfo->Align ) {\r
-        //\r
-        // Create additional align to compensate for component boundary requirements\r
-        //\r
-        Alignment = 1 << VtfInfo->Align;\r
-        *VtfSize += Alignment;\r
-      }\r
-      \r
-      if (VtfInfo->PreferredSize) {\r
-        *VtfSize += VtfInfo->CompSize;\r
-      } else {\r
-        Fp = fopen (VtfInfo->CompBinName,"r+b");\r
-\r
-        if (Fp == NULL) {\r
-          printf ("\nERROR: Error in opening file %s", VtfInfo->CompBinName);\r
-          return EFI_ABORTED;\r
-        }\r
-        \r
-        *VtfSize += _filelength (fileno (Fp));\r
-        \r
-        if (Fp) {\r
-          fclose (Fp);\r
-        }\r
-      }    \r
-    }\r
-    VtfInfo = VtfInfo->NextVtfInfo;\r
-  }\r
-\r
-  //\r
-  // Add file header space\r
-  //\r
-  *VtfSize += sizeof (EFI_FFS_FILE_HEADER);\r
-\r
-  //\r
-  // Create additional to IA32 Seccore section header\r
-  //\r
-  *VtfSize += sizeof (EFI_COMMON_SECTION_HEADER);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-ProcessAndCreate32Vtf (\r
-  IN  UINT64  Size\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function process the link list created during INF file parsing\r
-  and create component in IA32 VTF\r
-  \r
-Arguments:\r
-\r
-  Size   - Size of the Firmware Volume of which, this VTF belongs to.\r
-\r
-Returns:\r
-  \r
-  EFI_UNSUPPORTED - Unknown component type\r
-  EFI_SUCCESS     - The function completed successfully                 \r
-\r
---*/\r
-{\r
-  EFI_STATUS          Status;\r
-  PARSED_VTF_INFO     *ParsedInfoPtr;\r
-\r
-  Status = EFI_SUCCESS;\r
-\r
-  ParsedInfoPtr = FileListHeadPtr;\r
-\r
-  while (ParsedInfoPtr != NULL) {\r
-    \r
-    switch (ParsedInfoPtr->CompType) {\r
-\r
-    case COMP_TYPE_SECCORE:\r
-      Status = CreateAndUpdateSeccore (ParsedInfoPtr);\r
-      break;\r
-\r
-    default:\r
-      //\r
-      // Any other component type should be handled here. This will create the\r
-      // image in specified VTF\r
-      //\r
-      Status = CreateAndUpdate32Component (ParsedInfoPtr);\r
-      if (EFI_ERROR(Status)) {\r
-        printf ("ERROR: Updating %s component.\n", ParsedInfoPtr->CompName);\r
-      }\r
-      break;\r
-    }\r
-\r
-    ParsedInfoPtr = ParsedInfoPtr->NextVtfInfo;\r
-  }\r
-\r
-  return Status;\r
-}\r
-\r
-EFI_STATUS\r
-CreateAndUpdateSeccore (\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the binary file for seccore and update them\r
-  in IA32 VTF Buffer\r
-  \r
-Arguments:\r
-\r
-  VtfInfo    - Pointer to Parsed Info\r
-  \r
-Returns:\r
-\r
-  EFI_ABORTED           - Due to one of the following reasons:\r
-                           (a)Error Opening File\r
-                           (b)The PAL_A Size is more than specified size status\r
-                              One of the values mentioned below returned from \r
-                              call to UpdateSymFile\r
-  EFI_SUCCESS           - The function completed successfully.\r
-  EFI_INVALID_PARAMETER - One of the input parameters was invalid.\r
-  EFI_ABORTED           - An error occurred.UpdateSymFile\r
-  EFI_OUT_OF_RESOURCES  - Memory allocation failed.\r
-   \r
---*/\r
-{\r
-  UINT8                      *SecbinStartAddress;\r
-  UINT8                      *SecfileStartAddress;\r
-  UINT32                     FileSize;\r
-  UINT64                     NumByteRead;\r
-  UINT8                      *Buffer;\r
-  FILE                       *Fp;\r
-  UINT64                     TotalLength;\r
-  EFI_COMMON_SECTION_HEADER  *SecHeader;\r
-\r
-  Fp = fopen (VtfInfo->CompBinName, "r+b");\r
-\r
-  if (Fp == NULL) {\r
-    printf ("\nERROR: Opening file %s", VtfInfo->CompBinName);\r
-    return EFI_ABORTED;\r
-  }\r
-\r
-  FileSize = _filelength (fileno (Fp));\r
-\r
-  if (VtfInfo->PreferredSize) {\r
-    if (FileSize > VtfInfo->CompSize) {\r
-      printf("\nERROR: The Seccore Size is more than specified size");\r
-      return EFI_ABORTED;\r
-    }\r
-\r
-    FileSize = VtfInfo->CompSize;\r
-  }\r
-\r
-  VtfInfo->CompSize = FileSize;\r
-\r
-  Buffer = malloc ((UINTN) FileSize);\r
-  if (Buffer == NULL) {\r
-    return EFI_OUT_OF_RESOURCES;\r
-  }\r
-  memset (Buffer, 0, (UINTN) FileSize);\r
-\r
-  //\r
-  // Read seccore in a buffer\r
-  //\r
-  NumByteRead = fread (Buffer, sizeof (UINT8), (UINTN) FileSize, Fp);\r
-  fclose (Fp);\r
-\r
-  SecfileStartAddress = (UINT8 *) Vtf1Buffer + Vtf1LastStartAddress - FileSize - sizeof (EFI_COMMON_SECTION_HEADER); \r
-  if (SecfileStartAddress == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  SecbinStartAddress = SecfileStartAddress + sizeof (EFI_COMMON_SECTION_HEADER);\r
-\r
-  VtfInfo->CompPreferredAddress = Vtf1LastStartAddress - FileSize + BufferToTop;\r
-\r
-  //\r
-  // write section header\r
-  //\r
-  memset (SecfileStartAddress, 0, sizeof (EFI_COMMON_SECTION_HEADER));\r
-  SecHeader = (EFI_COMMON_SECTION_HEADER *) SecfileStartAddress;\r
-  SecHeader->Type = EFI_SECTION_RAW;\r
-  TotalLength     = sizeof (EFI_COMMON_SECTION_HEADER) + (UINT64) FileSize;\r
-  memcpy (SecHeader->Size, &TotalLength, 3);\r
-\r
-  //\r
-  // write seccore\r
-  //\r
-  memcpy (SecbinStartAddress, Buffer, (UINTN) FileSize);\r
-\r
-  if (Buffer) {\r
-    free (Buffer);\r
-  }\r
-\r
-  Vtf1LastStartAddress = SecfileStartAddress - (UINT8 *) Vtf1Buffer;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-CreateAndUpdate32Component (\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the binary file for each components. Add it at aligned address.\r
-  \r
-Arguments:\r
-\r
-  VtfInfo    - Pointer to Parsed Info\r
-  \r
-Returns:\r
-\r
-  EFI_SUCCESS              - The function completed successful\r
-  EFI_ABORTED              - Aborted due to one of the many reasons like:\r
-                              (a) Component Size greater than the specified size.\r
-                              (b) Error opening files.\r
-  EFI_INVALID_PARAMETER    - Value returned from call to UpdateEntryPoint()\r
-  EFI_OUT_OF_RESOURCES     - Memory allocation failed.\r
-  \r
---*/\r
-{\r
-  UINT64      CompStartAddress;\r
-  UINT32      FileSize;\r
-  UINT64      NumByteRead;\r
-  UINT8       *Buffer;\r
-  FILE        *Fp;\r
-  UINT8       *LocalBufferPtrToWrite;\r
-  UINT64      Alignment;\r
-\r
-  Fp = fopen (VtfInfo->CompBinName, "r+b");\r
-\r
-  if (Fp == NULL) {\r
-    printf("\nERROR: Opening file %s", VtfInfo->CompBinName);\r
-    return EFI_ABORTED;\r
-  }\r
-\r
-  FileSize = _filelength (fileno (Fp));\r
-\r
-  if (VtfInfo->PreferredSize) {\r
-    if (FileSize > VtfInfo->CompSize) {\r
-      printf("\nERROR: The component size is more than specified size");\r
-      return EFI_ABORTED;\r
-    }\r
-    FileSize = VtfInfo->CompSize;\r
-  }\r
-  VtfInfo->CompSize = FileSize;\r
-\r
-  Buffer = malloc ((UINTN) FileSize);\r
-  if (Buffer == NULL) {\r
-    return EFI_OUT_OF_RESOURCES;\r
-  }\r
-  memset (Buffer,0, (UINTN) FileSize);\r
-\r
-  NumByteRead = fread (Buffer, sizeof (UINT8), (UINTN) FileSize, Fp);\r
-  fclose (Fp);\r
-\r
-  CompStartAddress = Vtf1LastStartAddress - FileSize + BufferToTop;\r
-\r
-  if (VtfInfo->Align) {\r
-    //\r
-    // Create additional align to compensate for component boundary requirements\r
-    //\r
-    Alignment = 0 - (1 << VtfInfo->Align);\r
-    CompStartAddress = CompStartAddress & Alignment;    \r
-  }\r
-\r
-  VtfInfo->CompPreferredAddress = CompStartAddress;\r
-\r
-  //\r
-  // write bin\r
-  //\r
-  LocalBufferPtrToWrite = (UINT8 *) Vtf1Buffer;\r
-  Vtf1LastStartAddress  = CompStartAddress - BufferToTop;\r
-  LocalBufferPtrToWrite += Vtf1LastStartAddress;\r
-  memcpy (LocalBufferPtrToWrite, Buffer, (UINTN) FileSize);  \r
-  Vtf1LastStartAddress = CompStartAddress - BufferToTop;\r
-\r
-  //\r
-  // Free the buffer\r
-  //\r
-  if (Buffer) {\r
-    free (Buffer);\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-Update32FfsHeader(\r
-  IN UINT32     VtfSize\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Update the Firmware Volume Buffer with requested buffer data\r
-\r
-Arguments:\r
-\r
-  VtfSize     - Size of the IA32 VTF\r
-\r
-Returns:\r
-  \r
-  EFI_SUCCESS            - The function completed successfully\r
-  EFI_INVALID_PARAMETER  - The Ffs File Header Pointer is NULL\r
-\r
---*/\r
-{\r
-  EFI_FFS_FILE_HEADER     *FileHeader;\r
-  UINT32                  TotalVtfSize;\r
-  EFI_GUID                EfiFirmwareVolumeTopFileGuid = EFI_FFS_VOLUME_TOP_FILE_GUID;\r
-\r
-  \r
-  //\r
-  // Find the VTF file header location, the VTF file must be 8 bytes aligned\r
-  //\r
-  Vtf1LastStartAddress -= sizeof (EFI_FFS_FILE_HEADER);\r
-  Vtf1LastStartAddress += BufferToTop;\r
-  Vtf1LastStartAddress = Vtf1LastStartAddress & -8;\r
-  Vtf1LastStartAddress -= BufferToTop;\r
-  FileHeader = (EFI_FFS_FILE_HEADER*)((UINT8*)Vtf1Buffer + Vtf1LastStartAddress);\r
-\r
-  if (FileHeader == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  //\r
-  // write header\r
-  //\r
-  memset (FileHeader, 0, sizeof(EFI_FFS_FILE_HEADER));\r
-  memcpy (&FileHeader->Name, &EfiFirmwareVolumeTopFileGuid, sizeof (EFI_GUID));\r
-\r
-  FileHeader->Type = EFI_FV_FILETYPE_RAW;\r
-  FileHeader->Attributes = FFS_ATTRIB_CHECKSUM;\r
-\r
-  //\r
-  // Now FileSize includes the EFI_FFS_FILE_HEADER\r
-  //\r
-  TotalVtfSize = VtfSize - (UINT32)Vtf1LastStartAddress;\r
-  FileHeader->Size[0] = (UINT8) (TotalVtfSize & 0x000000FF);\r
-  FileHeader->Size[1] = (UINT8) ((TotalVtfSize & 0x0000FF00) >> 8);\r
-  FileHeader->Size[2] = (UINT8) ((TotalVtfSize & 0x00FF0000) >> 16);\r
-\r
-  //\r
-  // Fill in checksums and state, all three must be zero for the checksums.\r
-  //\r
-  FileHeader->IntegrityCheck.Checksum.Header = 0;\r
-  FileHeader->IntegrityCheck.Checksum.File = 0;\r
-  FileHeader->State = 0;\r
-  FileHeader->IntegrityCheck.Checksum.Header = CalculateChecksum8 ((UINT8*) FileHeader, sizeof (EFI_FFS_FILE_HEADER));\r
-  FileHeader->IntegrityCheck.Checksum.File = CalculateChecksum8 ((UINT8*) FileHeader, TotalVtfSize);\r
-  FileHeader->State = EFI_FILE_HEADER_CONSTRUCTION | EFI_FILE_HEADER_VALID | EFI_FILE_DATA_VALID;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-Get32VtfRelatedInfoFromInfFile (\r
-  IN  CHAR8 *FileName\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the input file, parse it and create a list of tokens\r
-  which is parsed and used, to intialize the data related to IA32 VTF\r
-  \r
-Arguments:\r
-\r
-  FileName  FileName which needed to be read to parse data\r
-\r
-Returns:\r
-   \r
-  EFI_ABORTED            Error in opening file\r
-  EFI_INVALID_PARAMETER  File doesn't contain any valid informations\r
-  EFI_OUT_OF_RESOURCES   Malloc Failed\r
-  EFI_SUCCESS            The function completed successfully \r
-\r
---*/\r
-{\r
-  FILE          *Fp;\r
-  UINTN         Index;\r
-  EFI_STATUS    Status;\r
-  \r
-  Fp = fopen (FileName, "r");\r
-  if (Fp == NULL) {\r
-    printf ("\nERROR: Error in opening %s file\n", FileName);\r
-    return EFI_ABORTED;\r
-  }\r
-  \r
-  printf("\n%s", *FileName);\r
-  ValidLineCount (Fp);\r
-  \r
-  if (ValidLineNum == 0) {\r
-    printf ("\nERROR: File doesn't contain any valid informations");\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-  \r
-  TokenStr = (CHAR8 **)malloc (sizeof (UINTN) * (2 * ValidLineNum + 1));\r
-\r
-  if (TokenStr == NULL) {\r
-    return EFI_OUT_OF_RESOURCES;\r
-  }\r
-  memset (TokenStr, 0, (sizeof (UINTN) * (2 * ValidLineNum + 1)));\r
-  OrgStrTokPtr = TokenStr;\r
-  \r
-  for (Index = 0; Index < (2 * ValidLineNum); Index++) {\r
-    *TokenStr = (CHAR8 *)malloc (sizeof (CHAR8) * FILE_NAME_SIZE);\r
-\r
-    if (*TokenStr == NULL) {\r
-      free (OrgStrTokPtr);\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-    \r
-    memset (*TokenStr, 0, FILE_NAME_SIZE);\r
-//    free (*TokenStr);\r
-    TokenStr++;\r
-  }\r
-  \r
-  TokenStr = NULL;\r
-  TokenStr = OrgStrTokPtr;\r
-  fseek (Fp, 0L, SEEK_SET);\r
-  \r
-  Status = InitializeComps();\r
-\r
-  if (Status != EFI_SUCCESS) {\r
-    free (TokenStr);\r
-    return Status;\r
-  }\r
-  ParseInputFile (Fp);\r
-  Initialize32InFileInfo ();\r
-  \r
-  if (Fp) {\r
-    fclose (Fp);\r
-  }\r
-  free (TokenStr);\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-VOID\r
-Initialize32InFileInfo (\r
-  VOID                     \r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function intializes the relevant global variable which is being\r
-  used to store the information retrieved from IA32 INF file.\r
-\r
-Arguments:\r
-\r
-  NONE\r
-\r
-Returns:\r
-\r
-  NONE\r
-\r
---*/\r
-{\r
-//  UINTN   SectionOptionFlag;\r
-//  UINTN   SectionCompFlag;\r
-\r
-  SectionOptionFlag =0 ;\r
-  SectionCompFlag = 0;  \r
-  TokenStr = OrgStrTokPtr;\r
-  while (*TokenStr != NULL) {\r
-    if (strnicmp (*TokenStr, "[OPTIONS]", 9) == 0) {\r
-      SectionOptionFlag = 1;\r
-      SectionCompFlag = 0;\r
-    }\r
-    \r
-    if (strnicmp (*TokenStr, "[COMPONENTS]", 12) == 0) {\r
-      if (FileListPtr == NULL) {\r
-        FileListPtr = FileListHeadPtr;\r
-      }\r
-      \r
-      SectionCompFlag = 1;\r
-      SectionOptionFlag = 0;\r
-      TokenStr++;\r
-    }\r
-    \r
-    if (SectionOptionFlag) {\r
-      if (strnicmp (*TokenStr, "IA32_RST_BIN", 12) == 0) {\r
-        *TokenStr++;\r
-        strcpy (IA32BinFile, *TokenStr);\r
-      }\r
-    }\r
-    \r
-    if (SectionCompFlag) {\r
-      if (strnicmp (*TokenStr, "COMP_NAME", 9) == 0) {\r
-        TokenStr++;\r
-        strcpy (FileListPtr->CompName, *TokenStr);\r
-        TokenStr++;\r
-        ParseAndUpdate32Components (FileListPtr);\r
-      }\r
-      \r
-      if (*TokenStr != NULL) {\r
-        FileListPtr->NextVtfInfo = malloc (sizeof (PARSED_VTF_INFO));\r
-        if (FileListPtr->NextVtfInfo == NULL) {\r
-          printf ("Error: Out of memory resources.\n");\r
-          break;\r
-        }\r
-        FileListPtr = FileListPtr->NextVtfInfo;\r
-        memset (FileListPtr, 0, sizeof(PARSED_VTF_INFO));\r
-        FileListPtr->NextVtfInfo = NULL;\r
-        continue;\r
-      } else {\r
-        break;\r
-      }\r
-    }\r
-    \r
-    TokenStr++;\r
-  }\r
-}\r
-\r
-VOID \r
-ParseAndUpdate32Components (\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function intializes the relevant global variable which is being\r
-  used to store the information retrieved from INF file.\r
-  \r
-Arguments:\r
-\r
-  VtfInfo   - A pointer to the VTF Info Structure\r
-  \r
-\r
-Returns:\r
-\r
-  None\r
-\r
---*/\r
-{\r
-  UINT64  StringValue;\r
-  UINT64  AlignStringValue;\r
-\r
-  while (*TokenStr != NULL && (strnicmp (*TokenStr, "COMP_NAME", 9) != 0)) {\r
-\r
-    if (strnicmp (*TokenStr, "COMP_LOC", 8) == 0) {\r
-      TokenStr++;\r
-      if (strnicmp (*TokenStr, "B", 1) == 0) {\r
-        VtfInfo->LocationType = FIRST_VTF;\r
-      } else if (strnicmp (*TokenStr, "N", 1) == 0) {\r
-        VtfInfo->LocationType = SECOND_VTF;\r
-      } else {\r
-        VtfInfo->LocationType = NONE;\r
-        printf ("\nERROR: Unknown location for component %s", VtfInfo->CompName);\r
-      }\r
-    } else if (strnicmp (*TokenStr, "COMP_TYPE", 9) == 0) {\r
-      TokenStr++;\r
-      if (AsciiStringToUint64 (*TokenStr, FALSE, &StringValue) != EFI_SUCCESS) {\r
-        printf ("\nERROR: COMP_TYPE32 Could not read a numeric value from \"%s\".", TokenStr); \r
-        return;\r
-      }\r
-      VtfInfo->CompType = (UINT8) StringValue;\r
-    } else if (strnicmp (*TokenStr, "COMP_VER", 8) == 0) {\r
-      TokenStr++;\r
-      if (strnicmp (*TokenStr, "-", 1) == 0) {\r
-        VtfInfo->VersionPresent = FALSE;\r
-        VtfInfo->MajorVer = 0;\r
-        VtfInfo->MinorVer = 0;\r
-      } else {\r
-        VtfInfo->VersionPresent = TRUE;\r
-        ConvertVersionInfo (*TokenStr, &VtfInfo->MajorVer, &VtfInfo->MinorVer);\r
-      }\r
-    } else if (strnicmp (*TokenStr, "COMP_BIN", 8) == 0) {\r
-      TokenStr++;\r
-      strcpy (VtfInfo->CompBinName, *TokenStr);\r
-    } else if (strnicmp (*TokenStr, "COMP_SYM", 8) == 0) {\r
-      TokenStr++;\r
-      strcpy (VtfInfo->CompSymName, *TokenStr);\r
-    } else if (strnicmp (*TokenStr, "COMP_SIZE", 9) == 0) {\r
-      TokenStr++;\r
-      if (strnicmp (*TokenStr, "-", 1) == 0) {\r
-        VtfInfo->PreferredSize = FALSE;\r
-        VtfInfo->CompSize = 0;\r
-      } else {\r
-        VtfInfo->PreferredSize = TRUE;\r
-        if (AsciiStringToUint64 (*TokenStr, FALSE, &StringValue) != EFI_SUCCESS) {\r
-          printf ("\nERROR: COMP_SIZE 32 Could not read a numeric value from \"%s\".", TokenStr); \r
-          return;\r
-        }\r
-        VtfInfo->CompSize = (UINTN) StringValue;\r
-      }\r
-\r
-    } else if (strnicmp (*TokenStr, "COMP_CS", 7) == 0) {\r
-      TokenStr++;\r
-      if (strnicmp (*TokenStr, "1", 1) == 0) {\r
-        VtfInfo->CheckSumRequired = 1;\r
-      } else if (strnicmp (*TokenStr, "0", 1) == 0) {\r
-        VtfInfo->CheckSumRequired = 0;\r
-      } else {\r
-        printf ("\nERROR: Bad information in INF file about Checksum required field");\r
-      }\r
-    } else if (strnicmp (*TokenStr, "COMP_ALIGN", 10) == 0) {\r
-      TokenStr++;\r
-      if (AsciiStringToUint64 (*TokenStr, FALSE, &AlignStringValue) != EFI_SUCCESS) {\r
-        printf ("\nERROR: COMP_ALIG 32 Could not read a numeric value from \"%s\".", TokenStr); \r
-        return;\r
-      }\r
-      if (AlignStringValue >= 0) {\r
-        VtfInfo->Align = (UINT32) AlignStringValue;\r
-      } else {\r
-        printf ("\nERROR: invalid align \"%s\".", AlignStringValue); \r
-        return;\r
-      }\r
-    }\r
-    TokenStr++;\r
-    if (*TokenStr == NULL) {\r
-      break;\r
-    }\r
-  }\r
-}\r
-\r
-EFI_STATUS\r
-Write32SoftFit(\r
-  IN CHAR8              *FileName,\r
-  IN PARSED_VTF_INFO    *VtfInfo\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Write IA32 Firmware Volume component address from memory to a file.\r
-  \r
-Arguments:\r
-\r
-  FileName      Output File Name which needed to be created/\r
-  VtfInfo       Parsed info link\r
-  \r
-Returns:\r
-\r
-  EFI_ABORTED  - Returned due to one of the following resons:\r
-                  (a) Error Opening File\r
-                  (b) Failing to copy buffers\r
-  EFI_SUCCESS  - The function completes successfully\r
-\r
---*/\r
-{\r
-  FILE    *Fp;\r
-\r
-  Fp = fopen (FileName, "w+t");\r
-  if (Fp == NULL) {\r
-    printf ("Error in opening file %s\n", FileName);\r
-    return EFI_ABORTED;\r
-  }\r
-\r
-  while (VtfInfo != NULL) {\r
-    if (strlen (VtfInfo->CompName) != 0) {\r
-      fprintf (Fp, "\n%s\n", VtfInfo->CompName);\r
-    } else {\r
-      fprintf (Fp, "\n%s\n", "Name not available");    \r
-    }\r
-    \r
-    fprintf (Fp, "%d\n", VtfInfo->CompPreferredAddress);\r
-    fprintf (Fp, "%d\n", VtfInfo->CompSize);\r
-    fprintf (Fp, "%d\n", VtfInfo->Align);\r
-    \r
-    VtfInfo = VtfInfo->NextVtfInfo;\r
-  }\r
-\r
-  if (Fp) {\r
-    fclose (Fp);\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
index 853593a..a4733bf 100644 (file)
@@ -40,21 +40,6 @@ Abstract:
 //\r
 // Internal Constants\r
 //\r
-#define EFI_IPF_VTF1_GUID \\r
-  { \\r
-    0xfa371c9b, 0x5a86, 0x4198, 0xab, 0xc2, 0xed, 0x3f, 0xaa, 0xce, 0xb0, 0x8b \\r
-  };\r
-\r
-#define EFI_IPF_VTF2_GUID \\r
-  { \\r
-    0x624a0d5a, 0x315f, 0x40b6, 0xa6, 0x33, 0xe5, 0xf7, 0xde, 0x58, 0x20, 0xa0 \\r
-  };\r
-\r
-#define EFI_IA32_BOOT_STRAP_GUID \\r
-  { \\r
-    0xd4260a8d, 0x356, 0x4f45, 0x85, 0xe9, 0xad, 0x1d, 0x79, 0x22, 0x79, 0xf0 \\r
-  };\r
-\r
 #define CV_N_TYPE(a,b)            (UINT8)(((UINT8)a << 7) + (UINT8)b)  // Keeps the CV and Type in same byte field\r
 #define MAKE_VERSION(a,b)         (UINT16)(((UINT16)a << 8) + (UINT16)b)\r
 \r
@@ -64,12 +49,6 @@ Abstract:
 #define   VTF_OUTPUT_FILE         "Vtf.RAW"\r
 #define   VTF_SYM_FILE            "Vtf.SYM"\r
 #define   FIT_SIGNATURE           "_FIT_   "\r
-//#define   VTF_OUTPUT               1\r
-\r
-//\r
-// This is IA32 seccore\r
-//\r
-#define   COMP_TYPE_SECCORE             0x0F\r
 \r
 //\r
 //Fit Type Definition\r
@@ -137,14 +116,6 @@ Abstract:
 #define TWO_VTF_ARGS  12\r
 #define THREE_VTF_ARGS  16\r
 \r
-\r
-//\r
-// The number of IA32 vtf arguments accepted from the command line.\r
-//\r
-#define IA32_ARGS  20\r
-\r
-#define IA32_SOFT_FIT "IA32VtfAddress.inf"\r
-\r
 static BOOLEAN VerboseMode = FALSE;\r
 \r
 //\r
@@ -193,55 +164,7 @@ typedef struct {
 #pragma pack ()\r
 \r
 //\r
-// The function that displays general utility information\r
-//\r
-VOID\r
-PrintUtilityInfo (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Displays the standard utility information to SDTOUT\r
-\r
-Arguments:\r
-\r
-  None\r
-\r
-Returns:\r
-\r
-  None\r
-\r
---*/\r
-;\r
-\r
-//\r
-// The function that displays the utility usage message.\r
-//\r
-VOID\r
-PrintUsage (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Displays the utility usage syntax to STDOUT\r
-\r
-Arguments:\r
-\r
-  None\r
-\r
-Returns:\r
-\r
-  None\r
-\r
---*/\r
-;\r
-\r
-//\r
-// Other Function Prototype Declarations\r
+// Function Prototype Declarations\r
 //\r
 \r
 EFI_STATUS\r
@@ -383,256 +306,6 @@ Returns:
 --*/\r
 ;\r
 \r
-EFI_STATUS\r
-Generate32VtfImage (\r
-IN  UINT64  BootFileStartAddress\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This is the main IA32 function which will be called from application.\r
-  (Now this tool is not used for IA32 platform, if it will be used in future,\r
-  the relative functions need to be updated, the updating can refer to IPF \r
-  functions)\r
-\r
-Arguments:\r
-\r
-  BootFileStartAddress   - Top Address of Boot File\r
-\r
-Returns:\r
\r
-  The return value can be any of the values \r
-  returned by the calls to following functions:\r
-      Get32VtfRelatedInfoFromInfFile\r
-      CreateVtfBuffer\r
-      ProcessAndCreate32Vtf\r
-      Update32FfsHeader\r
-      WriteVtfBinary\r
-  \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-GetTotal32VtfSize(\r
-  IN  UINT32  *VtfSize \r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function calculates total size for IA32 VTF which would be needed to create\r
-  the buffer. This will be done using Passed Info link list and looking for the\r
-  size of the components which belong to VTF. The addtional file header is accounted.\r
-\r
-Arguments:\r
-\r
-  VTFSize     - Pointer to the size of IA32 VTF \r
-\r
-Returns:\r
-\r
-  EFI_ABORTED - Returned due to one of the following resons:\r
-                (a) Error Opening File\r
-  EFI_SUCCESS - The fuction completes successfully\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-ProcessAndCreate32Vtf (\r
-  IN  UINT64  Size\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function process the link list created during INF file parsing\r
-  and create component in IA32 VTF\r
-  \r
-Arguments:\r
-\r
-  Size   - Size of the Firmware Volume of which, this VTF belongs to.\r
-\r
-Returns:\r
-  \r
-  EFI_UNSUPPORTED - Unknown component type\r
-  EFI_SUCCESS     - The function completed successfully                 \r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-CreateAndUpdateSeccore (\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the binary file for seccore and update them\r
-  in IA32 VTF Buffer\r
-  \r
-Arguments:\r
-\r
-  VtfInfo    - Pointer to Parsed Info\r
-  \r
-Returns:\r
-\r
-  EFI_ABORTED           - Due to one of the following reasons:\r
-                           (a)Error Opening File\r
-                           (b)The PAL_A Size is more than specified size status\r
-                              One of the values mentioned below returned from \r
-                              call to UpdateSymFile\r
-  EFI_SUCCESS           - The function completed successfully.\r
-  EFI_INVALID_PARAMETER - One of the input parameters was invalid.\r
-  EFI_ABORTED           - An error occurred.UpdateSymFile\r
-   \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-CreateAndUpdate32Component (\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the binary file for each components. Add it at aligned address.\r
-  \r
-Arguments:\r
-\r
-  VtfInfo    - Pointer to Parsed Info\r
-  \r
-Returns:\r
-\r
-  EFI_SUCCESS              - The function completed successful\r
-  EFI_ABORTED              - Aborted due to one of the many reasons like:\r
-                              (a) Component Size greater than the specified size.\r
-                              (b) Error opening files.\r
-  EFI_INVALID_PARAMETER    - Value returned from call to UpdateEntryPoint()\r
-  \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-Update32FfsHeader(\r
-  IN      UINT32 VtfSize\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Update the Firmware Volume Buffer with requested buffer data\r
-\r
-Arguments:\r
-\r
-  VtfSize     - Size of the IA32 VTF\r
-\r
-Returns:\r
-  \r
-  EFI_SUCCESS            - The function completed successfully\r
-  EFI_INVALID_PARAMETER  - The Ffs File Header Pointer is NULL\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-Get32VtfRelatedInfoFromInfFile (\r
-  IN  CHAR8 *FileName\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the input file, parse it and create a list of tokens\r
-  which is parsed and used, to intialize the data related to IA32 VTF\r
-  \r
-Arguments:\r
-\r
-  FileName  FileName which needed to be read to parse data\r
-\r
-Returns:\r
-   \r
-  EFI_ABORTED            Error in opening file\r
-  EFI_INVALID_PARAMETER  File doesn't contain any valid informations\r
-  EFI_OUT_OF_RESOURCES   Malloc Failed\r
-  EFI_SUCCESS            The function completed successfully \r
-\r
---*/\r
-;\r
-\r
-VOID\r
-Initialize32InFileInfo (\r
-  VOID                     \r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function intializes the relevant global variable which is being\r
-  used to store the information retrieved from IA32 INF file.\r
-\r
-Arguments:\r
-\r
-  NONE\r
-\r
-Returns:\r
-\r
-  NONE\r
-\r
---*/\r
-;\r
-\r
-VOID \r
-ParseAndUpdate32Components (\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function intializes the relevant global variable which is being\r
-  used to store the information retrieved from INF file.\r
-  \r
-Arguments:\r
-\r
-  VtfInfo   - A pointer to the VTF Info Structure\r
-  \r
-\r
-Returns:\r
-\r
-  None\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-Write32SoftFit(\r
-  IN CHAR8              *FileName,\r
-  IN  PARSED_VTF_INFO   *VtfInfo\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Write IA32 Firmware Volume component address from memory to a file.\r
-  \r
-Arguments:\r
-\r
-  FileName      Output File Name which needed to be created/\r
-  VtfInfo       Parsed info link\r
-  \r
-Returns:\r
-\r
-  EFI_ABORTED  - Returned due to one of the following resons:\r
-                  (a) Error Opening File\r
-                  (b) Failing to copy buffers\r
-  EFI_SUCCESS  - The fuction completes successfully\r
-\r
---*/\r
-;\r
-\r
 VOID\r
 Usage (\r
   VOID\r
index b80a6a6..fee5085 100644 (file)
Binary files a/UserManuals/GenVtf_HLD.doc and b/UserManuals/GenVtf_HLD.doc differ