diff options
author | Mark Salter <msalter@redhat.com> | 2013-11-29 16:00:14 -0500 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2014-04-30 14:57:05 -0400 |
commit | cdd7857898c8d2a159118e663f59978e6b3542f2 (patch) | |
tree | 4953736eec2b534d7b100e2eecda0127fd54df35 | |
parent | 3c7f255039a2ad6ee1e3890505caf0d029b22e29 (diff) |
doc: arm64: add description of EFI stub support
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>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r-- | Documentation/arm64/booting.txt | 4 | ||||
-rw-r--r-- | 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 beb754e87c65..37fc4f632176 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: | |||
85 | Header notes: | 85 | Header notes: |
86 | 86 | ||
87 | - code0/code1 are responsible for branching to stext. | 87 | - code0/code1 are responsible for branching to stext. |
88 | - when booting through EFI, code0/code1 are initially skipped. | ||
89 | res5 is an offset to the PE header and the PE header has the EFI | ||
90 | entry point (efi_stub_entry). When the stub has done its work, it | ||
91 | jumps to code0 to resume the normal boot process. | ||
88 | 92 | ||
89 | The image must be placed at the specified offset (currently 0x80000) | 93 | The image must be placed at the specified offset (currently 0x80000) |
90 | from the start of the system RAM and called there. The start of the | 94 | 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 26be7b02a164..7747024d3bb7 100644 --- a/Documentation/efi-stub.txt +++ b/Documentation/efi-stub.txt | |||
@@ -12,6 +12,11 @@ arch/arm/boot/compressed/efi-header.S and | |||
12 | arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared | 12 | arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared |
13 | between architectures is in drivers/firmware/efi/efi-stub-helper.c. | 13 | between architectures is in drivers/firmware/efi/efi-stub-helper.c. |
14 | 14 | ||
15 | For arm64, there is no compressed kernel support, so the Image itself | ||
16 | masquerades as a PE/COFF image and the EFI stub is linked into the | ||
17 | kernel. The arm64 EFI stub lives in arch/arm64/kernel/efi-entry.S | ||
18 | and arch/arm64/kernel/efi-stub.c. | ||
19 | |||
15 | By using the EFI boot stub it's possible to boot a Linux kernel | 20 | By using the EFI boot stub it's possible to boot a Linux kernel |
16 | without the use of a conventional EFI boot loader, such as grub or | 21 | without the use of a conventional EFI boot loader, such as grub or |
17 | elilo. Since the EFI boot stub performs the jobs of a boot loader, in | 22 | 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 | |||
28 | not possible to execute bzImage.efi from the usual Linux file systems | 33 | not possible to execute bzImage.efi from the usual Linux file systems |
29 | because EFI firmware doesn't have support for them. For ARM the | 34 | because EFI firmware doesn't have support for them. For ARM the |
30 | arch/arm/boot/zImage should be copied to the system partition, and it | 35 | arch/arm/boot/zImage should be copied to the system partition, and it |
31 | may not need to be renamed. | 36 | may not need to be renamed. Similarly for arm64, arch/arm64/boot/Image |
37 | should be copied but not necessarily renamed. | ||
32 | 38 | ||
33 | 39 | ||
34 | **** Passing kernel parameters from the EFI shell | 40 | **** Passing kernel parameters from the EFI shell |
@@ -72,7 +78,7 @@ is passed to bzImage.efi. | |||
72 | 78 | ||
73 | **** The "dtb=" option | 79 | **** The "dtb=" option |
74 | 80 | ||
75 | For the ARM architecture, we also need to be able to provide a device | 81 | For the ARM and arm64 architectures, we also need to be able to provide a |
76 | tree to the kernel. This is done with the "dtb=" command line option, | 82 | device tree to the kernel. This is done with the "dtb=" command line option, |
77 | and is processed in the same manner as the "initrd=" option that is | 83 | and is processed in the same manner as the "initrd=" option that is |
78 | described above. | 84 | described above. |