[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <565E5556.5040703@zytor.com>
Date: Tue, 1 Dec 2015 18:20:06 -0800
From: "H. Peter Anvin" <hpa@...or.com>
To: "Elliott, Robert (Persistent Memory)" <elliott@....com>,
"joseph.cihula@...el.com" <joseph.cihula@...el.com>,
"richard.l.maliszewski@...el.com" <richard.l.maliszewski@...el.com>,
"gang.wei@...el.com" <gang.wei@...el.com>,
"shane.wang@...el.com" <shane.wang@...el.com>
Cc: "tglx@...utronix.de" <tglx@...utronix.de>,
"mingo@...hat.com" <mingo@...hat.com>,
"x86@...nel.org" <x86@...nel.org>,
"tboot-devel@...ts.sourceforge.net"
<tboot-devel@...ts.sourceforge.net>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Knippers, Linda" <linda.knippers@....com>,
"Kani, Toshimitsu" <toshi.kani@....com>
Subject: Re: tboot: non-0 tboot_addr but it is not of type E820_RESERVED
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists