All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leif Lindholm <leif.lindholm@linaro.org>
To: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-efi@vger.kernel.org
Cc: patches@linaro.org, Mark Salter <msalter@redhat.com>,
	Leif Lindholm <leif.lindholm@linaro.org>,
	linux-doc@vger.kernel.org, Rob Landley <rob@landley.net>
Subject: [PATCH 18/22] doc: arm64: add description of EFI stub support
Date: Wed,  5 Feb 2014 17:04:09 +0000	[thread overview]
Message-ID: <1391619853-10601-19-git-send-email-leif.lindholm@linaro.org> (raw)
In-Reply-To: <1391619853-10601-1-git-send-email-leif.lindholm@linaro.org>

From: Mark Salter <msalter@redhat.com>

Add explanation of arm64 EFI stub and kernel image header changes
needed to masquerade as a PE/COFF application.

Signed-off-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Acked-by: Grant Likely <grant.likely@linaro.org>
CC: linux-doc@vger.kernel.org
CC: Rob Landley <rob@landley.net>
---
 Documentation/arm64/booting.txt |    4 ++++
 Documentation/efi-stub.txt      |   12 +++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/Documentation/arm64/booting.txt b/Documentation/arm64/booting.txt
index a9691cc..aa95d38c 100644
--- a/Documentation/arm64/booting.txt
+++ b/Documentation/arm64/booting.txt
@@ -85,6 +85,10 @@ The decompressed kernel image contains a 64-byte header as follows:
 Header notes:
 
 - code0/code1 are responsible for branching to stext.
+- when booting through EFI, code0/code1 are initially skipped.
+  res5 is an offset to the PE header and the PE header has the EFI
+  entry point (efi_stub_entry). When the stub has done its work, it
+  jumps to code0 to resume the normal boot process.
 
 The image must be placed at the specified offset (currently 0x80000)
 from the start of the system RAM and called there. The start of the
diff --git a/Documentation/efi-stub.txt b/Documentation/efi-stub.txt
index 26be7b0..7747024 100644
--- a/Documentation/efi-stub.txt
+++ b/Documentation/efi-stub.txt
@@ -12,6 +12,11 @@ arch/arm/boot/compressed/efi-header.S and
 arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared
 between architectures is in drivers/firmware/efi/efi-stub-helper.c.
 
+For arm64, there is no compressed kernel support, so the Image itself
+masquerades as a PE/COFF image and the EFI stub is linked into the
+kernel. The arm64 EFI stub lives in arch/arm64/kernel/efi-entry.S
+and arch/arm64/kernel/efi-stub.c.
+
 By using the EFI boot stub it's possible to boot a Linux kernel
 without the use of a conventional EFI boot loader, such as grub or
 elilo. Since the EFI boot stub performs the jobs of a boot loader, in
@@ -28,7 +33,8 @@ the extension the EFI firmware loader will refuse to execute it. It's
 not possible to execute bzImage.efi from the usual Linux file systems
 because EFI firmware doesn't have support for them. For ARM the
 arch/arm/boot/zImage should be copied to the system partition, and it
-may not need to be renamed.
+may not need to be renamed. Similarly for arm64, arch/arm64/boot/Image
+should be copied but not necessarily renamed.
 
 
 **** Passing kernel parameters from the EFI shell
@@ -72,7 +78,7 @@ is passed to bzImage.efi.
 
 **** The "dtb=" option
 
-For the ARM architecture, we also need to be able to provide a device
-tree to the kernel. This is done with the "dtb=" command line option,
+For the ARM and arm64 architectures, we also need to be able to provide a
+device tree to the kernel. This is done with the "dtb=" command line option,
 and is processed in the same manner as the "initrd=" option that is
 described above.
-- 
1.7.10.4


WARNING: multiple messages have this Message-ID (diff)
From: Leif Lindholm <leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	Mark Salter <msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Leif Lindholm
	<leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Rob Landley <rob-VoJi6FS/r0vR7s880joybQ@public.gmane.org>
Subject: [PATCH 18/22] doc: arm64: add description of EFI stub support
Date: Wed,  5 Feb 2014 17:04:09 +0000	[thread overview]
Message-ID: <1391619853-10601-19-git-send-email-leif.lindholm@linaro.org> (raw)
In-Reply-To: <1391619853-10601-1-git-send-email-leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>

From: Mark Salter <msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

Add explanation of arm64 EFI stub and kernel image header changes
needed to masquerade as a PE/COFF application.

Signed-off-by: Mark Salter <msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Leif Lindholm <leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Acked-by: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
CC: linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
CC: Rob Landley <rob-VoJi6FS/r0vR7s880joybQ@public.gmane.org>
---
 Documentation/arm64/booting.txt |    4 ++++
 Documentation/efi-stub.txt      |   12 +++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/Documentation/arm64/booting.txt b/Documentation/arm64/booting.txt
