mirror of https://github.com/acidanthera/audk.git
121 lines
3.2 KiB
C
121 lines
3.2 KiB
C
|
/** @file
|
||
|
This library will parse the coreboot table in memory and extract those required
|
||
|
information.
|
||
|
|
||
|
Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.<BR>
|
||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||
|
|
||
|
**/
|
||
|
#include <PiPei.h>
|
||
|
#include <Guid/GraphicsInfoHob.h>
|
||
|
#include <Guid/MemoryMapInfoGuid.h>
|
||
|
#include <Guid/SerialPortInfoGuid.h>
|
||
|
#include <Guid/SystemTableInfoGuid.h>
|
||
|
#include <Guid/AcpiBoardInfoGuid.h>
|
||
|
|
||
|
#ifndef __BOOTLOADER_PARSE_LIB__
|
||
|
#define __BOOTLOADER_PARSE_LIB__
|
||
|
|
||
|
#define GET_BOOTLOADER_PARAMETER() (*(UINT32 *)(UINTN)(PcdGet32(PcdPayloadStackTop) - sizeof(UINT32)))
|
||
|
#define SET_BOOTLOADER_PARAMETER(Value) GET_BOOTLOADER_PARAMETER()=Value
|
||
|
|
||
|
typedef RETURN_STATUS \
|
||
|
(*BL_MEM_INFO_CALLBACK) (MEMROY_MAP_ENTRY *MemoryMapEntry, VOID *Param);
|
||
|
|
||
|
/**
|
||
|
This function retrieves the parameter base address from boot loader.
|
||
|
|
||
|
This function will get bootloader specific parameter address for UEFI payload.
|
||
|
e.g. HobList pointer for Slim Bootloader, and coreboot table header for Coreboot.
|
||
|
|
||
|
@retval NULL Failed to find the GUID HOB.
|
||
|
@retval others GUIDed HOB data pointer.
|
||
|
|
||
|
**/
|
||
|
VOID *
|
||
|
EFIAPI
|
||
|
GetParameterBase (
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Acquire the memory map information.
|
||
|
|
||
|
@param MemInfoCallback The callback routine
|
||
|
@param Params Pointer to the callback routine parameter
|
||
|
|
||
|
@retval RETURN_SUCCESS Successfully find out the memory information.
|
||
|
@retval RETURN_NOT_FOUND Failed to find the memory information.
|
||
|
|
||
|
**/
|
||
|
RETURN_STATUS
|
||
|
EFIAPI
|
||
|
ParseMemoryInfo (
|
||
|
IN BL_MEM_INFO_CALLBACK MemInfoCallback,
|
||
|
IN VOID *Params
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Acquire acpi table and smbios table from slim bootloader
|
||
|
|
||
|
@param SystemTableInfo Pointer to the system table info
|
||
|
|
||
|
@retval RETURN_SUCCESS Successfully find out the tables.
|
||
|
@retval RETURN_NOT_FOUND Failed to find the tables.
|
||
|
|
||
|
**/
|
||
|
RETURN_STATUS
|
||
|
EFIAPI
|
||
|
ParseSystemTable (
|
||
|
OUT SYSTEM_TABLE_INFO *SystemTableInfo
|
||
|
);
|
||
|
|
||
|
|
||
|
/**
|
||
|
Find the serial port information
|
||
|
|
||
|
@param SERIAL_PORT_INFO Pointer to serial port info structure
|
||
|
|
||
|
@retval RETURN_SUCCESS Successfully find the serial port information.
|
||
|
@retval RETURN_NOT_FOUND Failed to find the serial port information .
|
||
|
|
||
|
**/
|
||
|
RETURN_STATUS
|
||
|
EFIAPI
|
||
|
ParseSerialInfo (
|
||
|
OUT SERIAL_PORT_INFO *SerialPortInfo
|
||
|
);
|
||
|
|
||
|
|
||
|
/**
|
||
|
Find the video frame buffer information
|
||
|
|
||
|
@param GfxInfo Pointer to the EFI_PEI_GRAPHICS_INFO_HOB structure
|
||
|
|
||
|
@retval RETURN_SUCCESS Successfully find the video frame buffer information.
|
||
|
@retval RETURN_NOT_FOUND Failed to find the video frame buffer information .
|
||
|
|
||
|
**/
|
||
|
RETURN_STATUS
|
||
|
EFIAPI
|
||
|
ParseGfxInfo (
|
||
|
OUT EFI_PEI_GRAPHICS_INFO_HOB *GfxInfo
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Find the video frame buffer device information
|
||
|
|
||
|
@param GfxDeviceInfo Pointer to the EFI_PEI_GRAPHICS_DEVICE_INFO_HOB structure
|
||
|
|
||
|
@retval RETURN_SUCCESS Successfully find the video frame buffer information.
|
||
|
@retval RETURN_NOT_FOUND Failed to find the video frame buffer information .
|
||
|
|
||
|
**/
|
||
|
RETURN_STATUS
|
||
|
EFIAPI
|
||
|
ParseGfxDeviceInfo (
|
||
|
OUT EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *GfxDeviceInfo
|
||
|
);
|
||
|
|
||
|
#endif
|