Laszlo, I do not believe any X64 PEI testing has not been performed with this module. We will investigate a fix.
Thanks, Mike >-----Original Message----- >From: Laszlo Ersek [mailto:[email protected]] >Sent: Wednesday, October 28, 2015 8:57 AM >To: Fan, Jeff; Yao, Jiewen >Cc: edk2-devel-01; Kinney, Michael D >Subject: about the SMM_S3_RESUME_SMM_64 branch in S3Resume2Pei > >Hi, > >I have a question about the following code in >"UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c", function >S3RestoreConfig2(): > >> if (SmmS3ResumeState->Signature == SMM_S3_RESUME_SMM_64) { >> // >> // Switch to long mode to complete resume. >> // >> >> InterruptStatus = SaveAndDisableInterrupts (); >> // >> // Need to make sure the GDT is loaded with values that support long >mode and real mode. >> // >> AsmWriteGdtr (&mGdt); >> // >> // update segment selectors per the new GDT. >> // >> AsmSetDataSelectors (DATA_SEGEMENT_SELECTOR); >> // >> // Restore interrupt state. >> // >> SetInterruptState (InterruptStatus); >> >> AsmWriteCr3 ((UINTN)SmmS3ResumeState->SmmS3Cr3); >> >> // >> // Disable interrupt of Debug timer, since IDT table cannot work in >> long >mode. >> // NOTE: On x64 platforms, because DisablePaging64() will disable >interrupts, >> // the code in S3ResumeExecuteBootScript() cannot be halted by soft >debugger. >> // >> SaveAndSetDebugTimerInterrupt (FALSE); >> >> AsmEnablePaging64 ( >> 0x38, >> SmmS3ResumeState->SmmS3ResumeEntryPoint, >> (UINT64)(UINTN)AcpiS3Context, >> 0, >> SmmS3ResumeState->SmmS3StackBase + SmmS3ResumeState- >>SmmS3StackSize >> ); >> } > >At the end of this block, the AsmEnablePaging64() function is called. That call >results in the following call tree, *if* the module was built for X64: > >AsmEnablePaging64() [MdePkg/Library/BaseLib/X86EnablePaging64.c] > InternalX86EnablePaging64() [MdePkg/Library/BaseLib/X64/Non-existing.c] > ASSERT (FALSE) > >This is because the InternalX86EnablePaging64() functionality is unavailable in >BaseLib on X64. > >My question: how is this branch in S3RestoreConfig2() supposed to work *at >all* in an X64 PEI build? > >Thank you, >Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

