@param pPmTimerReg Pointer to the address of power management timer register\r
@param pResetReg Pointer to the address of system reset register\r
@param pResetValue Pointer to the value to be writen to the system reset register\r
+ @param pPmEvtReg Pointer to the address of power management event register\r
+ @param pPmGpeEnReg Pointer to the address of power management GPE enable register\r
\r
@retval RETURN_SUCCESS Successfully find out all the required fadt information.\r
@retval RETURN_NOT_FOUND Failed to find the fadt table.\r
OUT UINTN *pPmCtrlReg,\r
OUT UINTN *pPmTimerReg,\r
OUT UINTN *pResetReg,\r
- OUT UINTN *pResetValue\r
+ OUT UINTN *pResetValue,\r
+ OUT UINTN *pPmEvtReg,\r
+ OUT UINTN *pPmGpeEnReg\r
)\r
{\r
EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp;\r
}\r
DEBUG ((EFI_D_INFO, "Reset Value 0x%x\n", Fadt->ResetValue));\r
\r
+ if (pPmEvtReg != NULL) { \r
+ *pPmEvtReg = Fadt->Pm1aEvtBlk;\r
+ DEBUG ((EFI_D_INFO, "PmEvt Reg 0x%x\n", Fadt->Pm1aEvtBlk));\r
+ }\r
+\r
+ if (pPmGpeEnReg != NULL) { \r
+ *pPmGpeEnReg = Fadt->Gpe0Blk + Fadt->Gpe0BlkLen / 2;\r
+ DEBUG ((EFI_D_INFO, "PmGpeEn Reg 0x%x\n", *pPmGpeEnReg));\r
+ }\r
+\r
return RETURN_SUCCESS;\r
}\r
}\r
*pResetValue = Fadt->ResetValue;\r
DEBUG ((EFI_D_ERROR, "Reset Value 0x%x\n", Fadt->ResetValue));\r
\r
+ if (pPmEvtReg != NULL) { \r
+ *pPmEvtReg = Fadt->Pm1aEvtBlk;\r
+ DEBUG ((EFI_D_INFO, "PmEvt Reg 0x%x\n", Fadt->Pm1aEvtBlk));\r
+ }\r
+\r
+ if (pPmGpeEnReg != NULL) { \r
+ *pPmGpeEnReg = Fadt->Gpe0Blk + Fadt->Gpe0BlkLen / 2;\r
+ DEBUG ((EFI_D_INFO, "PmGpeEn Reg 0x%x\n", *pPmGpeEnReg));\r
+ } \r
return RETURN_SUCCESS;\r
}\r
}\r