aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-03-20 21:58:18 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-20 21:58:18 -0400
commit24b5e20f11a75866bbffc46c30a22fa50612a769 (patch)
tree2dab5fc6714a5ad1e31bdea1e954fbd69704ce72 /Documentation
parent26660a4046b171a752e72a1dd32153230234fe3a (diff)
parentd367cef0a7f0c6ee86e997c0cb455b21b3c6b9ba (diff)
Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull EFI updates from Ingo Molnar: "The main changes are: - Use separate EFI page tables when executing EFI firmware code. This isolates the EFI context from the rest of the kernel, which has security and general robustness advantages. (Matt Fleming) - Run regular UEFI firmware with interrupts enabled. This is already the status quo under other OSs. (Ard Biesheuvel) - Various x86 EFI enhancements, such as the use of non-executable attributes for EFI memory mappings. (Sai Praneeth Prakhya) - Various arm64 UEFI enhancements. (Ard Biesheuvel) - ... various fixes and cleanups. The separate EFI page tables feature got delayed twice already, because it's an intrusive change and we didn't feel confident about it - third time's the charm we hope!" * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits) x86/mm/pat: Fix boot crash when 1GB pages are not supported by the CPU x86/efi: Only map kernel text for EFI mixed mode x86/efi: Map EFI_MEMORY_{XP,RO} memory region bits to EFI page tables x86/mm/pat: Don't implicitly allow _PAGE_RW in kernel_map_pages_in_pgd() efi/arm*: Perform hardware compatibility check efi/arm64: Check for h/w support before booting a >4 KB granular kernel efi/arm: Check for LPAE support before booting a LPAE kernel efi/arm-init: Use read-only early mappings efi/efistub: Prevent __init annotations from being used arm64/vmlinux.lds.S: Handle .init.rodata.xxx and .init.bss sections efi/arm64: Drop __init annotation from handle_kernel_image() x86/mm/pat: Use _PAGE_GLOBAL bit for EFI page table mappings efi/runtime-wrappers: Run UEFI Runtime Services with interrupts enabled efi: Reformat GUID tables to follow the format in UEFI spec efi: Add Persistent Memory type name efi: Add NV memory attribute x86/efi: Show actual ending addresses in efi_print_memmap x86/efi/bgrt: Don't ignore the BGRT if the 'valid' bit is 0 efivars: Use to_efivar_entry efi: Runtime-wrapper: Get rid of the rtc_lock spinlock ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/efi-stub.txt4
-rw-r--r--Documentation/x86/x86_64/mm.txt12
2 files changed, 8 insertions, 8 deletions
diff --git a/Documentation/efi-stub.txt b/Documentation/efi-stub.txt
index 7747024d3bb7..e15746988261 100644
--- a/Documentation/efi-stub.txt
+++ b/Documentation/efi-stub.txt
@@ -10,12 +10,12 @@ arch/x86/boot/header.S and arch/x86/boot/compressed/eboot.c,
10respectively. For ARM the EFI stub is implemented in 10respectively. For ARM the EFI stub is implemented in
11arch/arm/boot/compressed/efi-header.S and 11arch/arm/boot/compressed/efi-header.S and
12arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared 12arch/arm/boot/compressed/efi-stub.c. EFI stub code that is shared
13between architectures is in drivers/firmware/efi/efi-stub-helper.c. 13between architectures is in drivers/firmware/efi/libstub.
14 14
15For arm64, there is no compressed kernel support, so the Image itself 15For arm64, there is no compressed kernel support, so the Image itself
16masquerades as a PE/COFF image and the EFI stub is linked into the 16masquerades as a PE/COFF image and the EFI stub is linked into the
17kernel. The arm64 EFI stub lives in arch/arm64/kernel/efi-entry.S 17kernel. The arm64 EFI stub lives in arch/arm64/kernel/efi-entry.S
18and arch/arm64/kernel/efi-stub.c. 18and drivers/firmware/efi/libstub/arm64-stub.c.
19 19
20By using the EFI boot stub it's possible to boot a Linux kernel 20By using the EFI boot stub it's possible to boot a Linux kernel
21without the use of a conventional EFI boot loader, such as grub or 21without the use of a conventional EFI boot loader, such as grub or
diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt
index 05712ac83e38..c518dce7da4d 100644
--- a/Documentation/x86/x86_64/mm.txt
+++ b/Documentation/x86/x86_64/mm.txt
@@ -16,6 +16,8 @@ ffffec0000000000 - fffffc0000000000 (=44 bits) kasan shadow memory (16TB)
16... unused hole ... 16... unused hole ...
17ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks 17ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks
18... unused hole ... 18... unused hole ...
19ffffffef00000000 - ffffffff00000000 (=64 GB) EFI region mapping space
20... unused hole ...
19ffffffff80000000 - ffffffffa0000000 (=512 MB) kernel text mapping, from phys 0 21ffffffff80000000 - ffffffffa0000000 (=512 MB) kernel text mapping, from phys 0
20ffffffffa0000000 - ffffffffff5fffff (=1525 MB) module mapping space 22ffffffffa0000000 - ffffffffff5fffff (=1525 MB) module mapping space
21ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls 23ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls
@@ -32,11 +34,9 @@ reference.
32Current X86-64 implementations only support 40 bits of address space, 34Current X86-64 implementations only support 40 bits of address space,
33but we support up to 46 bits. This expands into MBZ space in the page tables. 35but we support up to 46 bits. This expands into MBZ space in the page tables.
34 36
35->trampoline_pgd: 37We map EFI runtime services in the 'efi_pgd' PGD in a 64Gb large virtual
36 38memory window (this size is arbitrary, it can be raised later if needed).
37We map EFI runtime services in the aforementioned PGD in the virtual 39The mappings are not part of any other kernel PGD and are only available
38range of 64Gb (arbitrarily set, can be raised if needed) 40during EFI runtime calls.
39
400xffffffef00000000 - 0xffffffff00000000
41 41
42-Andi Kleen, Jul 2004 42-Andi Kleen, Jul 2004