mirror of https://github.com/acidanthera/audk.git
61 lines
2.0 KiB
C
61 lines
2.0 KiB
C
|
/** @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
|