Bug #48

Linux fails to boot with embedded GRUB payload but works with embedded SeaBIOS payload

Added by Timothy Pearson over 3 years ago. Updated almost 3 years ago.

Status:NewStart date:04/28/2016
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:os_handoff
Target version:-

Description

When booting an ASUS KGPE-D16 with the embedded GRUB payload Linux fails to acquire the ACPI IRQ and/or tables; booting the same board and OS image with the embedded SeaBIOS payload works fine.

Log of failed kernel boot from GRUB attached; logs of the successful kernel boot under SeaBIOS are forthcoming.

kgpe-d16-grub-linux-acpi-failure.log Magnifier - Linux log with GRUB (smpboot disabled) (21.2 KB) Timothy Pearson, 04/28/2016 04:24 PM

kgpe-d16-seabios-linux-success.log Magnifier (376 KB) Timothy Pearson, 04/28/2016 05:10 PM

kgpe-d16-grub-linux-4.5-failure.log Magnifier (366 KB) Timothy Pearson, 04/28/2016 05:27 PM

kgpe-d16-seabios-linux-4.5-success.log Magnifier (379 KB) Timothy Pearson, 04/28/2016 05:27 PM

History

#1 Updated by Timothy Pearson over 3 years ago

I forgot to mention that I wasn't sure if this should be filed here or on the main GRUB issue tracker, as from what I can tell using GRUB works when loaded from the hard disk via SeaBIOS instead of as an embedded elf image.

Please let me know if you would like anything else to assist with debugging.

Thanks!

#2 Updated by Timothy Pearson over 3 years ago

See attached log for SeaBIOS successful boot. Will try a newer Linux kernel shortly.

It is possible the ACPI failure is a red herring; without the nosmp parameter the boot hangs at:
[ 0.334972] smpboot: CPU0: AMD Opteron(tm) Processor 6262 HE (fam: 15, model: 01, stepping: 02)

#3 Updated by Timothy Pearson over 3 years ago

Test results with Linux 4.5 and the same kernel arguments. SeaBIOS works, GRUB fails (hangs).

#4 Updated by Aaron Durbin over 3 years ago

The e820 maps are significantly different between seabios and grub:

coreboot's memory map is this:
0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES
1. 0000000000001000-000000000009ffff: RAM
2. 00000000000a0000-00000000000bffff: RESERVED
3. 00000000000c0000-00000000b7c89fff: RAM
4. 00000000b7c8a000-00000000b7ffffff: CONFIGURATION TABLES
5. 00000000b8000000-00000000bfffffff: RAM
6. 00000000c0000000-00000000cfffffff: RESERVED
7. 00000000fcb00000-00000000fcb03fff: RESERVED
8. 00000000feb00000-00000000feb00fff: RESERVED
9. 00000000fec00000-00000000fec00fff: RESERVED
10. 00000000fed00000-00000000fed00fff: RESERVED
11. 0000000100000000-0000000837ffffff: RAM
12. 0000000838000000-000000083fffffff: RESERVED

seabios produced e820 memory map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000b7c89fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000b7c8a000-0x00000000b7ffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000b8000000-0x00000000bfffcfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfffd000-0x00000000cfffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fcb00000-0x00000000fcb03fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000feb00000-0x00000000feb00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x0000000837ffffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000838000000-0x000000083fffffff] reserved

grub produce e820 memory map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000000fff] type 16
[ 0.000000] BIOS-e820: [mem 0x0000000000001000-0x000000000009ffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000000a0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000b7c89fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000b7c8a000-0x00000000b7ffffff] type 16
[ 0.000000] BIOS-e820: [mem 0x00000000b8000000-0x00000000bfffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000c0000000-0x00000000cfffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fcb00000-0x00000000fcb03fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000feb00000-0x00000000feb00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x0000000837ffffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000838000000-0x000000083fffffff] reserved

That said, what specifically is the failure? The grub failure log doesn't really have anything in it, but the dmesg is cutoff.

#5 Updated by Timothy Pearson over 3 years ago

Aaron Durbin wrote:

That said, what specifically is the failure? The grub failure log doesn't really have anything in it, but the dmesg is cutoff.

It's not cut off. Linux simply hangs there and does not continue booting.

#6 Updated by Timothy Pearson almost 3 years ago

Another user hit this recently; they reported that the "nolapic" kernel option resolved the boot failure at the expense of SMP. Would be interesting to determine if this is a GRUB or coreboot regression.

Also available in: Atom PDF