mirror of https://github.com/acidanthera/audk.git
152 lines
3.8 KiB
C
152 lines
3.8 KiB
C
/** @file
|
|
This library will parse the coreboot table in memory and extract those required
|
|
information.
|
|
|
|
Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef BOOTLOADER_PARSE_LIB_
|
|
#define BOOTLOADER_PARSE_LIB_
|
|
|
|
#include <PiPei.h>
|
|
#include <Guid/GraphicsInfoHob.h>
|
|
#include <Guid/MemoryMapInfoGuid.h>
|
|
#include <Guid/SerialPortInfoGuid.h>
|
|
#include <Guid/AcpiBoardInfoGuid.h>
|
|
#include <UniversalPayload/AcpiTable.h>
|
|
#include <UniversalPayload/SmbiosTable.h>
|
|
|
|
#define GET_BOOTLOADER_PARAMETER() PcdGet64 (PcdBootloaderParameter)
|
|
|
|
typedef RETURN_STATUS \
|
|
(*BL_MEM_INFO_CALLBACK) (
|
|
MEMORY_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 SMBIOS table from bootloader.
|
|
|
|
@param SmbiosTable 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
|
|
ParseSmbiosTable (
|
|
OUT UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmbiosTable
|
|
);
|
|
|
|
/**
|
|
Acquire ACPI table from bootloader.
|
|
|
|
@param AcpiTableHob Pointer to the ACPI table info.
|
|
|
|
@retval RETURN_SUCCESS Successfully find out the tables.
|
|
@retval RETURN_NOT_FOUND Failed to find the tables.
|
|
|
|
**/
|
|
RETURN_STATUS
|
|
EFIAPI
|
|
ParseAcpiTableInfo (
|
|
OUT UNIVERSAL_PAYLOAD_ACPI_TABLE *AcpiTableHob
|
|
);
|
|
|
|
/**
|
|
Find the serial port information
|
|
|
|
@param SerialPortInfo 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
|
|
);
|
|
|
|
/**
|
|
Parse and handle the misc info provided by bootloader
|
|
|
|
@retval RETURN_SUCCESS The misc information was parsed successfully.
|
|
@retval RETURN_NOT_FOUND Could not find required misc info.
|
|
@retval RETURN_OUT_OF_RESOURCES Insufficant memory space.
|
|
|
|
**/
|
|
RETURN_STATUS
|
|
EFIAPI
|
|
ParseMiscInfo (
|
|
VOID
|
|
);
|
|
|
|
#endif
|