On 12/01/15 17:26, Elliott, Robert (Persistent Memory) wrote:
Per an hpa suggestion, I compared two versions of grub: upstream grub (with "linux" in grub.cfg): tboot_probe boot_params[0] = 0000008000000000 0000000000000070 tboot_probe boot_params[16] = 1000000400032000 0000009100003000 tboot_probe boot_params[32] = 3fa3001000100810 0808080008180000 tboot_probe boot_params[48] = 0000000000000000 0000000000000000 tboot probe boot_params[64] = 0000000000000000 0000000000000000 tboot_probe boot_params[80] = 0000000000000000 0000000000000000 tboot_probe boot_params[96] = 0000000000000000 0000000000000000 tboot_probe boot_params[112] = 0000000000000000 0000000000000000 tboot_probe boot_params[128] = 0000000000000000 0000000000000000 tboot_probe boot_params[144] = 0000000000000000 0000000000000000 tboot_probe boot_params[160] = 0000000000000000 0000000000000000 tboot_probe boot_params[176] = 0000000000000000 0000000000000000 tboot_probe boot_params[192] = 0000000000000000 0000000000000000 ... <no complaint about tboot_addr> Fedora 22 grub (with "linuxefi" in grub.cfg): tboot_probe boot_params[0] = 0000000000000000 0000000000000070 tboot_probe boot_params[16] = 0000000400032000 0000009100003000 tboot_probe boot_params[32] = 0000000000100810 0808080008180000 tboot_probe boot_params[48] = 0000010000000100 0000000000000000 tboot_probe boot_params[64] = 557365206120626f 6f74206c6f616465 tboot_probe boot_params[80] = 722e0d0a0a52656d 6f7665206469736b tboot_probe boot_params[96] = 20616e6420707265 737320616e79206b tboot_probe boot_params[112] = 657920746f207265 626f6f742e2e2e0d tboot_probe boot_params[128] = 0a00504500006486 0400000000000000 tboot_probe boot_params[144] = 000001000000a000 06020b020214f017 tboot_probe boot_params[160] = 5c00000000001076 d200104600000002 tboot_probe boot_params[176] = 0000000000000000 0000200000002000 tboot_probe boot_params[192] = 0000000000000000 0000000000000000 ... [ 0.000000] tboot: non-0 tboot_addr 0x6b7369642065766f but it is not of type E820_RESERVED In both cases, the kernel is compiled with CONFIG_EFI_STUB=y. tboot_addr is at offset 88. Offset 64 is an ASCII string that says: "Use a boot loader. Remove disk and press any key to reboot..." and is from arch/x86/boot/header.S, which is placing that string at offset 64 (0x3c + 4) from .bstext (which precedes .bsdata) if CONFIG_EFI_STUB is true. #ifdef CONFIG_EFI_STUB .org 0x3c # # Offset to the PE header. # .long pe_header #endif /* CONFIG_EFI_STUB */ .section ".bsdata", "a" bugger_off_msg: .ascii "Use a boot loader.\r\n" .ascii "\n" .ascii "Remove disk and press any key to reboot...\r\n" .byte 0
Most likely the "linuxefi" boot method uses the EFI handover protocol, however. It looks like they don't start with a properly zeroed structure...
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/