]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/CCode/Source/GenBsfImage/GenBsfImage.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / CCode / Source / GenBsfImage / GenBsfImage.h
diff --git a/Tools/CCode/Source/GenBsfImage/GenBsfImage.h b/Tools/CCode/Source/GenBsfImage/GenBsfImage.h
deleted file mode 100644 (file)
index 65183d1..0000000
+++ /dev/null
@@ -1,632 +0,0 @@
-/*++\r
-\r
-Copyright (c) 1999 - 2007 Intel Corporation. All rights reserved\r
-This software and associated documentation (if any) is furnished\r
-under a license and may only be used or copied in accordance\r
-with the terms of the license. Except as permitted by such\r
-license, no part of this software or documentation may be\r
-reproduced, stored in a retrieval system, or transmitted in any\r
-form or by any means without the express written consent of\r
-Intel Corporation.\r
-\r
-\r
-Module Name:  \r
-\r
-  GenBsfImage.h\r
-\r
-Abstract:\r
-\r
-  This file contains the relevant declarations required\r
-  to generate Boot Strap File\r
-\r
---*/\r
-\r
-//\r
-// Module Coded to EFI 2.0 Coding Conventions\r
-//\r
-#ifndef   _EFI_GEN_BSF_IMAGE_H\r
-#define   _EFI_GEN_BSF_IMAGE_H\r
-\r
-//\r
-// External Files Referenced\r
-//\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <string.h>\r
-#include "assert.h"\r
-// #include "TianoCommon.h"\r
-#include "Common/FirmwareFileSystem.h"\r
-#include "Common/FirmwareVolumeHeader.h"\r
-#include "ParseInf.h"\r
-\r
-//\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
-#define   FILE_NAME_SIZE          256\r
-#define   COMPONENT_NAME_SIZE     128\r
-#define   BSF_INPUT_FILE          "BSF.INF"\r
-#define   BSF_OUTPUT_FILE         "Bsf.RAW"\r
-#define   BSF_SYM_FILE            "Bsf.SYM"\r
-#define   FIT_SIGNATURE           "_FIT_   "\r
-\r
-//\r
-// This is IA32 seccore\r
-//\r
-#define   COMP_TYPE_SECCORE             0x0F\r
-\r
-//\r
-//Fit Type Definition\r
-//\r
-#define   COMP_TYPE_FIT_HEADER          0x00\r
-#define   COMP_TYPE_FIT_PAL_B           0x01\r
-\r
-//\r
-// This is generic PAL_A\r
-//\r
-#define   COMP_TYPE_FIT_PAL_A           0x0F\r
-#define   COMP_TYPE_FIT_PEICORE         0x10\r
-#define   COMP_TYPE_FIT_AUTOSCAN        0x30\r
-#define   COMP_TYPE_FIT_FV_BOOT         0x7E\r
-\r
-//\r
-//This is processor Specific PAL_A\r
-//\r
-#define   COMP_TYPE_FIT_PAL_A_SPECIFIC  0x0E\r
-#define   COMP_TYPE_FIT_UNUSED    0x7F\r
-\r
-#define   FIT_TYPE_MASK           0x7F\r
-#define   CHECKSUM_BIT_MASK       0x80\r
-\r
-//\r
-// IPF processor address is cached bit\r
-//\r
-#define IPF_CACHE_BIT 0x8000000000000000ULL\r
-\r
-//\r
-// Size definition to calculate the location from top of address for\r
-// each component\r
-//\r
-#define SIZE_IA32_RESET_VECT      0x10        // 16 Bytes\r
-#define SIZE_SALE_ENTRY_POINT     0x08        // 8 Byte\r
-#define SIZE_FIT_TABLE_ADD        0x08        // 8 Byte\r
-#define SIZE_FIT_TABLE_PAL_A      0x10     \r
-#define SIZE_RESERVED             0x10\r
-\r
-\r
-#define SIZE_TO_OFFSET_PAL_A_END  (SIZE_IA32_RESET_VECT + SIZE_SALE_ENTRY_POINT + \\r
-                                  SIZE_FIT_TABLE_ADD + SIZE_FIT_TABLE_PAL_A + \\r
-                                  SIZE_RESERVED)\r
-#define SIZE_TO_PAL_A_FIT         (SIZE_IA32_RESET_VECT + SIZE_SALE_ENTRY_POINT + \\r
-                                  SIZE_FIT_TABLE_ADD + SIZE_FIT_TABLE_PAL_A)\r
-\r
-#define SIZE_OF_PAL_HEADER        0x40        //PAL has 64 byte header\r
-\r
-//\r
-// Utility Name\r
-//\r
-#define UTILITY_NAME  "GenBsfImage"\r
-\r
-//\r
-// Utility version information\r
-//\r
-#define UTILITY_MAJOR_VERSION   0\r
-#define UTILITY_MINOR_VERSION   1\r
-#define UTILITY_DATE            __DATE__\r
-\r
-//\r
-// The maximum number of arguments accepted from the command line.\r
-//\r
-#define ONE_BSF_ARGS  5\r
-#define TWO_BSF_ARGS  9\r
-\r
-//\r
-// The number of IA32 bsf arguments accepted from the command line.\r
-//\r
-#define IA32_ARGS  3\r
-\r
-#define IA32_SOFT_FIT "IA32BsfAddress.inf"\r
-\r
-//\r
-// Internal Data Structure\r
-//\r
-typedef enum _LOC_TYPE \r
-{\r
-  NONE,                   // In case there is - INF file\r
-  FIRST_VTF,              // First VTF\r
-  SECOND_VTF,             // Outside BSF\r
-} LOC_TYPE;\r
-\r
-typedef struct _PARSED_BSF_INFO {\r
-  CHAR8       CompName[COMPONENT_NAME_SIZE];\r
-  LOC_TYPE    LocationType;\r
-  UINT8       CompType;\r
-  UINT8       MajorVer;\r
-  UINT8       MinorVer;\r
-  UINT8       CheckSumRequired;\r
-  BOOLEAN     VersionPresent;                // If it is TRUE, then, Version is in INF file\r
-  BOOLEAN     PreferredSize;\r
-  BOOLEAN     PreferredAddress;\r
-  CHAR8       CompBinName[FILE_NAME_SIZE];\r
-  CHAR8       CompSymName[FILE_NAME_SIZE];\r
-  UINTN       CompSize;\r
-  UINT64      CompPreferredAddress;\r
-  UINT32      Align;\r
-\r
-  //\r
-  //  Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'\r
-  //  Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'\r
-  //  Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'\r
-  //  Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'\r
-  //\r
-  struct      _PARSED_BSF_INFO   *NextBsfInfo;\r
-} PARSED_BSF_INFO;\r
-\r
-#pragma pack (1)\r
-typedef struct {\r
-  UINT64      CompAddress;\r
-  UINT32      CompSize;\r
-  UINT16      CompVersion;\r
-  UINT8       CvAndType;\r
-  UINT8       CheckSum;\r
-} FIT_TABLE;\r
-#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
-//\r
-\r
-EFI_STATUS\r
-UpdateBsfBuffer(\r
-  IN  UINT64    StartAddress,\r
-  IN  UINT8     *Buffer,\r
-  IN  UINT64    DataSize,\r
-  IN  LOC_TYPE  LocType\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Update the Firmware Volume Buffer with requested buffer data\r
-  \r
-Arguments:\r
-\r
-  StartAddress   - StartAddress in buffer. This number will automatically\r
-                  point to right address in buffer where data needed \r
-                  to be updated.\r
-  Buffer         - Buffer pointer from data will be copied to memory mapped buffer.\r
-  DataSize       - Size of the data needed to be copied.\r
-  LocType        - The type of the BSF\r
-\r
-Returns:\r
-  \r
-  EFI_ABORTED  - The input parameter is error\r
-  EFI_SUCCESS  - The function completed successfully\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-UpdateSymFile (\r
-  IN UINT64 BaseAddress,\r
-  IN CHAR8  *DestFileName,\r
-  IN CHAR8  *SourceFileName\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function adds the SYM tokens in the source file to the destination file.\r
-  The SYM tokens are updated to reflect the base address.\r
-\r
-Arguments:\r
-\r
-  BaseAddress    - The base address for the new SYM tokens.\r
-  DestFileName   - The destination file.\r
-  SourceFileName - The source file.\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS             - The function completed successfully.\r
-  EFI_INVALID_PARAMETER   - One of the input parameters was invalid.\r
-  EFI_ABORTED             - An error occurred.\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-CalculateFitTableChecksum (\r
-  VOID\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function will perform byte checksum on the FIT table, if the the checksum required\r
-  field is set to CheckSum required. If the checksum is not required then checksum byte\r
-  will have value as 0;.\r
-  \r
-Arguments:\r
-\r
-  NONE\r
-  \r
-Returns:\r
-\r
-  Status       - Value returned by call to CalculateChecksum8 ()\r
-  EFI_SUCCESS  - The function completed successfully\r
-    \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-GenerateBsfImage (\r
-  IN  UINT64  StartAddress1,\r
-  IN  UINT64  Size1,\r
-  IN  UINT64  StartAddress2,\r
-  IN  UINT64  Size2\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This is the main function which will be called from application.\r
-\r
-Arguments:\r
-\r
-  StartAddress1  - The start address of the first BSF      \r
-  Size1          - The size of the first BSF\r
-  StartAddress2  - The start address of the second BSF      \r
-  Size2          - The size of the second BSF\r
-\r
-Returns:\r
\r
-  EFI_OUT_OF_RESOURCES - Can not allocate memory\r
-  The return value can be any of the values \r
-  returned by the calls to following functions:\r
-      GetBsfRelatedInfoFromInfFile\r
-      ProcessAndCreateBsf\r
-      UpdateIA32ResetVector\r
-      UpdateFfsHeader\r
-      WriteBsfBinary\r
-  \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-PeimFixupInFitTable (\r
-  IN  UINT64  StartAddress\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function is an entry point to fixup SAL-E entry point.\r
-\r
-Arguments:\r
-\r
-  StartAddress - StartAddress for PEIM.....\r
-    \r
-Returns:\r
\r
-  EFI_SUCCESS   - The function completed successfully\r
-  EFI_ABORTED   - Error Opening File \r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-Generate32BsfImage (\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
-      Get32BsfRelatedInfoFromInfFile\r
-      CreateBsfBuffer\r
-      ProcessAndCreate32Bsf\r
-      Update32FfsHeader\r
-      WriteBsfBinary\r
-  \r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-GetTotal32BsfSize(\r
-  IN  UINT32  *BsfSize \r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  This function calculates total size for IA32 BSF 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 BSF. The addtional file header is accounted.\r
-\r
-Arguments:\r
-\r
-  BSFSize     - Pointer to the size of IA32 BSF \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
-ProcessAndCreate32Bsf (\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 BSF\r
-  \r
-Arguments:\r
-\r
-  Size   - Size of the Firmware Volume of which, this BSF 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_BSF_INFO   *BsfInfo\r
-  )\r
-/*++\r
-  \r
-Routine Description:\r
-\r
-  This function reads the binary file for seccore and update them\r
-  in IA32 BSF Buffer\r
-  \r
-Arguments:\r
-\r
-  BsfInfo    - 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_BSF_INFO   *BsfInfo\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
-  BsfInfo    - 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 BsfSize\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Update the Firmware Volume Buffer with requested buffer data\r
-\r
-Arguments:\r
-\r
-  BsfSize     - Size of the IA32 BSF\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
-Get32BsfRelatedInfoFromInfFile (\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 BSF\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_BSF_INFO   *BsfInfo\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
-  BsfInfo   - A pointer to the BSF 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_BSF_INFO   *BsfInfo\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
-  BsfInfo       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
-#endif\r