de8cb45862
Get the firmware's secure-boot status in the kernel boot wrapper and stash it somewhere that the main kernel image can find. The efi_get_secureboot() function is extracted from the ARM stub and (a) generalised so that it can be called from x86 and (b) made to use efi_call_runtime() so that it can be run in mixed-mode. For x86, it is stored in boot_params and can be overridden by the boot loader or kexec. This allows secure-boot mode to be passed on to a new kernel. Suggested-by: Lukas Wunner <lukas@wunner.de> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Matt Fleming <matt@codeblueprint.co.uk> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1486380166-31868-5-git-send-email-ard.biesheuvel@linaro.org [ Small readability edits. ] Signed-off-by: Ingo Molnar <mingo@kernel.org>
41 lines
1.8 KiB
Plaintext
41 lines
1.8 KiB
Plaintext
The additional fields in struct boot_params as a part of 32-bit boot
|
|
protocol of kernel. These should be filled by bootloader or 16-bit
|
|
real-mode setup code of the kernel. References/settings to it mainly
|
|
are in:
|
|
|
|
arch/x86/include/uapi/asm/bootparam.h
|
|
|
|
|
|
Offset Proto Name Meaning
|
|
/Size
|
|
|
|
000/040 ALL screen_info Text mode or frame buffer information
|
|
(struct screen_info)
|
|
040/014 ALL apm_bios_info APM BIOS information (struct apm_bios_info)
|
|
058/008 ALL tboot_addr Physical address of tboot shared page
|
|
060/010 ALL ist_info Intel SpeedStep (IST) BIOS support information
|
|
(struct ist_info)
|
|
080/010 ALL hd0_info hd0 disk parameter, OBSOLETE!!
|
|
090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!!
|
|
0A0/010 ALL sys_desc_table System description table (struct sys_desc_table),
|
|
OBSOLETE!!
|
|
0B0/010 ALL olpc_ofw_header OLPC's OpenFirmware CIF and friends
|
|
0C0/004 ALL ext_ramdisk_image ramdisk_image high 32bits
|
|
0C4/004 ALL ext_ramdisk_size ramdisk_size high 32bits
|
|
0C8/004 ALL ext_cmd_line_ptr cmd_line_ptr high 32bits
|
|
140/080 ALL edid_info Video mode setup (struct edid_info)
|
|
1C0/020 ALL efi_info EFI 32 information (struct efi_info)
|
|
1E0/004 ALL alk_mem_k Alternative mem check, in KB
|
|
1E4/004 ALL scratch Scratch field for the kernel setup code
|
|
1E8/001 ALL e820_entries Number of entries in e820_map (below)
|
|
1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below)
|
|
1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer
|
|
(below)
|
|
1EB/001 ALL kbd_status Numlock is enabled
|
|
1EC/001 ALL secure_boot Secure boot is enabled in the firmware
|
|
1EF/001 ALL sentinel Used to detect broken bootloaders
|
|
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
|
2D0/A00 ALL e820_map E820 memory map table
|
|
(array of struct e820entry)
|
|
D00/1EC ALL eddbuf EDD data (array of struct edd_info)
|