138 ASSERT (CfgMgrProtocol !=
NULL);
139 ASSERT (Fadt !=
NULL);
142 Status = GetEX64ObjFadtSciInterrupt (
148 if (EFI_ERROR (Status)) {
151 "ERROR: FADT: Failed to get SCI Interrupt information." \
160 Status = GetEX64ObjFadtSciCmdInfo (
166 if (EFI_ERROR (Status)) {
169 "ERROR: FADT: Failed to get SCI CMD information." \
174 Fadt->SmiCmd = SciCmdinfo->
SciCmd;
175 Fadt->AcpiEnable = SciCmdinfo->AcpiEnable;
176 Fadt->AcpiDisable = SciCmdinfo->AcpiDisable;
177 Fadt->S4BiosReq = SciCmdinfo->S4BiosReq;
178 Fadt->PstateCnt = SciCmdinfo->PstateCnt;
179 Fadt->CstCnt = SciCmdinfo->CstCnt;
183 Status = GetEX64ObjFadtPmBlockInfo (
189 if (EFI_ERROR (Status)) {
192 "ERROR: FADT: Failed to get PM Block information." \
198 Fadt->Pm1bEvtBlk = PmBlockInfo->Pm1bEvtBlk;
199 Fadt->Pm1aCntBlk = PmBlockInfo->Pm1aCntBlk;
200 Fadt->Pm1bCntBlk = PmBlockInfo->Pm1bCntBlk;
201 Fadt->Pm2CntBlk = PmBlockInfo->Pm2CntBlk;
202 Fadt->PmTmrBlk = PmBlockInfo->PmTmrBlk;
203 Fadt->Pm1EvtLen = PmBlockInfo->Pm1EvtLen;
204 Fadt->Pm1CntLen = PmBlockInfo->Pm1CntLen;
205 Fadt->Pm2CntLen = PmBlockInfo->Pm2CntLen;
206 Fadt->PmTmrLen = PmBlockInfo->PmTmrLen;
210 Status = GetEX64ObjFadtGpeBlockInfo (
216 if (EFI_ERROR (Status)) {
219 "ERROR: FADT: Failed to get PM Block information." \
224 Fadt->Gpe0Blk = GpeBlockInfo->
Gpe0Blk;
225 Fadt->Gpe1Blk = GpeBlockInfo->Gpe1Blk;
226 Fadt->Gpe0BlkLen = GpeBlockInfo->Gpe0BlkLen;
227 Fadt->Gpe1BlkLen = GpeBlockInfo->Gpe1BlkLen;
228 Fadt->Gpe1Base = GpeBlockInfo->Gpe1Base;
232 Status = GetEX64ObjFadtXpmBlockInfo (
238 if (EFI_ERROR (Status)) {
241 "ERROR: FADT: Failed to get 64-bit PM Block information." \
253 &XpmBlockInfo->XPm1bEvtBlk,
258 &XpmBlockInfo->XPm1aCntBlk,
263 &XpmBlockInfo->XPm1bCntBlk,
268 &XpmBlockInfo->XPm2CntBlk,
273 &XpmBlockInfo->XPmTmrBlk,
279 Status = GetEX64ObjFadtMiscInfo (
285 if (EFI_ERROR (Status)) {
288 "ERROR: FADT: Failed to get various platform information." \
293 Fadt->PLvl2Lat = FadtMiscInfo->PLvl2Lat;
294 Fadt->PLvl3Lat = FadtMiscInfo->PLvl3Lat;
295 Fadt->FlushSize = FadtMiscInfo->FlushSize;
296 Fadt->FlushStride = FadtMiscInfo->FlushStride;
297 Fadt->DutyOffset = FadtMiscInfo->DutyOffset;
298 Fadt->DutyWidth = FadtMiscInfo->DutyWidth;
299 Fadt->DayAlrm = FadtMiscInfo->DayAlrm;
300 Fadt->MonAlrm = FadtMiscInfo->MonAlrm;
301 Fadt->Century = FadtMiscInfo->Century;
305 Status = GetEX64ObjFadtXgpeBlockInfo (
311 if (EFI_ERROR (Status)) {
314 "ERROR: FADT: Failed to get 64-bit GPE Block information." \
326 &XgpeBlockInfo->XGpe1Blk,
332 Status = GetEX64ObjFadtSleepBlockInfo (
338 if (EFI_ERROR (Status)) {
341 "ERROR: FADT: Failed to get Sleep Block information." \
347 &Fadt->SleepControlReg,
348 &SleepBlockInfo->SleepControlReg,
352 &Fadt->SleepStatusReg,
353 &SleepBlockInfo->SleepStatusReg,
359 Status = GetEX64ObjFadtResetBlockInfo (
365 if (EFI_ERROR (Status)) {
368 "ERROR: FADT: Failed to get Reset Block information." \
375 &ResetBlockInfo->ResetReg,
378 Fadt->ResetValue = ResetBlockInfo->ResetValue;
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
#define GET_OBJECT_LIST(CmObjectNameSpace, CmObjectId, Type)
@ EObjNameSpaceX64
X64 Objects Namespace.
#define DEBUG(Expression)
EFI_STATUS EFIAPI FadtArchUpdate(IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE *Fadt)
@ EX64ObjFadtPmBlockInfo
3 - FADT Power management block info
@ EX64ObjFadtXpmBlockInfo
5 - FADT 64-bit Power Management block info
@ EX64ObjFadtResetBlockInfo
8 - FADT Reset block info
@ EX64ObjFadtSleepBlockInfo
7 - FADT Sleep block info
@ EX64ObjFadtSciInterrupt
1 - FADT SCI Interrupt information
@ EX64ObjFadtSciCmdInfo
2 - FADT SCI CMD information
@ EX64ObjFadtGpeBlockInfo
4 - FADT GPE block info
@ EX64ObjFadtMiscInfo
9 - FADT Legacy fields info
@ EX64ObjFadtXgpeBlockInfo
6 - FADT 64-bit GPE block info
EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE XGpe0Blk
EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk