Re: [PATCH 00/11] EFI runtime services virtual mapping

Matt Fleming
2013-09-20T12:29:22Z

On Fri, 20 Sep, at 11:05:44AM, Borislav Petkov wrote:
> On Fri, Sep 20, 2013 at 03:29:04PM +0800, Dave Young wrote:
> > Just tested this series, for 1st kernel It boots ok in qemu+ovmf. But
> > it immediately reboot on my Thinkpad T420. Unfortunately there's no
> > way to debug this very early problem because there's no serial port
> > also earlyprintk does not work for efi boot. No usb debug as well on
> > this machine. I will test it when I go back to work after the china
> > holiday.
>
> Hmm, I'm booting with the efi boot stub, how do you do it?

Dave, could you try this patch?

---

diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
index 06e71c2..9bcc15c 100644
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -207,6 +207,8 @@ ENTRY(startup_64)
jmp preferred_addr

ENTRY(efi_pe_entry)
+ movq %cr3, %r15
+ movq %r15, efi_scratch+16(%rip)
mov %rcx, %rdi
mov %rdx, %rsi
pushq %rdi
@@ -219,6 +221,8 @@ ENTRY(efi_pe_entry)
popq %rdi

ENTRY(efi_stub_entry)
+ movq %cr3, %r15
+ movq %r15, efi_scratch+16(%rip)
call efi_main
movq %rax,%rsi
cmpq $0,%rax

--
Matt Fleming, Intel Open Source Technology Center