diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-05 16:15:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-05 16:15:32 -0400 |
commit | c3c55a07203947f72afa50a3218460b27307c47d (patch) | |
tree | de3a2f8adbb3bea4bba1df0f709b0d6c1f4e87b7 /Documentation/arm | |
parent | 046f153343e33dcad1be7f6249ea6ff1c6fd9b58 (diff) | |
parent | 74bcc2499291d38b6253f9dbd6af33a195222208 (diff) |
Merge branch 'arm64-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
Pull ARM64 EFI update from Peter Anvin:
"By agreement with the ARM64 EFI maintainers, we have agreed to make
-tip the upstream for all EFI patches. That is why this patchset
comes from me :)
This patchset enables EFI stub support for ARM64, like we already have
on x86"
* 'arm64-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
arm64: efi: only attempt efi map setup if booting via EFI
efi/arm64: ignore dtb= when UEFI SecureBoot is enabled
doc: arm64: add description of EFI stub support
arm64: efi: add EFI stub
doc: arm: add UEFI support documentation
arm64: add EFI runtime services
efi: Add shared FDT related functions for ARM/ARM64
arm64: Add function to create identity mappings
efi: add helper function to get UEFI params from FDT
doc: efi-stub.txt updates for ARM
lib: add fdt_empty_tree.c
Diffstat (limited to 'Documentation/arm')
-rw-r--r-- | Documentation/arm/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/arm/uefi.txt | 64 |
2 files changed, 66 insertions, 0 deletions
diff --git a/Documentation/arm/00-INDEX b/Documentation/arm/00-INDEX index a94090cc785d..3b08bc2b04cf 100644 --- a/Documentation/arm/00-INDEX +++ b/Documentation/arm/00-INDEX | |||
@@ -46,5 +46,7 @@ swp_emulation | |||
46 | - SWP/SWPB emulation handler/logging description | 46 | - SWP/SWPB emulation handler/logging description |
47 | tcm.txt | 47 | tcm.txt |
48 | - ARM Tightly Coupled Memory | 48 | - ARM Tightly Coupled Memory |
49 | uefi.txt | ||
50 | - [U]EFI configuration and runtime services documentation | ||
49 | vlocks.txt | 51 | vlocks.txt |
50 | - Voting locks, low-level mechanism relying on memory system atomic writes. | 52 | - Voting locks, low-level mechanism relying on memory system atomic writes. |
diff --git a/Documentation/arm/uefi.txt b/Documentation/arm/uefi.txt new file mode 100644 index 000000000000..d60030a1b909 --- /dev/null +++ b/Documentation/arm/uefi.txt | |||
@@ -0,0 +1,64 @@ | |||
1 | UEFI, the Unified Extensible Firmware Interface, is a specification | ||
2 | governing the behaviours of compatible firmware interfaces. It is | ||
3 | maintained by the UEFI Forum - http://www.uefi.org/. | ||
4 | |||
5 | UEFI is an evolution of its predecessor 'EFI', so the terms EFI and | ||
6 | UEFI are used somewhat interchangeably in this document and associated | ||
7 | source code. As a rule, anything new uses 'UEFI', whereas 'EFI' refers | ||
8 | to legacy code or specifications. | ||
9 | |||
10 | UEFI support in Linux | ||
11 | ===================== | ||
12 | Booting on a platform with firmware compliant with the UEFI specification | ||
13 | makes it possible for the kernel to support additional features: | ||
14 | - UEFI Runtime Services | ||
15 | - Retrieving various configuration information through the standardised | ||
16 | interface of UEFI configuration tables. (ACPI, SMBIOS, ...) | ||
17 | |||
18 | For actually enabling [U]EFI support, enable: | ||
19 | - CONFIG_EFI=y | ||
20 | - CONFIG_EFI_VARS=y or m | ||
21 | |||
22 | The implementation depends on receiving information about the UEFI environment | ||
23 | in a Flattened Device Tree (FDT) - so is only available with CONFIG_OF. | ||
24 | |||
25 | UEFI stub | ||
26 | ========= | ||
27 | The "stub" is a feature that extends the Image/zImage into a valid UEFI | ||
28 | PE/COFF executable, including a loader application that makes it possible to | ||
29 | load the kernel directly from the UEFI shell, boot menu, or one of the | ||
30 | lightweight bootloaders like Gummiboot or rEFInd. | ||
31 | |||
32 | The kernel image built with stub support remains a valid kernel image for | ||
33 | booting in non-UEFI environments. | ||
34 | |||
35 | UEFI kernel support on ARM | ||
36 | ========================== | ||
37 | UEFI kernel support on the ARM architectures (arm and arm64) is only available | ||
38 | when boot is performed through the stub. | ||
39 | |||
40 | When booting in UEFI mode, the stub deletes any memory nodes from a provided DT. | ||
41 | Instead, the kernel reads the UEFI memory map. | ||
42 | |||
43 | The stub populates the FDT /chosen node with (and the kernel scans for) the | ||
44 | following parameters: | ||
45 | ________________________________________________________________________________ | ||
46 | Name | Size | Description | ||
47 | ================================================================================ | ||
48 | linux,uefi-system-table | 64-bit | Physical address of the UEFI System Table. | ||
49 | -------------------------------------------------------------------------------- | ||
50 | linux,uefi-mmap-start | 64-bit | Physical address of the UEFI memory map, | ||
51 | | | populated by the UEFI GetMemoryMap() call. | ||
52 | -------------------------------------------------------------------------------- | ||
53 | linux,uefi-mmap-size | 32-bit | Size in bytes of the UEFI memory map | ||
54 | | | pointed to in previous entry. | ||
55 | -------------------------------------------------------------------------------- | ||
56 | linux,uefi-mmap-desc-size | 32-bit | Size in bytes of each entry in the UEFI | ||
57 | | | memory map. | ||
58 | -------------------------------------------------------------------------------- | ||
59 | linux,uefi-mmap-desc-ver | 32-bit | Version of the mmap descriptor format. | ||
60 | -------------------------------------------------------------------------------- | ||
61 | linux,uefi-stub-kern-ver | string | Copy of linux_banner from build. | ||
62 | -------------------------------------------------------------------------------- | ||
63 | |||
64 | For verbose debug messages, specify 'uefi_debug' on the kernel command line. | ||