123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- /** @file
- This library will parse the coreboot table in memory and extract those required
- information.
- Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <Guid/FrameBufferInfoGuid.h>
- typedef RETURN_STATUS \
- (*CB_MEM_INFO_CALLBACK) (UINT64 Base, UINT64 Size, UINT32 Type, VOID *Param);
- /**
- Find coreboot record with given Tag from the memory Start in 4096
- bytes range.
- @param Start The start memory to be searched in
- @param Tag The tag id to be found
- @retval NULL The Tag is not found.
- @retval Others The pointer to the record found.
- **/
- VOID *
- EFIAPI
- FindCbTag (
- IN VOID *Start,
- IN UINT32 Tag
- );
- /**
- Acquire the memory information from the coreboot table in memory.
- @param MemInfoCallback The callback routine
- @param pParam 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
- CbParseMemoryInfo (
- IN CB_MEM_INFO_CALLBACK MemInfoCallback,
- IN VOID *pParam
- );
- /**
- Acquire the coreboot memory table with the given table id
- @param TableId Table id to be searched
- @param pMemTable Pointer to the base address of the memory table
- @param pMemTableSize Pointer to the size of the memory table
- @retval RETURN_SUCCESS Successfully find out the memory table.
- @retval RETURN_INVALID_PARAMETER Invalid input parameters.
- @retval RETURN_NOT_FOUND Failed to find the memory table.
- **/
- RETURN_STATUS
- EFIAPI
- CbParseCbMemTable (
- IN UINT32 TableId,
- IN VOID** pMemTable,
- IN UINT32* pMemTableSize
- );
- /**
- Acquire the acpi table from coreboot
- @param pMemTable Pointer to the base address of the memory table
- @param pMemTableSize Pointer to the size of the memory table
- @retval RETURN_SUCCESS Successfully find out the memory table.
- @retval RETURN_INVALID_PARAMETER Invalid input parameters.
- @retval RETURN_NOT_FOUND Failed to find the memory table.
- **/
- RETURN_STATUS
- EFIAPI
- CbParseAcpiTable (
- IN VOID** pMemTable,
- IN UINT32* pMemTableSize
- );
- /**
- Acquire the smbios table from coreboot
- @param pMemTable Pointer to the base address of the memory table
- @param pMemTableSize Pointer to the size of the memory table
- @retval RETURN_SUCCESS Successfully find out the memory table.
- @retval RETURN_INVALID_PARAMETER Invalid input parameters.
- @retval RETURN_NOT_FOUND Failed to find the memory table.
- **/
- RETURN_STATUS
- EFIAPI
- CbParseSmbiosTable (
- IN VOID** pMemTable,
- IN UINT32* pMemTableSize
- );
- /**
- Find the required fadt information
- @param pPmCtrlReg Pointer to the address of power management control register
- @param pPmTimerReg Pointer to the address of power management timer register
- @param pResetReg Pointer to the address of system reset register
- @param pResetValue Pointer to the value to be written to the system reset register
- @param pPmEvtReg Pointer to the address of power management event register
- @param pPmGpeEnReg Pointer to the address of power management GPE enable register
- @retval RETURN_SUCCESS Successfully find out all the required fadt information.
- @retval RETURN_NOT_FOUND Failed to find the fadt table.
- **/
- RETURN_STATUS
- EFIAPI
- CbParseFadtInfo (
- IN UINTN* pPmCtrlReg,
- IN UINTN* pPmTimerReg,
- IN UINTN* pResetReg,
- IN UINTN* pResetValue,
- IN UINTN* pPmEvtReg,
- IN UINTN* pPmGpeEnReg
- );
- /**
- Find the serial port information
- @param pRegBase Pointer to the base address of serial port registers
- @param pRegAccessType Pointer to the access type of serial port registers
- @param pRegWidth Pointer to the register width in bytes
- @param pBaudrate Pointer to the serial port baudrate
- @param pInputHertz Pointer to the input clock frequency
- @param pUartPciAddr Pointer to the UART PCI bus, dev and func address
- @retval RETURN_SUCCESS Successfully find the serial port information.
- @retval RETURN_NOT_FOUND Failed to find the serial port information .
- **/
- RETURN_STATUS
- EFIAPI
- CbParseSerialInfo (
- OUT UINT32 *pRegBase,
- OUT UINT32 *pRegAccessType,
- OUT UINT32 *pRegWidth,
- OUT UINT32 *pBaudrate,
- OUT UINT32 *pInputHertz,
- OUT UINT32 *pUartPciAddr
- );
- /**
- Search for the coreboot table header
- @param Level Level of the search depth
- @param HeaderPtr Pointer to the pointer of coreboot table header
- @retval RETURN_SUCCESS Successfully find the coreboot table header .
- @retval RETURN_NOT_FOUND Failed to find the coreboot table header .
- **/
- RETURN_STATUS
- EFIAPI
- CbParseGetCbHeader (
- IN UINTN Level,
- IN VOID** HeaderPtr
- );
- /**
- Find the video frame buffer information
- @param pFbInfo Pointer to the FRAME_BUFFER_INFO 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
- CbParseFbInfo (
- IN FRAME_BUFFER_INFO* pFbInfo
- );
|