1 /** @file 2 This library will parse the coreboot table in memory and extract those required 3 information. 4 5 Copyright (c) 2014, Intel Corporation. All rights reserved.<BR> 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 #include <Guid/FrameBufferInfoGuid.h> 16 17 /** 18 Acquire the memory information from the coreboot table in memory. 19 20 @param pLowMemorySize Pointer to the variable of low memory size 21 @param pHighMemorySize Pointer to the variable of high memory size 22 23 @retval RETURN_SUCCESS Successfully find out the memory information. 24 @retval RETURN_INVALID_PARAMETER Invalid input parameters. 25 @retval RETURN_NOT_FOUND Failed to find the memory information. 26 27 **/ 28 RETURN_STATUS 29 CbParseMemoryInfo ( 30 IN UINT64* pLowMemorySize, 31 IN UINT64* pHighMemorySize 32 ); 33 34 /** 35 Acquire the coreboot memory table with the given table id 36 37 @param TableId Table id to be searched 38 @param pMemTable Pointer to the base address of the memory table 39 @param pMemTableSize Pointer to the size of the memory table 40 41 @retval RETURN_SUCCESS Successfully find out the memory table. 42 @retval RETURN_INVALID_PARAMETER Invalid input parameters. 43 @retval RETURN_NOT_FOUND Failed to find the memory table. 44 45 **/ 46 RETURN_STATUS 47 CbParseCbMemTable ( 48 IN UINT32 TableId, 49 IN VOID** pMemTable, 50 IN UINT32* pMemTableSize 51 ); 52 53 /** 54 Acquire the acpi table from coreboot 55 56 @param pMemTable Pointer to the base address of the memory table 57 @param pMemTableSize Pointer to the size of the memory table 58 59 @retval RETURN_SUCCESS Successfully find out the memory table. 60 @retval RETURN_INVALID_PARAMETER Invalid input parameters. 61 @retval RETURN_NOT_FOUND Failed to find the memory table. 62 63 **/ 64 RETURN_STATUS 65 CbParseAcpiTable ( 66 IN VOID** pMemTable, 67 IN UINT32* pMemTableSize 68 ); 69 70 /** 71 Acquire the smbios table from coreboot 72 73 @param pMemTable Pointer to the base address of the memory table 74 @param pMemTableSize Pointer to the size of the memory table 75 76 @retval RETURN_SUCCESS Successfully find out the memory table. 77 @retval RETURN_INVALID_PARAMETER Invalid input parameters. 78 @retval RETURN_NOT_FOUND Failed to find the memory table. 79 80 **/ 81 RETURN_STATUS 82 CbParseSmbiosTable ( 83 IN VOID** pMemTable, 84 IN UINT32* pMemTableSize 85 ); 86 87 /** 88 Find the required fadt information 89 90 @param pPmCtrlReg Pointer to the address of power management control register 91 @param pPmTimerReg Pointer to the address of power management timer register 92 @param pResetReg Pointer to the address of system reset register 93 @param pResetValue Pointer to the value to be writen to the system reset register 94 @param pPmEvtReg Pointer to the address of power management event register 95 @param pPmGpeEnReg Pointer to the address of power management GPE enable register 96 97 @retval RETURN_SUCCESS Successfully find out all the required fadt information. 98 @retval RETURN_NOT_FOUND Failed to find the fadt table. 99 100 **/ 101 RETURN_STATUS 102 CbParseFadtInfo ( 103 IN UINTN* pPmCtrlReg, 104 IN UINTN* pPmTimerReg, 105 IN UINTN* pResetReg, 106 IN UINTN* pResetValue, 107 IN UINTN* pPmEvtReg, 108 IN UINTN* pPmGpeEnReg 109 ); 110 111 /** 112 Find the serial port information 113 114 @param pRegBase Pointer to the base address of serial port registers 115 @param pRegAccessType Pointer to the access type of serial port registers 116 @param pBaudrate Pointer to the serial port baudrate 117 118 @retval RETURN_SUCCESS Successfully find the serial port information. 119 @retval RETURN_NOT_FOUND Failed to find the serial port information . 120 121 **/ 122 RETURN_STATUS 123 CbParseSerialInfo ( 124 IN UINT32* pRegBase, 125 IN UINT32* pRegAccessType, 126 IN UINT32* pBaudrate 127 ); 128 129 /** 130 Search for the coreboot table header 131 132 @param Level Level of the search depth 133 @param HeaderPtr Pointer to the pointer of coreboot table header 134 135 @retval RETURN_SUCCESS Successfully find the coreboot table header . 136 @retval RETURN_NOT_FOUND Failed to find the coreboot table header . 137 138 **/ 139 RETURN_STATUS 140 CbParseGetCbHeader ( 141 IN UINTN Level, 142 IN VOID** HeaderPtr 143 ); 144 145 /** 146 Find the video frame buffer information 147 148 @param pFbInfo Pointer to the FRAME_BUFFER_INFO structure 149 150 @retval RETURN_SUCCESS Successfully find the video frame buffer information. 151 @retval RETURN_NOT_FOUND Failed to find the video frame buffer information . 152 153 **/ 154 RETURN_STATUS 155 CbParseFbInfo ( 156 IN FRAME_BUFFER_INFO* pFbInfo 157 ); 158 159