Message ID | 20220426114352.1262-7-varad.gautam@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | SMP Support for x86 UEFI Tests | expand |
diff --git a/x86/efi/crt0-efi-x86_64.S b/x86/efi/crt0-efi-x86_64.S index eaf1656..1708ed5 100644 --- a/x86/efi/crt0-efi-x86_64.S +++ b/x86/efi/crt0-efi-x86_64.S @@ -58,6 +58,9 @@ _start: popq %rdi popq %rsi + /* Switch away from EFI stack. */ + lea stacktop(%rip), %rsp + call efi_main addq $8, %rsp diff --git a/x86/efi/efistart64.S b/x86/efi/efistart64.S index b94c5ab..3a4135e 100644 --- a/x86/efi/efistart64.S +++ b/x86/efi/efistart64.S @@ -4,7 +4,13 @@ #include "asm-generic/page.h" #include "crt0-efi-x86_64.S" + +/* Reserve stack in .data */ .data +.align PAGE_SIZE + . = . + PAGE_SIZE * MAX_TEST_CPUS +.globl stacktop +stacktop: .align PAGE_SIZE .globl ptl2
UEFI test builds currently use the stack pointer configured by the UEFI implementation. Reserve stack space in .data for EFI testcases and switch %rsp to use this memory on early boot. This provides one 4K page per CPU to store its stack. Signed-off-by: Varad Gautam <varad.gautam@suse.com> --- x86/efi/crt0-efi-x86_64.S | 3 +++ x86/efi/efistart64.S | 6 ++++++ 2 files changed, 9 insertions(+)