index a9691cc..aa95d38c 100644
--- a/Documentation/arm64/booting.txt
+++ b/Documentation/arm64/booting.txt
@@ -85,6 +85,10 @@ The decompressed kernel image contains a 64-byte header as follows:
 Header notes:
 
 - code0/code1 are responsible for branching to stext.
+- when booting through EFI, code0/code1 are initially skipped.
+  res5 is an offset to the PE header and the PE header has the EFI
+  entry point (efi_stub_entry). When the stub has done its work, it
+  jumps to code0 to resume the normal boot process.
 
 The image must be placed at the specified offset (currently 0x80000)
 from the start of the system RAM and called there. The start of the
diff --git a/Documentation/efi-stub.txt b/Documentation/efi-stub.txt
index 26be7b0..7747024 100644
--- a/Documentation/efi-stub.txt
+++ b/Documentation/efi-stub.txt
@@ -12,6 +12,11 @@ arch/arm/boot/compressed/efi-header.S and
 arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared
 between architectures is in drivers/firmware/efi/efi-stub-helper.c.
 
+For arm64, there is no compressed kernel support, so the Image itself
+masquerades as a PE/COFF image and the EFI stub is linked into the
+kernel. The arm64 EFI stub lives in arch/arm64/kernel/efi-entry.S
+and arch/arm64/kernel/efi-stub.c.
+
 By using the EFI boot stub it's possible to boot a Linux kernel
 without the use of a conventional EFI boot loader, such as grub or
 elilo. Since the EFI boot stub performs the jobs of a boot loader, in
@@ -28,7 +33,8 @@ the extension the EFI firmware loader will refuse to execute it. It's
 not possible to execute bzImage.efi from the usual Linux file systems
 because EFI firmware doesn't have support for them. For ARM the
 arch/arm/boot/zImage should be copied to the system partition, and it
-may not need to be renamed.
+may not need to be renamed. Similarly for arm64, arch/arm64/boot/Image
+should be copied but not necessarily renamed.
 
 
 **** Passing kernel parameters from the EFI shell
@@ -72,7 +78,7 @@ is passed to bzImage.efi.
 
 **** The "dtb=" option
 
-For the ARM architecture, we also need to be able to provide a device
-tree to the kernel. This is done with the "dtb=" command line option,
+For the ARM and arm64 architectures, we also need to be able to provide a
+device tree to the kernel. This is done with the "dtb=" command line option,
 and is processed in the same manner as the "initrd=" option that is
 described above.
-- 
1.7.10.4

WARNING: multiple messages have this Message-ID (diff)
From: leif.lindholm@linaro.org (Leif Lindholm)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 18/22] doc: arm64: add description of EFI stub support
Date: Wed,  5 Feb 2014 17:04:09 +0000	[thread overview]
Message-ID: <1391619853-10601-19-git-send-email-leif.lindholm@linaro.org> (raw)
In-Reply-To: <1391619853-10601-1-git-send-email-leif.lindholm@linaro.org>

From: Mark Salter <msalter@redhat.com>

Add explanation of arm64 EFI stub and kernel image header changes
needed to masquerade as a PE/COFF application.

Signed-off-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Acked-by: Grant Likely <grant.likely@linaro.org>
CC: linux-doc at vger.kernel.org
CC: Rob Landley <rob@landley.net>
---
 Documentation/arm64/booting.txt |    4 ++++
 Documentation/efi-stub.txt      |   12 +++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/Documentation/arm64/booting.txt b/Documentation/arm64/booting.txt
index a9691cc..aa95d38c 100644
--- a/Documentation/arm64/booting.txt
+++ b/Documentation/arm64/booting.txt
@@ -85,6 +85,10 @@ The decompressed kernel image contains a 64-byte header as follows:
 Header notes:
 
 - code0/code1 are responsible for branching to stext.
+- when booting through EFI, code0/code1 are initially skipped.
+  res5 is an offset to the PE header and the PE header has the EFI
+  entry point (efi_stub_entry). When the stub has done its work, it
+  jumps to code0 to resume the normal boot process.
 
 The image must be placed at the specified offset (currently 0x80000)
 from the start of the system RAM and called there. The start of the
diff --git a/Documentation/efi-stub.txt b/Documentation/efi-stub.txt
index 26be7b0..7747024 100644
--- a/Documentation/efi-stub.txt
+++ b/Documentation/efi-stub.txt
@@ -12,6 +12,11 @@ arch/arm/boot/compressed/efi-header.S and
 arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared
 between architectures is in drivers/firmware/efi/efi-stub-helper.c.
 
+For arm64, there is no compressed kernel support, so the Image itself
+masquerades as a PE/COFF image and the EFI stub is linked into the
+kernel. The arm64 EFI stub lives in arch/arm64/kernel/efi-entry.S
+and arch/arm64/kernel/efi-stub.c.
+
 By using the EFI boot stub it's possible to boot a Linux kernel
 without the use of a conventional EFI boot loader, such as grub or
 elilo. Since the EFI boot stub performs the jobs of a boot loader, in
