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

Reply via email to