Commit cdd7857898c8d2a159118e663f59978e6b3542f2

Authored by Mark Salter
Committed by Matt Fleming
1 parent 3c7f255039

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.