@@ -28,7 +33,8 @@ the extension the EFI firmware loader will refuse to execute it. It's
 not possible to execute bzImage.efi from the usual Linux file systems
 because EFI firmware doesn't have support for them. For ARM the
 arch/arm/boot/zImage should be copied to the system partition, and it
-may not need to be renamed.
+may not need to be renamed. Similarly for arm64, arch/arm64/boot/Image
+should be copied but not necessarily renamed.
 
 
 **** Passing kernel parameters from the EFI shell
@@ -72,7 +78,7 @@ is passed to bzImage.efi.
 
 **** The "dtb=" option
 
-For the ARM architecture, we also need to be able to provide a device
-tree to the kernel. This is done with the "dtb=" command line option,
+For the ARM and arm64 architectures, we also need to be able to provide a
+device tree to the kernel. This is done with the "dtb=" command line option,
 and is processed in the same manner as the "initrd=" option that is
 described above.
-- 
1.7.10.4

  parent reply	other threads:[~2014-02-05 17:07 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-05 17:03 [PATCH 00/22] arm/arm64: UEFI stubs + runtime services Leif Lindholm
2014-02-05 17:03 ` Leif Lindholm
2014-02-05 17:03 ` Leif Lindholm
2014-02-05 17:03 ` [PATCH 01/22] arm: break part of __soft_restart out into separate function Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03 ` [PATCH 02/22] arm: add new asm macro update_sctlr Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 18:01   ` Will Deacon
2014-02-05 18:01     ` Will Deacon
2014-02-05 18:01     ` Will Deacon
2014-02-05 17:03 ` [PATCH 03/22] efi: add helper function to get UEFI params from FDT Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-13 11:17   ` Matt Fleming
2014-02-13 11:17     ` Matt Fleming
2014-02-13 11:17     ` Matt Fleming
2014-02-13 14:56     ` Mark Salter
2014-02-13 14:56       ` Mark Salter
2014-02-13 14:56       ` Mark Salter
2014-02-05 17:03 ` [PATCH 04/22] efi-stub.txt updates for ARM Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03 ` [PATCH 05/22] Add shared printk wrapper for consistent prefixing Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:34   ` Joe Perches
2014-02-05 17:34     ` Joe Perches
2014-02-05 17:34     ` Joe Perches
2014-02-05 17:03 ` [PATCH 06/22] Add helper functions used by arm/arm64 Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-13 11:26   ` Matt Fleming
2014-02-13 11:26     ` Matt Fleming
2014-02-13 11:26     ` Matt Fleming
2014-02-14 19:02     ` Roy Franz
2014-02-14 19:02       ` Roy Franz
2014-02-14 19:02       ` Roy Franz
2014-03-03 14:08       ` Matt Fleming
2014-03-03 14:08         ` Matt Fleming
2014-03-03 14:08         ` Matt Fleming
2014-03-04  7:48         ` Roy Franz
2014-03-04  7:48           ` Roy Franz
2014-03-04  7:48           ` Roy Franz
2014-02-05 17:03 ` [PATCH 07/22] Add shared FDT related functions for ARM/ARM64 Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03 ` [PATCH 08/22] Add strstr to compressed string.c for ARM Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:03   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 09/22] Add shared arm/arm64 EFI stub Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 10/22] Add EFI stub for ARM Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 11/22] Disable stack protection for decompressor/stub Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 12/22] Documentation: arm: add UEFI support documentation Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 13/22] arm: Add [U]EFI runtime services support Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 14/22] init: efi: arm: enable (U)EFI runtime services on arm Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 15/22] lib: add fdt_empty_tree.c Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 16/22] arm64: Add function to create identity mappings Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-14 17:42   ` Catalin Marinas
2014-02-14 17:42     ` Catalin Marinas
2014-02-17 13:29     ` Mark Salter
2014-02-17 13:29       ` Mark Salter
2014-02-17 13:29       ` Mark Salter
2014-02-05 17:04 ` [PATCH 17/22] arm64: add EFI stub Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` Leif Lindholm [this message]
2014-02-05 17:04   ` [PATCH 18/22] doc: arm64: add description of EFI stub support Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 19/22] arm64: add EFI runtime services Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 20/22] Improve cmdline conversion Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 17:04 ` [PATCH 21/22] arm: efistub: ignore dtb= when UEFI SecureBoot is enabled Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm
2014-02-05 18:09   ` Ard Biesheuvel
2014-02-05 18:09     ` Ard Biesheuvel
2014-02-05 18:09     ` Ard Biesheuvel
2014-02-05 17:04 ` [PATCH 22/22] arm: update boot/compressed/.gitignore Leif Lindholm
2014-02-05 17:04   ` Leif Lindholm

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=1391619853-10601-19-git-send-email-leif.lindholm@linaro.org \
    --to=leif.lindholm@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=msalter@redhat.com \
    --cc=patches@linaro.org \
    --cc=rob@landley.net \
    /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.