| /** @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 |