Commit cdd7857898c8d2a159118e663f59978e6b3542f2
Committed by
Matt Fleming
1 parent
3c7f255039
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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>
Showing 2 changed files with 13 additions and 3 deletions Side-by-side Diff
Documentation/arm64/booting.txt
... | ... | @@ -85,6 +85,10 @@ |
85 | 85 | Header notes: |
86 | 86 | |
87 | 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 | 93 | The image must be placed at the specified offset (currently 0x80000) |
90 | 94 | from the start of the system RAM and called there. The start of the |
Documentation/efi-stub.txt
... | ... | @@ -12,6 +12,11 @@ |
12 | 12 | arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared |
13 | 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 | 20 | By using the EFI boot stub it's possible to boot a Linux kernel |
16 | 21 | without the use of a conventional EFI boot loader, such as grub or |
17 | 22 | elilo. Since the EFI boot stub performs the jobs of a boot loader, in |
... | ... | @@ -28,7 +33,8 @@ |
28 | 33 | not possible to execute bzImage.efi from the usual Linux file systems |
29 | 34 | because EFI firmware doesn't have support for them. For ARM the |
30 | 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 | 40 | **** Passing kernel parameters from the EFI shell |
... | ... | @@ -72,8 +78,8 @@ |
72 | 78 | |
73 | 79 | **** The "dtb=" option |
74 | 80 | |
75 | -For the ARM architecture, we also need to be able to provide a device | |
76 | -tree to the kernel. This is done with the "dtb=" command line option, | |
81 | +For the ARM and arm64 architectures, we also need to be able to provide a | |
82 | +device tree to the kernel. This is done with the "dtb=" command line option, | |
77 | 83 | and is processed in the same manner as the "initrd=" option that is |
78 | 84 | described above. |
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b
-
mentioned in commit 89098b