CorebootModulePkg: Get power management register addresses.

This patch will get power management event register address and power management GPE enable register address.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Maurice Ma <maurice.ma@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17714 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Guo Dong 2015-06-25 16:00:29 +00:00 committed by gdong1
parent 9cd7d3c5ba
commit cb3e201f02
3 changed files with 13 additions and 3 deletions

View File

@ -171,6 +171,8 @@ CbPeiEntryPoint (
FRAME_BUFFER_INFO* pFbInfo; FRAME_BUFFER_INFO* pFbInfo;
ACPI_BOARD_INFO* pAcpiBoardInfo; ACPI_BOARD_INFO* pAcpiBoardInfo;
UINTN PmCtrlRegBase, PmTimerRegBase, ResetRegAddress, ResetValue; UINTN PmCtrlRegBase, PmTimerRegBase, ResetRegAddress, ResetValue;
UINTN PmEvtBase;
UINTN PmGpeEnBase;
LowMemorySize = 0; LowMemorySize = 0;
HighMemorySize = 0; HighMemorySize = 0;
@ -355,7 +357,7 @@ CbPeiEntryPoint (
// //
// Create guid hob for acpi board information // Create guid hob for acpi board information
// //
Status = CbParseFadtInfo (&PmCtrlRegBase, &PmTimerRegBase, &ResetRegAddress, &ResetValue); Status = CbParseFadtInfo (&PmCtrlRegBase, &PmTimerRegBase, &ResetRegAddress, &ResetValue, &PmEvtBase, &PmGpeEnBase);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
pAcpiBoardInfo = NULL; pAcpiBoardInfo = NULL;
pAcpiBoardInfo = BuildGuidHob (&gUefiAcpiBoardInfoGuid, sizeof (ACPI_BOARD_INFO)); pAcpiBoardInfo = BuildGuidHob (&gUefiAcpiBoardInfoGuid, sizeof (ACPI_BOARD_INFO));
@ -364,6 +366,8 @@ CbPeiEntryPoint (
pAcpiBoardInfo->PmTimerRegBase = (UINT64)PmTimerRegBase; pAcpiBoardInfo->PmTimerRegBase = (UINT64)PmTimerRegBase;
pAcpiBoardInfo->ResetRegAddress = (UINT64)ResetRegAddress; pAcpiBoardInfo->ResetRegAddress = (UINT64)ResetRegAddress;
pAcpiBoardInfo->ResetValue = (UINT8)ResetValue; pAcpiBoardInfo->ResetValue = (UINT8)ResetValue;
pAcpiBoardInfo->PmEvtBase = (UINT64)PmEvtBase;
pAcpiBoardInfo->PmGpeEnBase = (UINT64)PmGpeEnBase;
DEBUG ((EFI_D_ERROR, "Create acpi board info guid hob\n")); DEBUG ((EFI_D_ERROR, "Create acpi board info guid hob\n"));
// //

View File

@ -21,6 +21,8 @@
extern EFI_GUID gUefiAcpiBoardInfoGuid; extern EFI_GUID gUefiAcpiBoardInfoGuid;
typedef struct { typedef struct {
UINT64 PmEvtBase;
UINT64 PmGpeEnBase;
UINT64 PmCtrlRegBase; UINT64 PmCtrlRegBase;
UINT64 PmTimerRegBase; UINT64 PmTimerRegBase;
UINT64 ResetRegAddress; UINT64 ResetRegAddress;

View File

@ -91,6 +91,8 @@ CbParseSmbiosTable (
@param pPmTimerReg Pointer to the address of power management timer register @param pPmTimerReg Pointer to the address of power management timer register
@param pResetReg Pointer to the address of system reset register @param pResetReg Pointer to the address of system reset register
@param pResetValue Pointer to the value to be writen to the system reset register @param pResetValue Pointer to the value to be writen 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_SUCCESS Successfully find out all the required fadt information.
@retval RETURN_NOT_FOUND Failed to find the fadt table. @retval RETURN_NOT_FOUND Failed to find the fadt table.
@ -101,7 +103,9 @@ CbParseFadtInfo (
IN UINTN* pPmCtrlReg, IN UINTN* pPmCtrlReg,
IN UINTN* pPmTimerReg, IN UINTN* pPmTimerReg,
IN UINTN* pResetReg, IN UINTN* pResetReg,
IN UINTN* pResetValue IN UINTN* pResetValue,
IN UINTN* pPmEvtReg,
IN UINTN* pPmGpeEnReg
); );
/** /**