summaryrefslogtreecommitdiff
path: root/Tools/CCode/Source/GenBsfImage/GenBsfImage.h
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/CCode/Source/GenBsfImage/GenBsfImage.h')
-rw-r--r--Tools/CCode/Source/GenBsfImage/GenBsfImage.h632
1 files changed, 0 insertions, 632 deletions
diff --git a/Tools/CCode/Source/GenBsfImage/GenBsfImage.h b/Tools/CCode/Source/GenBsfImage/GenBsfImage.h
deleted file mode 100644
index 65183d19e3..0000000000
--- a/Tools/CCode/Source/GenBsfImage/GenBsfImage.h
+++ /dev/null
@@ -1,632 +0,0 @@
-/*++
-
-Copyright (c) 1999 - 2007 Intel Corporation. All rights reserved
-This software and associated documentation (if any) is furnished
-under a license and may only be used or copied in accordance
-with the terms of the license. Except as permitted by such
-license, no part of this software or documentation may be
-reproduced, stored in a retrieval system, or transmitted in any
-form or by any means without the express written consent of
-Intel Corporation.
-
-
-Module Name:
-
- GenBsfImage.h
-
-Abstract:
-
- This file contains the relevant declarations required
- to generate Boot Strap File
-
---*/
-
-//
-// Module Coded to EFI 2.0 Coding Conventions
-//
-#ifndef _EFI_GEN_BSF_IMAGE_H
-#define _EFI_GEN_BSF_IMAGE_H
-
-//
-// External Files Referenced
-//
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "assert.h"
-// #include "TianoCommon.h"
-#include "Common/FirmwareFileSystem.h"
-#include "Common/FirmwareVolumeHeader.h"
-#include "ParseInf.h"
-
-//
-// Internal Constants
-//
-#define EFI_IPF_VTF1_GUID \
- { \
- 0xfa371c9b, 0x5a86, 0x4198, 0xab, 0xc2, 0xed, 0x3f, 0xaa, 0xce, 0xb0, 0x8b \
- };
-
-#define EFI_IPF_VTF2_GUID \
- { \
- 0x624a0d5a, 0x315f, 0x40b6, 0xa6, 0x33, 0xe5, 0xf7, 0xde, 0x58, 0x20, 0xa0 \
- };
-
-#define EFI_IA32_BOOT_STRAP_GUID \
- { \
- 0xd4260a8d, 0x356, 0x4f45, 0x85, 0xe9, 0xad, 0x1d, 0x79, 0x22, 0x79, 0xf0 \
- };
-
-#define CV_N_TYPE(a,b) (UINT8)(((UINT8)a << 7) + (UINT8)b) // Keeps the CV and Type in same byte field
-#define MAKE_VERSION(a,b) (UINT16)(((UINT16)a << 8) + (UINT16)b)
-
-#define FILE_NAME_SIZE 256
-#define COMPONENT_NAME_SIZE 128
-#define BSF_INPUT_FILE "BSF.INF"
-#define BSF_OUTPUT_FILE "Bsf.RAW"
-#define BSF_SYM_FILE "Bsf.SYM"
-#define FIT_SIGNATURE "_FIT_ "
-
-//
-// This is IA32 seccore
-//
-#define COMP_TYPE_SECCORE 0x0F
-
-//
-//Fit Type Definition
-//
-#define COMP_TYPE_FIT_HEADER 0x00
-#define COMP_TYPE_FIT_PAL_B 0x01
-
-//
-// This is generic PAL_A
-//
-#define COMP_TYPE_FIT_PAL_A 0x0F
-#define COMP_TYPE_FIT_PEICORE 0x10
-#define COMP_TYPE_FIT_AUTOSCAN 0x30
-#define COMP_TYPE_FIT_FV_BOOT 0x7E
-
-//
-//This is processor Specific PAL_A
-//
-#define COMP_TYPE_FIT_PAL_A_SPECIFIC 0x0E
-#define COMP_TYPE_FIT_UNUSED 0x7F
-
-#define FIT_TYPE_MASK 0x7F
-#define CHECKSUM_BIT_MASK 0x80
-
-//
-// IPF processor address is cached bit
-//
-#define IPF_CACHE_BIT 0x8000000000000000ULL
-
-//
-// Size definition to calculate the location from top of address for
-// each component
-//
-#define SIZE_IA32_RESET_VECT 0x10 // 16 Bytes
-#define SIZE_SALE_ENTRY_POINT 0x08 // 8 Byte
-#define SIZE_FIT_TABLE_ADD 0x08 // 8 Byte
-#define SIZE_FIT_TABLE_PAL_A 0x10
-#define SIZE_RESERVED 0x10
-
-
-#define SIZE_TO_OFFSET_PAL_A_END (SIZE_IA32_RESET_VECT + SIZE_SALE_ENTRY_POINT + \
- SIZE_FIT_TABLE_ADD + SIZE_FIT_TABLE_PAL_A + \
- SIZE_RESERVED)
-#define SIZE_TO_PAL_A_FIT (SIZE_IA32_RESET_VECT + SIZE_SALE_ENTRY_POINT + \
- SIZE_FIT_TABLE_ADD + SIZE_FIT_TABLE_PAL_A)
-
-#define SIZE_OF_PAL_HEADER 0x40 //PAL has 64 byte header
-
-//
-// Utility Name
-//
-#define UTILITY_NAME "GenBsfImage"
-
-//
-// Utility version information
-//
-#define UTILITY_MAJOR_VERSION 0
-#define UTILITY_MINOR_VERSION 1
-#define UTILITY_DATE __DATE__
-
-//
-// The maximum number of arguments accepted from the command line.
-//
-#define ONE_BSF_ARGS 5
-#define TWO_BSF_ARGS 9
-
-//
-// The number of IA32 bsf arguments accepted from the command line.
-//
-#define IA32_ARGS 3
-
-#define IA32_SOFT_FIT "IA32BsfAddress.inf"
-
-//
-// Internal Data Structure
-//
-typedef enum _LOC_TYPE
-{
- NONE, // In case there is - INF file
- FIRST_VTF, // First VTF
- SECOND_VTF, // Outside BSF
-} LOC_TYPE;
-
-typedef struct _PARSED_BSF_INFO {
- CHAR8 CompName[COMPONENT_NAME_SIZE];
- LOC_TYPE LocationType;
- UINT8 CompType;
- UINT8 MajorVer;
- UINT8 MinorVer;
- UINT8 CheckSumRequired;
- BOOLEAN VersionPresent; // If it is TRUE, then, Version is in INF file
- BOOLEAN PreferredSize;
- BOOLEAN PreferredAddress;
- CHAR8 CompBinName[FILE_NAME_SIZE];
- CHAR8 CompSymName[FILE_NAME_SIZE];
- UINTN CompSize;
- UINT64 CompPreferredAddress;
- UINT32 Align;
-
- //
- // Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'
- // Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'
- // Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'
- // Fixed - warning C4133: '=' : incompatible types - from 'struct _ParsedBsfInfo *' to 'struct _PARSED_BSF_INFO *'
- //
- struct _PARSED_BSF_INFO *NextBsfInfo;
-} PARSED_BSF_INFO;
-
-#pragma pack (1)
-typedef struct {
- UINT64 CompAddress;
- UINT32 CompSize;
- UINT16 CompVersion;
- UINT8 CvAndType;
- UINT8 CheckSum;
-} FIT_TABLE;
-#pragma pack ()
-
-//
-// The function that displays general utility information
-//
-VOID
-PrintUtilityInfo (
- VOID
- )
-/*++
-
-Routine Description:
-
- Displays the standard utility information to SDTOUT
-
-Arguments:
-
- None
-
-Returns:
-
- None
-
---*/
-;
-
-//
-// The function that displays the utility usage message.
-//
-VOID
-PrintUsage (
- VOID
- )
-/*++
-
-Routine Description:
-
- Displays the utility usage syntax to STDOUT
-
-Arguments:
-
- None
-
-Returns:
-
- None
-
---*/
-;
-
-//
-// Other Function Prototype Declarations
-//
-
-EFI_STATUS
-UpdateBsfBuffer(
- IN UINT64 StartAddress,
- IN UINT8 *Buffer,
- IN UINT64 DataSize,
- IN LOC_TYPE LocType
- )
-/*++
-
-Routine Description:
-
- Update the Firmware Volume Buffer with requested buffer data
-
-Arguments:
-
- StartAddress - StartAddress in buffer. This number will automatically
- point to right address in buffer where data needed
- to be updated.
- Buffer - Buffer pointer from data will be copied to memory mapped buffer.
- DataSize - Size of the data needed to be copied.
- LocType - The type of the BSF
-
-Returns:
-
- EFI_ABORTED - The input parameter is error
- EFI_SUCCESS - The function completed successfully
-
---*/
-;
-
-EFI_STATUS
-UpdateSymFile (
- IN UINT64 BaseAddress,
- IN CHAR8 *DestFileName,
- IN CHAR8 *SourceFileName
- )
-/*++
-
-Routine Description:
-
- This function adds the SYM tokens in the source file to the destination file.
- The SYM tokens are updated to reflect the base address.
-
-Arguments:
-
- BaseAddress - The base address for the new SYM tokens.
- DestFileName - The destination file.
- SourceFileName - The source file.
-
-Returns:
-
- EFI_SUCCESS - The function completed successfully.
- EFI_INVALID_PARAMETER - One of the input parameters was invalid.
- EFI_ABORTED - An error occurred.
-
---*/
-;
-
-EFI_STATUS
-CalculateFitTableChecksum (
- VOID
- )
-/*++
-
-Routine Description:
-
- This function will perform byte checksum on the FIT table, if the the checksum required
- field is set to CheckSum required. If the checksum is not required then checksum byte
- will have value as 0;.
-
-Arguments:
-
- NONE
-
-Returns:
-
- Status - Value returned by call to CalculateChecksum8 ()
- EFI_SUCCESS - The function completed successfully
-
---*/
-;
-
-EFI_STATUS
-GenerateBsfImage (
- IN UINT64 StartAddress1,
- IN UINT64 Size1,
- IN UINT64 StartAddress2,
- IN UINT64 Size2
- )
-/*++
-
-Routine Description:
-
- This is the main function which will be called from application.
-
-Arguments:
-
- StartAddress1 - The start address of the first BSF
- Size1 - The size of the first BSF
- StartAddress2 - The start address of the second BSF
- Size2 - The size of the second BSF
-
-Returns:
-
- EFI_OUT_OF_RESOURCES - Can not allocate memory
- The return value can be any of the values
- returned by the calls to following functions:
- GetBsfRelatedInfoFromInfFile
- ProcessAndCreateBsf
- UpdateIA32ResetVector
- UpdateFfsHeader
- WriteBsfBinary
-
---*/
-;
-
-EFI_STATUS
-PeimFixupInFitTable (
- IN UINT64 StartAddress
- )
-/*++
-
-Routine Description:
-
- This function is an entry point to fixup SAL-E entry point.
-
-Arguments:
-
- StartAddress - StartAddress for PEIM.....
-
-Returns:
-
- EFI_SUCCESS - The function completed successfully
- EFI_ABORTED - Error Opening File
-
---*/
-;
-
-EFI_STATUS
-Generate32BsfImage (
-IN UINT64 BootFileStartAddress
- )
-/*++
-
-Routine Description:
-
- This is the main IA32 function which will be called from application.
- (Now this tool is not used for IA32 platform, if it will be used in future,
- the relative functions need to be updated, the updating can refer to IPF
- functions)
-
-Arguments:
-
- BootFileStartAddress - Top Address of Boot File
-
-Returns:
-
- The return value can be any of the values
- returned by the calls to following functions:
- Get32BsfRelatedInfoFromInfFile
- CreateBsfBuffer
- ProcessAndCreate32Bsf
- Update32FfsHeader
- WriteBsfBinary
-
---*/
-;
-
-EFI_STATUS
-GetTotal32BsfSize(
- IN UINT32 *BsfSize
- )
-/*++
-
-Routine Description:
-
- This function calculates total size for IA32 BSF which would be needed to create
- the buffer. This will be done using Passed Info link list and looking for the
- size of the components which belong to BSF. The addtional file header is accounted.
-
-Arguments:
-
- BSFSize - Pointer to the size of IA32 BSF
-
-Returns:
-
- EFI_ABORTED - Returned due to one of the following resons:
- (a) Error Opening File
- EFI_SUCCESS - The fuction completes successfully
-
---*/
-;
-
-EFI_STATUS
-ProcessAndCreate32Bsf (
- IN UINT64 Size
- )
-/*++
-
-Routine Description:
-
- This function process the link list created during INF file parsing
- and create component in IA32 BSF
-
-Arguments:
-
- Size - Size of the Firmware Volume of which, this BSF belongs to.
-
-Returns:
-
- EFI_UNSUPPORTED - Unknown component type
- EFI_SUCCESS - The function completed successfully
-
---*/
-;
-
-EFI_STATUS
-CreateAndUpdateSeccore (
- IN PARSED_BSF_INFO *BsfInfo
- )
-/*++
-
-Routine Description:
-
- This function reads the binary file for seccore and update them
- in IA32 BSF Buffer
-
-Arguments:
-
- BsfInfo - Pointer to Parsed Info
-
-Returns:
-
- EFI_ABORTED - Due to one of the following reasons:
- (a)Error Opening File
- (b)The PAL_A Size is more than specified size status
- One of the values mentioned below returned from
- call to UpdateSymFile
- EFI_SUCCESS - The function completed successfully.
- EFI_INVALID_PARAMETER - One of the input parameters was invalid.
- EFI_ABORTED - An error occurred.UpdateSymFile
-
---*/
-;
-
-EFI_STATUS
-CreateAndUpdate32Component (
- IN PARSED_BSF_INFO *BsfInfo
- )
-/*++
-
-Routine Description:
-
- This function reads the binary file for each components. Add it at aligned address.
-
-Arguments:
-
- BsfInfo - Pointer to Parsed Info
-
-Returns:
-
- EFI_SUCCESS - The function completed successful
- EFI_ABORTED - Aborted due to one of the many reasons like:
- (a) Component Size greater than the specified size.
- (b) Error opening files.
- EFI_INVALID_PARAMETER - Value returned from call to UpdateEntryPoint()
-
---*/
-;
-
-EFI_STATUS
-Update32FfsHeader(
- IN UINT32 BsfSize
- )
-/*++
-
-Routine Description:
-
- Update the Firmware Volume Buffer with requested buffer data
-
-Arguments:
-
- BsfSize - Size of the IA32 BSF
-
-Returns:
-
- EFI_SUCCESS - The function completed successfully
- EFI_INVALID_PARAMETER - The Ffs File Header Pointer is NULL
-
---*/
-;
-
-EFI_STATUS
-Get32BsfRelatedInfoFromInfFile (
- IN CHAR8 *FileName
- )
-/*++
-
-Routine Description:
-
- This function reads the input file, parse it and create a list of tokens
- which is parsed and used, to intialize the data related to IA32 BSF
-
-Arguments:
-
- FileName FileName which needed to be read to parse data
-
-Returns:
-
- EFI_ABORTED Error in opening file
- EFI_INVALID_PARAMETER File doesn't contain any valid informations
- EFI_OUT_OF_RESOURCES Malloc Failed
- EFI_SUCCESS The function completed successfully
-
---*/
-;
-
-VOID
-Initialize32InFileInfo (
- VOID
- )
-/*++
-
-Routine Description:
-
- This function intializes the relevant global variable which is being
- used to store the information retrieved from IA32 INF file.
-
-Arguments:
-
- NONE
-
-Returns:
-
- NONE
-
---*/
-;
-
-VOID
-ParseAndUpdate32Components (
- IN PARSED_BSF_INFO *BsfInfo
- )
-/*++
-
-Routine Description:
-
- This function intializes the relevant global variable which is being
- used to store the information retrieved from INF file.
-
-Arguments:
-
- BsfInfo - A pointer to the BSF Info Structure
-
-
-Returns:
-
- None
-
---*/
-;
-
-EFI_STATUS
-Write32SoftFit(
- IN CHAR8 *FileName,
- IN PARSED_BSF_INFO *BsfInfo
- )
-/*++
-
-Routine Description:
-
- Write IA32 Firmware Volume component address from memory to a file.
-
-Arguments:
-
- FileName Output File Name which needed to be created/
- BsfInfo Parsed info link
-
-Returns:
-
- EFI_ABORTED - Returned due to one of the following resons:
- (a) Error Opening File
- (b) Failing to copy buffers
- EFI_SUCCESS - The fuction completes successfully
-
---*/
-;
-
-#endif