From cb3e201f023e5b8002967f1813d7b15052bcdb81 Mon Sep 17 00:00:00 2001 From: Guo Dong Date: Thu, 25 Jun 2015 16:00:29 +0000 Subject: [PATCH] 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 Reviewed-by: Maurice Ma git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17714 6f19259b-4bc3-4df7-8a09-765794883524 --- CorebootModulePkg/CbSupportPei/CbSupportPei.c | 6 +++++- CorebootModulePkg/Include/Guid/AcpiBoardInfoGuid.h | 4 +++- CorebootModulePkg/Include/Library/CbParseLib.h | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CorebootModulePkg/CbSupportPei/CbSupportPei.c b/CorebootModulePkg/CbSupportPei/CbSupportPei.c index b3705fa4cd..46b08d2f08 100755 --- a/CorebootModulePkg/CbSupportPei/CbSupportPei.c +++ b/CorebootModulePkg/CbSupportPei/CbSupportPei.c @@ -171,6 +171,8 @@ CbPeiEntryPoint ( FRAME_BUFFER_INFO* pFbInfo; ACPI_BOARD_INFO* pAcpiBoardInfo; UINTN PmCtrlRegBase, PmTimerRegBase, ResetRegAddress, ResetValue; + UINTN PmEvtBase; + UINTN PmGpeEnBase; LowMemorySize = 0; HighMemorySize = 0; @@ -355,7 +357,7 @@ CbPeiEntryPoint ( // // 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); pAcpiBoardInfo = NULL; pAcpiBoardInfo = BuildGuidHob (&gUefiAcpiBoardInfoGuid, sizeof (ACPI_BOARD_INFO)); @@ -364,6 +366,8 @@ CbPeiEntryPoint ( pAcpiBoardInfo->PmTimerRegBase = (UINT64)PmTimerRegBase; pAcpiBoardInfo->ResetRegAddress = (UINT64)ResetRegAddress; pAcpiBoardInfo->ResetValue = (UINT8)ResetValue; + pAcpiBoardInfo->PmEvtBase = (UINT64)PmEvtBase; + pAcpiBoardInfo->PmGpeEnBase = (UINT64)PmGpeEnBase; DEBUG ((EFI_D_ERROR, "Create acpi board info guid hob\n")); // diff --git a/CorebootModulePkg/Include/Guid/AcpiBoardInfoGuid.h b/CorebootModulePkg/Include/Guid/AcpiBoardInfoGuid.h index 66ebffef2d..609e989186 100644 --- a/CorebootModulePkg/Include/Guid/AcpiBoardInfoGuid.h +++ b/CorebootModulePkg/Include/Guid/AcpiBoardInfoGuid.h @@ -20,7 +20,9 @@ /// extern EFI_GUID gUefiAcpiBoardInfoGuid; -typedef struct { +typedef struct { + UINT64 PmEvtBase; + UINT64 PmGpeEnBase; UINT64 PmCtrlRegBase; UINT64 PmTimerRegBase; UINT64 ResetRegAddress; diff --git a/CorebootModulePkg/Include/Library/CbParseLib.h b/CorebootModulePkg/Include/Library/CbParseLib.h index 36727d3f58..170375b365 100644 --- a/CorebootModulePkg/Include/Library/CbParseLib.h +++ b/CorebootModulePkg/Include/Library/CbParseLib.h @@ -91,6 +91,8 @@ CbParseSmbiosTable ( @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 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_NOT_FOUND Failed to find the fadt table. @@ -101,7 +103,9 @@ CbParseFadtInfo ( IN UINTN* pPmCtrlReg, IN UINTN* pPmTimerReg, IN UINTN* pResetReg, - IN UINTN* pResetValue + IN UINTN* pResetValue, + IN UINTN* pPmEvtReg, + IN UINTN* pPmGpeEnReg ); /** -- 2.39.2