All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maarten Lankhorst <m.b.lankhorst@gmail.com>
To: Matt Fleming <matt@console-pimps.org>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	Andi Kleen <andi@firstfloor.org>,
	Matt Fleming <matt.fleming@intel.com>,
	"H. Peter Anvin" <hpa@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
	Mike Waychison <mikew@google.com>,
	Matthew Garrett <mjg@redhat.com>
Subject: Re: [PATCH v3 10/10] x86, efi: EFI boot stub support
Date: Thu, 22 Sep 2011 13:43:02 +0200	[thread overview]
Message-ID: <4E7B1F46.9020706@gmail.com> (raw)
In-Reply-To: <1316607036-9235-1-git-send-email-matt@console-pimps.org>

Hey,

On 09/21/2011 02:10 PM, Matt Fleming wrote:
> From: Matt Fleming <matt.fleming@intel.com>
>
> There is currently a large divide between kernel development and the
> development of EFI boot loaders. The idea behind this patch is to give
> the kernel developers full control over the EFI boot process. As
> H. Peter Anvin put it,
>
> "The 'kernel carries its own stub' approach been very successful in
> dealing with BIOS, and would make a lot of sense to me for EFI as
> well."
>
> This patch introduces an EFI boot stub that allows an x86 bzImage to
> be loaded and executed by EFI firmware. The bzImage appears to the
> firmware as an EFI application. Luckily there are enough free bits
> within the bzImage header so that it can masquerade as an EFI
> application, thereby coercing the EFI firmware into loading it and
> jumping to its entry point. The beauty of this masquerading approach
> is that both BIOS and EFI boot loaders can still load and run the same
> bzImage, thereby allowing a single kernel image to work in any boot
> environment.
>
> The EFI boot stub supports multiple initrds, but they must exist on
> the same partition as the bzImage. Command-line arguments for the
> kernel can be appended after the bzImage name when run from the EFI
> shell, e.g.
>
> Shell> bzImage console=ttyS0 root=/dev/sdb initrd=initrd.img
>
> Cc: H. Peter Anvin <hpa@linux.intel.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Mike Waychison <mikew@google.com>
> Cc: Matthew Garrett <mjg@redhat.com>
> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
> ---
>
> v3:
>  - Fix following warnings when compiling CONFIG_EFI_STUB=n
>
>    arch/x86/boot/tools/build.c: In function ‘main’:
>    arch/x86/boot/tools/build.c:138:24: warning: unused variable ‘pe_header’
>    arch/x86/boot/tools/build.c:138:15: warning: unused variable ‘file_sz’
>
>  - As reported by Matthew Garrett, some Apple machines have GOPs that
>    don't have hardware attached. We need to weed these out by
>    searching for ones that handle the PCIIO protocol.
>
>  - Don't allocate memory if no initrds are on cmdline
>  - Don't trust image->load_options_size
>
>  - Maarten Lankhorst suggested:
>    - Don't strip first argument when booted from efibootmgr
>    - Don't allocate too much memory for cmdline
>    - Don't update cmdline_size, the kernel considers it read-only
>    - Don't accept '\n' for initrd names
Even if load_options_size is not always completely reliable, could you at least prevent reading more than image->load_options_size? Code below doesn't seem to do that currently..

Thanks,
Maarten

  reply	other threads:[~2011-09-22 11:43 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-12 14:34 [PATCH v2 00/10] x86 EFI boot stub Matt Fleming
2011-09-12 14:34 ` [PATCH 01/10] x86: Add missing bzImage fields to struct setup_header Matt Fleming
2011-09-12 14:34 ` [PATCH 02/10] x86, efi: Make efi_call_phys_prelog() CONFIG_RELOCATABLE-aware Matt Fleming
2011-09-12 14:34 ` [PATCH 03/10] x86: Don't use magic strings for EFI loader signature Matt Fleming
2011-09-12 14:34 ` [PATCH 04/10] efi.h: Add struct definition for boot time services Matt Fleming
2011-09-12 14:34 ` [PATCH v2 05/10] efi.h: Add efi_image_loaded_t Matt Fleming
2011-09-12 14:34 ` [PATCH 06/10] efi.h: Add allocation types for boottime->allocate_pages() Matt Fleming
2011-09-12 14:34 ` [PATCH v2 07/10] efi.h: Add graphics protocol guids Matt Fleming
2011-09-12 14:34 ` [PATCH 08/10] efi.h: Add boottime->locate_handle search types Matt Fleming
2011-09-12 14:34 ` [PATCH v2 09/10] efi: Add EFI file I/O data types Matt Fleming
2011-09-12 14:34 ` [PATCH v2 10/10] x86, efi: EFI boot stub support Matt Fleming
2011-09-13 13:29   ` Matthew Garrett
2011-09-13 14:01     ` Matt Fleming
2011-09-13 14:33   ` Maarten Lankhorst
2011-09-14 16:07     ` Matt Fleming
     [not found]       ` <20110915045231.GA32136@emperor.us.dell.com>
2011-09-15  8:04         ` Maarten Lankhorst
2011-09-15  9:08           ` Maarten Lankhorst
     [not found]           ` <20110915115255.GA4669@emperor.us.dell.com>
2011-09-15 12:44             ` Maarten Lankhorst
2011-09-17 11:44               ` Matt Fleming
2011-09-17 12:12                 ` Maarten Lankhorst
2011-09-21 11:57                   ` Matt Fleming
2011-09-21 12:10   ` [PATCH v3 " Matt Fleming
2011-09-22 11:43     ` Maarten Lankhorst [this message]
2011-09-22 11:55       ` Matt Fleming
2011-09-29 10:14     ` Henrik Rydberg
2011-09-30  7:41       ` Matt Fleming
2011-09-30 11:13         ` Henrik Rydberg
2011-10-03 16:53           ` Matthew Garrett
2011-10-03 18:32             ` Henrik Rydberg
2011-09-30  8:51     ` [PATCH v4 " Matt Fleming
2011-09-30 16:24       ` Shea Levy
2011-09-30 20:11         ` Matt Fleming
2011-10-01  7:50           ` Maarten Lankhorst
2011-10-01  9:19             ` Matt Fleming

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=4E7B1F46.9020706@gmail.com \
    --to=m.b.lankhorst@gmail.com \
    --cc=andi@firstfloor.org \
    --cc=hpa@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.fleming@intel.com \
    --cc=matt@console-pimps.org \
    --cc=mikew@google.com \
    --cc=mingo@elte.hu \
    --cc=mjg@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.