linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: msalter@redhat.com (Mark Salter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/6] arm64: add EFI stub
Date: Tue, 14 Jan 2014 09:44:00 -0500	[thread overview]
Message-ID: <1389710640.26822.10.camel@deneb.redhat.com> (raw)
In-Reply-To: <201401131949.39358.arnd@arndb.de>

On Mon, 2014-01-13 at 19:49 +0100, Arnd Bergmann wrote:
> On Friday 10 January 2014, Mark Salter wrote:
> > This patch adds PE/COFF header fields to the start of the Image
> > so that it appears as an EFI application to EFI firmware. An EFI
> > stub is included to allow direct booting of the kernel Image. Due
> > to EFI firmware limitations, only little endian kernels with 4K
> > page sizes are supported at this time. Support in the COFF header
> > for signed images was provided by Ard Biesheuvel.
> > 
> > Signed-off-by: Mark Salter <msalter@redhat.com>
> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> 
> You got the ordering of the S-o-b lines wrong. Since you send the
> patch, your name should come last.

Yes.

> 
> > +config EFI_STUB
> > +     bool "EFI stub support"
> > +     depends on !ARM64_64K_PAGES && OF
> > +     select LIBFDT
> > +     default y
> > +     help
> > +       This kernel feature allows an Image to be loaded directly
> > +       by EFI firmware without the use of a bootloader.
> > +       See Documentation/efi-stub.txt for more information.
> > +
> >  endmenu
> 
> Why not ARM64_64K_PAGES? I thought that it was going to be the
> default for a lot of distros that would need to run on UEFI systems.

The UEFI spec currently mandates 4k page size. We may be able to work
around that or get the spec changed, but for now it is just 4k pages.

> 
> >  menu "Userspace binary formats"
> > diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile
> > index 5ba2fd4..1c52b84 100644
> > --- a/arch/arm64/kernel/Makefile
> > +++ b/arch/arm64/kernel/Makefile
> > @@ -4,6 +4,8 @@
> >  
> >  CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET)
> >  AFLAGS_head.o                := -DTEXT_OFFSET=$(TEXT_OFFSET)
> > +CFLAGS_efi-stub.o    := -DTEXT_OFFSET=$(TEXT_OFFSET) \
> > +                        -I$(src)/../../../scripts/dtc/libfdt
> 
> Hmm, this is pretty ugly. I notice the same has been done on MIPS
> as well, but I'd hope we can find a proper way to do it.

Yes, I just copied that from mips. I can look into some more.

> 
> > diff --git a/arch/arm64/kernel/efi-stub.c b/arch/arm64/kernel/efi-stub.c
> > new file mode 100644
> > index 0000000..10d02bf
> > --- /dev/null
> > +++ b/arch/arm64/kernel/efi-stub.c
> > +
> > +/* Include shared EFI stub code */
> > +#include "../../../drivers/firmware/efi/efi-stub-helper.c"
> > +#include "../../../drivers/firmware/efi/fdt.c"
> 
> It gets worse here.

Well, I'm open to suggestions here. The shared code has to work with
stubs which are built into kernel (arm64) and which are part of the
compressed image wrapper.

  reply	other threads:[~2014-01-14 14:44 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-10 22:29 [PATCH 0/6] arm64: Add EFI stub and runtime services support Mark Salter
2014-01-10 22:29 ` [PATCH 1/6] efi: create memory map iteration helper Mark Salter
2014-01-13 15:17   ` Matt Fleming
2014-01-13 17:53     ` Mark Salter
2014-01-10 22:29 ` [PATCH 2/6] arm64: Add function to create identity mappings Mark Salter
2014-01-22 17:39   ` Catalin Marinas
2014-01-10 22:29 ` [PATCH 3/6] efi: add helper function to get UEFI params from FDT Mark Salter
2014-01-10 22:29 ` [PATCH 4/6] arm64: add EFI stub Mark Salter
2014-01-13 18:49   ` Arnd Bergmann
2014-01-14 14:44     ` Mark Salter [this message]
2014-01-14 19:26       ` Roy Franz
2014-01-22 18:04   ` Catalin Marinas
2014-01-10 22:29 ` [PATCH 5/6] doc: arm64: add description of EFI stub support Mark Salter
2014-01-10 22:29 ` [PATCH 6/6] arm64: add EFI runtime services Mark Salter
2014-01-23 11:24   ` Catalin Marinas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1389710640.26822.10.camel@deneb.redhat.com \
    --to=msalter@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).