| /** @file | |
| FIT Load Image Support | |
| Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef FIT_LIB_H_ | |
| #define FIT_LIB_H_ | |
| #include <PiPei.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/FdtLib.h> | |
| typedef struct { | |
| UINT64 RelocateType; | |
| UINT64 Offset; | |
| } FIT_RELOCATE_ITEM; | |
| typedef struct { | |
| EFI_PHYSICAL_ADDRESS ImageBase; | |
| EFI_PHYSICAL_ADDRESS PayloadBaseAddress; | |
| UINT64 PayloadSize; | |
| UINTN PayloadEntryOffset; | |
| UINTN PayloadEntrySize; | |
| EFI_PHYSICAL_ADDRESS PayloadEntryPoint; | |
| UINTN RelocateTableOffset; | |
| UINTN RelocateTableCount; | |
| EFI_PHYSICAL_ADDRESS PayloadLoadAddress; | |
| } FIT_IMAGE_CONTEXT; | |
| typedef struct { | |
| CHAR8 *Name; | |
| UINT32 Offset; | |
| } PROPERTY_DATA; | |
| #define IMAGE_BASE_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, ImageBase) | |
| #define PAYLOAD_BASE_ADDR_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, PayloadBaseAddress) | |
| #define PAYLOAD_BASE_SIZE_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, PayloadSize) | |
| #define PAYLOAD_ENTRY_OFFSET_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, PayloadEntryOffset) | |
| #define PAYLOAD_ENTRY_SIZE_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, PayloadEntrySize) | |
| #define PAYLOAD_ENTRY_POINT_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, PayloadEntryPoint) | |
| #define RELOCATE_TABLE_OFFSET_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, RelocateTableOffset) | |
| #define RELOCATE_TABLE_COUNT_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, RelocateTableCount) | |
| #define PAYLOAD_LOAD_ADDR_OFFSET OFFSET_OF (FIT_IMAGE_CONTEXT, PayloadLoadAddress) | |
| /** | |
| Parse the FIT image info. | |
| @param[in] ImageBase Memory address of an image. | |
| @param[out] Context The FIT image context pointer. | |
| @retval EFI_UNSUPPORTED Unsupported binary type. | |
| @retval EFI_SUCCESS FIT binary is loaded successfully. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ParseFitImage ( | |
| IN VOID *ImageBase, | |
| OUT FIT_IMAGE_CONTEXT *Context | |
| ); | |
| #endif |