-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'x86-efi-kexec-for-linus' of git://git.kernel.org/pub/sc…
…m/linux/kernel/git/tip/tip Pull x86 EFI changes from Ingo Molnar: "This consists of two main parts: - New static EFI runtime services virtual mapping layout which is groundwork for kexec support on EFI (Borislav Petkov) - EFI kexec support itself (Dave Young)" * 'x86-efi-kexec-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits) x86/efi: parse_efi_setup() build fix x86: ksysfs.c build fix x86/efi: Delete superfluous global variables x86: Reserve setup_data ranges late after parsing memmap cmdline x86: Export x86 boot_params to sysfs x86: Add xloadflags bit for EFI runtime support on kexec x86/efi: Pass necessary EFI data for kexec via setup_data efi: Export EFI runtime memory mapping to sysfs efi: Export more EFI table variables to sysfs x86/efi: Cleanup efi_enter_virtual_mode() function x86/efi: Fix off-by-one bug in EFI Boot Services reservation x86/efi: Add a wrapper function efi_map_region_fixed() x86/efi: Remove unused variables in __map_region() x86/efi: Check krealloc return value x86/efi: Runtime services virtual mapping x86/mm/cpa: Map in an arbitrary pgd x86/mm/pageattr: Add last levels of error path x86/mm/pageattr: Add a PUD error unwinding path x86/mm/pageattr: Add a PTE pagetable populating function x86/mm/pageattr: Add a PMD pagetable populating function ...
- Loading branch information
Showing
23 changed files
with
1,689 additions
and
116 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
What: /sys/firmware/efi/fw_vendor | ||
Date: December 2013 | ||
Contact: Dave Young <dyoung@redhat.com> | ||
Description: It shows the physical address of firmware vendor field in the | ||
EFI system table. | ||
Users: Kexec | ||
|
||
What: /sys/firmware/efi/runtime | ||
Date: December 2013 | ||
Contact: Dave Young <dyoung@redhat.com> | ||
Description: It shows the physical address of runtime service table entry in | ||
the EFI system table. | ||
Users: Kexec | ||
|
||
What: /sys/firmware/efi/config_table | ||
Date: December 2013 | ||
Contact: Dave Young <dyoung@redhat.com> | ||
Description: It shows the physical address of config table entry in the EFI | ||
system table. | ||
Users: Kexec |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
What: /sys/firmware/efi/runtime-map/ | ||
Date: December 2013 | ||
Contact: Dave Young <dyoung@redhat.com> | ||
Description: Switching efi runtime services to virtual mode requires | ||
that all efi memory ranges which have the runtime attribute | ||
bit set to be mapped to virtual addresses. | ||
|
||
The efi runtime services can only be switched to virtual | ||
mode once without rebooting. The kexec kernel must maintain | ||
the same physical to virtual address mappings as the first | ||
kernel. The mappings are exported to sysfs so userspace tools | ||
can reassemble them and pass them into the kexec kernel. | ||
|
||
/sys/firmware/efi/runtime-map/ is the directory the kernel | ||
exports that information in. | ||
|
||
subdirectories are named with the number of the memory range: | ||
|
||
/sys/firmware/efi/runtime-map/0 | ||
/sys/firmware/efi/runtime-map/1 | ||
/sys/firmware/efi/runtime-map/2 | ||
/sys/firmware/efi/runtime-map/3 | ||
... | ||
|
||
Each subdirectory contains five files: | ||
|
||
attribute : The attributes of the memory range. | ||
num_pages : The size of the memory range in pages. | ||
phys_addr : The physical address of the memory range. | ||
type : The type of the memory range. | ||
virt_addr : The virtual address of the memory range. | ||
|
||
Above values are all hexadecimal numbers with the '0x' prefix. | ||
Users: Kexec |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
What: /sys/kernel/boot_params | ||
Date: December 2013 | ||
Contact: Dave Young <dyoung@redhat.com> | ||
Description: The /sys/kernel/boot_params directory contains two | ||
files: "data" and "version" and one subdirectory "setup_data". | ||
It is used to export the kernel boot parameters of an x86 | ||
platform to userspace for kexec and debugging purpose. | ||
|
||
If there's no setup_data in boot_params the subdirectory will | ||
not be created. | ||
|
||
"data" file is the binary representation of struct boot_params. | ||
|
||
"version" file is the string representation of boot | ||
protocol version. | ||
|
||
"setup_data" subdirectory contains the setup_data data | ||
structure in boot_params. setup_data is maintained in kernel | ||
as a link list. In "setup_data" subdirectory there's one | ||
subdirectory for each link list node named with the number | ||
of the list nodes. The list node subdirectory contains two | ||
files "type" and "data". "type" file is the string | ||
representation of setup_data type. "data" file is the binary | ||
representation of setup_data payload. | ||
|
||
The whole boot_params directory structure is like below: | ||
/sys/kernel/boot_params | ||
|__ data | ||
|__ setup_data | ||
| |__ 0 | ||
| | |__ data | ||
| | |__ type | ||
| |__ 1 | ||
| |__ data | ||
| |__ type | ||
|__ version | ||
|
||
Users: Kexec |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.