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

Dave Young
2013-09-20T14:04:18Z

On 09/20/13 at 01:29pm, Matt Fleming wrote:
> 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?

Matt,

It works for me, thanks for the quick fix.

>
> ---
>
> 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