Dear SeaBIOS folks,
I am using coreboot on the ASRock E350M1 [1] with a SATA hard drive, I want to boot from using the GRUB2 bootloader. For now I’d like to use SeaBIOS 1.7.2.1 for jumping to the hard drive and execute(?) GRUB2.
Using the default config file created by `make menuconfig` and selecting a coreboot build and serial debug, everything works fine.
As I am using Debian GNU/Linux I do not need any BIOS calls provided by SeaBIOS and want to disable as much as possible too. So I disabled most stuff, but could not boot from the hard drive.
# # Automatically generated make config: don't edit # SeaBIOS Configuration # Thu Mar 14 12:14:21 2013 #
# # General Features # CONFIG_COREBOOT=y # CONFIG_QEMU is not set CONFIG_THREADS=y # CONFIG_THREAD_OPTIONROMS is not set CONFIG_RELOCATE_INIT=y CONFIG_BOOTMENU=y CONFIG_BOOTSPLASH=y CONFIG_BOOTORDER=y CONFIG_COREBOOT_FLASH=y CONFIG_LZMA=y # CONFIG_FLASH_FLOPPY is not set
# # Hardware support # CONFIG_ATA=y # CONFIG_ATA_DMA is not set # CONFIG_ATA_PIO32 is not set CONFIG_AHCI=y # CONFIG_MEGASAS is not set # CONFIG_FLOPPY is not set CONFIG_USB=y CONFIG_USB_UHCI=y CONFIG_USB_OHCI=y CONFIG_USB_EHCI=y CONFIG_USB_MSC=y # CONFIG_USB_UAS is not set CONFIG_USB_HUB=y CONFIG_SERIAL=y # CONFIG_LPT is not set
# # BIOS interfaces # CONFIG_DRIVES=y CONFIG_CDROM_BOOT=y CONFIG_CDROM_EMU=y # CONFIG_PCIBIOS is not set # CONFIG_APMBIOS is not set # CONFIG_PNPBIOS is not set CONFIG_OPTIONROMS=y # CONFIG_OPTIONROMS_DEPLOYED is not set # CONFIG_PMM is not set CONFIG_BOOT=y # CONFIG_KEYBOARD is not set # CONFIG_MOUSE is not set CONFIG_S3_RESUME=y # CONFIG_VGAHOOKS is not set # CONFIG_DISABLE_A20 is not set
# # VGA ROM # CONFIG_NO_VGABIOS=y # CONFIG_VGA_GEODEGX2 is not set # CONFIG_VGA_GEODELX is not set # CONFIG_BUILD_VGABIOS is not set
# # Debugging # CONFIG_DEBUG_LEVEL=2 CONFIG_DEBUG_SERIAL=y CONFIG_DEBUG_SERIAL_PORT=0x3f8
But SeaBIOS hangs at `Scan for option roms`. (`readserial.py` was used for capturing the log.)
01.081: Got a payload 01.081: Loading segment from rom address 0xffc9cc78 01.081: code (compression=0) 01.081: New segment dstaddr 0xec220 memsize 0x13de0 srcaddr 0xffc9ccb0 filesize 0x13de0 01.081: (cleaned up) New segment addr 0xec220 size 0x13de0 offset 0xffc9ccb0 filesize 0x13de0 01.081: Loading segment from rom address 0xffc9cc94 01.081: Entry Point 0x00000000 01.081: Loading Segment: addr: 0x00000000000ec220 memsz: 0x0000000000013de0 filesz: 0x0000000000013de0 01.081: lb: [0x0000000000200000, 0x0000000000360000) 01.081: Post relocation: addr: 0x00000000000ec220 memsz: 0x0000000000013de0 filesz: 0x0000000000013de0 01.081: it's not compressed! 01.104: [ 0x000ec220, 00100000, 0x00100000) <- ffc9ccb0 01.104: dest 000ec220, end 00100000, bouncebuffer c7d20000 01.104: Loaded segments 01.104: Jumping to boot code at fcdef 01.104: entry = 0x000fcdef 01.104: lb_start = 0x00200000 01.104: lb_size = 0x00160000 01.104: adjust = 0xc7c80000 01.104: buffer = 0xc7d20000 01.104: elf_boot_notes = 0x0026f008 01.105: adjusted_boot_notes = 0xc7eef008 01.107: Start bios (version rel-1.7.2.1-2-g0c4a0cf-20130314_121519-mye350m1) 01.107: Found mainboard ASROCK E350M1 01.107: Ram Size=0xc7fe0000 (0x000000011efffc00 high) 01.107: Relocating low data from 0x000ec9c0 to 0x000ef7a0 (size 2137) 01.107: Relocating init from 0x000ed219 to 0xc7fc7720 (size 34739) 01.107: Found CBFS header at 0xfffffbf0 01.109: CPU Mhz=1601 01.109: Found 23 PCI devices (max PCI bus is 01) 01.119: Found 2 cpu(s) max supported 2 cpu(s) 01.119: Copying PIR from 0xc7fe0400 to 0x000fe020 01.119: Copying MPTABLE from 0xc7fe1400/c7fe1410 to 0x000fdf10 01.120: Copying ACPI RSDP from 0xc7fe2400 to 0x000fdef0 01.120: Copying SMBIOS entry point from 0xc7fed800 to 0x000fded0 01.120: Scan for VGA option rom 01.139: Running option rom at c000:0003 01.193: Turning on vga text mode console 01.252: SeaBIOS (version rel-1.7.2.1-2-g0c4a0cf-20130314_121519-mye350m1) 01.252: EHCI init on dev 00:12.2 (regs=0xf004b420) 01.252: /c7fc5000\ Start thread 01.252: /c7fc4000\ Start thread 01.252: /c7fc3000\ Start thread 01.252: /c7fc2000\ Start thread 01.252: /c7fc1000\ Start thread 01.252: /c7fc0000\ Start thread 01.252: EHCI init on dev 00:13.2 (regs=0xf004b520) 01.253: /c7fbf000\ Start thread 01.252: /c7fbe000\ Start thread 01.253: /c7fbd000\ Start thread 01.253: /c7fbc000\ Start thread 01.253: /c7fbb000\ Start thread 01.253: /c7fba000\ Start thread 01.253: OHCI init on dev 00:14.5 (regs=0xf004a000) 01.253: /c7fb9000\ Start thread 01.253: Found 1 serial ports 01.253: AHCI controller at 11.0, iobase f004b000, irq 0 01.253: AHCI: cap 0xf332ff05, ports_impl 0x3f 01.253: /c7fb7000\ Start thread 01.253: |c7fb7000| AHCI/0: probing 01.253: |c7fb7000| AHCI/0: link up 01.253: /c7fb6000\ Start thread 01.253: |c7fb6000| AHCI/1: probing 01.253: /c7fb4000\ Start thread 01.253: |c7fb4000| AHCI/2: probing 01.253: /c7fb3000\ Start thread 01.253: |c7fb3000| AHCI/3: probing 01.253: /c7fb1000\ Start thread 01.253: |c7fb1000| AHCI/4: probing 01.253: /c7fb0000\ Start thread 01.253: |c7fb0000| AHCI/5: probing 01.253: \c7fc4000/ End thread 01.253: \c7fc3000/ End thread 01.253: \c7fc2000/ End thread 01.253: \c7fc1000/ End thread 01.253: |c7fc0000| OHCI init on dev 00:12.0 (regs=0xf0048000) 01.253: /c7fc4000\ Start thread 01.253: \c7fc0000/ End thread 01.253: \c7fbe000/ End thread 01.253: \c7fbd000/ End thread 01.253: \c7fbc000/ End thread 01.253: \c7fbb000/ End thread 01.253: \c7fba000/ End thread 01.253: |c7fb6000| AHCI/1: link down 01.253: |c7fb4000| AHCI/2: link down 01.253: |c7fb3000| AHCI/3: link down 01.253: |c7fb1000| AHCI/4: link down 01.253: |c7fb0000| AHCI/5: link down 01.253: /c7fc3000\ Start thread 01.253: \c7fc3000/ End thread 01.253: /c7fc3000\ Start thread 01.253: \c7fc3000/ End thread 01.253: \c7fb6000/ End thread 01.253: \c7fb4000/ End thread 01.253: \c7fb3000/ End thread 01.253: \c7fb1000/ End thread 01.253: \c7fb0000/ End thread 01.253: \c7fc5000/ End thread 01.253: \c7fbf000/ End thread 01.253: \c7fb9000/ End thread 01.258: /c7fc5000\ Start thread 01.258: \c7fc5000/ End thread 01.258: /c7fc5000\ Start thread 01.258: /c7fc3000\ Start thread 01.258: /c7fc2000\ Start thread 01.258: \c7fc2000/ End thread 01.258: /c7fc2000\ Start thread 01.258: \c7fc2000/ End thread 01.294: \c7fc5000/ End thread 01.331: \c7fc3000/ End thread 01.332: \c7fc4000/ End thread 10.223: |c7fb7000| AHCI/0: ... finished, status 0x51, ERROR 0x4 10.229: |c7fb7000| Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0 10.229: |c7fb7000| AHCI/0: registering: "AHCI/0: WDC WD20EARS-60MVWB0 ATA-8 Hard-Disk (1863 GiBytes)" 10.229: \c7fb7000/ End thread 10.229: All threads complete. 10.229: Scan for option roms
With the following change (mostly defaults), it works fine.
$ diff -u .config-less .config-more --- .config-less 2013-03-14 12:14:21.650220263 +0100 +++ .config-more 2013-03-14 12:26:52.975960255 +0100 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # SeaBIOS Configuration -# Thu Mar 14 12:14:21 2013 +# Thu Mar 14 12:26:52 2013 #
# @@ -13,11 +13,11 @@ # CONFIG_THREAD_OPTIONROMS is not set CONFIG_RELOCATE_INIT=y CONFIG_BOOTMENU=y -CONFIG_BOOTSPLASH=y +# CONFIG_BOOTSPLASH is not set CONFIG_BOOTORDER=y CONFIG_COREBOOT_FLASH=y CONFIG_LZMA=y -# CONFIG_FLASH_FLOPPY is not set +CONFIG_FLASH_FLOPPY=y
The above differencese should not matter.
# # Hardware support @@ -28,6 +28,7 @@ CONFIG_AHCI=y # CONFIG_MEGASAS is not set # CONFIG_FLOPPY is not set +CONFIG_PS2PORT=y CONFIG_USB=y CONFIG_USB_UHCI=y CONFIG_USB_OHCI=y @@ -35,6 +36,8 @@ CONFIG_USB_MSC=y # CONFIG_USB_UAS is not set CONFIG_USB_HUB=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_MOUSE=y CONFIG_SERIAL=y # CONFIG_LPT is not set
@@ -44,23 +47,27 @@ CONFIG_DRIVES=y CONFIG_CDROM_BOOT=y CONFIG_CDROM_EMU=y -# CONFIG_PCIBIOS is not set -# CONFIG_APMBIOS is not set -# CONFIG_PNPBIOS is not set +CONFIG_PCIBIOS=y +CONFIG_APMBIOS=y +CONFIG_PNPBIOS=y CONFIG_OPTIONROMS=y # CONFIG_OPTIONROMS_DEPLOYED is not set -# CONFIG_PMM is not set +CONFIG_PMM=y CONFIG_BOOT=y -# CONFIG_KEYBOARD is not set -# CONFIG_MOUSE is not set +CONFIG_KEYBOARD=y +CONFIG_KBD_CALL_INT15_4F=y +CONFIG_MOUSE=y CONFIG_S3_RESUME=y -# CONFIG_VGAHOOKS is not set +CONFIG_VGAHOOKS=y # CONFIG_DISABLE_A20 is not set
# # VGA ROM # CONFIG_NO_VGABIOS=y +# CONFIG_VGA_STANDARD_VGA is not set +# CONFIG_VGA_CIRRUS is not set +# CONFIG_VGA_BOCHS is not set # CONFIG_VGA_GEODEGX2 is not set # CONFIG_VGA_GEODELX is not set # CONFIG_BUILD_VGABIOS is not set
Not sure, which change caused it, but SeaBIOS jumps to the hard drive correctly.
01.091: Got a payload 01.091: Loading segment from rom address 0xffc9cc78 01.091: code (compression=0) 01.091: New segment dstaddr 0xea2c0 memsize 0x15d40 srcaddr 0xffc9ccb0 filesize 0x15d40 01.091: (cleaned up) New segment addr 0xea2c0 size 0x15d40 offset 0xffc9ccb0 filesize 0x15d40 01.091: Loading segment from rom address 0xffc9cc94 01.091: Entry Point 0x00000000 01.091: Loading Segment: addr: 0x00000000000ea2c0 memsz: 0x0000000000015d40 filesz: 0x0000000000015d40 01.091: lb: [0x0000000000200000, 0x0000000000360000) 01.091: Post relocation: addr: 0x00000000000ea2c0 memsz: 0x0000000000015d40 filesz: 0x0000000000015d40 01.091: it's not compressed! 01.091: [ 0x000ea2c0, 00100000, 0x00100000) <- ffc9ccb0 01.091: dest 000ea2c0, end 00100000, bouncebuffer c7d20000 01.091: Loaded segments 01.091: Jumping to boot code at fc68b 01.091: entry = 0x000fc68b 01.091: lb_start = 0x00200000 01.091: lb_size = 0x00160000 01.091: adjust = 0xc7c80000 01.091: buffer = 0xc7d20000 01.091: elf_boot_notes = 0x0026f008 01.091: adjusted_boot_notes = 0xc7eef008 01.091: Start bios (version rel-1.7.2.1-2-g0c4a0cf-20130314_122745-mye350m1) 01.091: Found mainboard ASROCK E350M1 01.091: Ram Size=0xc7fe0000 (0x000000011efffc00 high) 01.090: Relocating low data from 0x000eaad0 to 0x000ef790 (size 2153) 01.090: Relocating init from 0x000eb339 to 0xc7fc8b30 (size 29615) 01.090: Found CBFS header at 0xfffffbf0 01.092: CPU Mhz=1602 01.093: Found 23 PCI devices (max PCI bus is 01) 01.102: Found 2 cpu(s) max supported 2 cpu(s) 01.102: Copying PIR from 0xc7fe0400 to 0x000fdbc0 01.103: Copying MPTABLE from 0xc7fe1400/c7fe1410 to 0x000fdab0 01.102: Copying ACPI RSDP from 0xc7fe2400 to 0x000fda90 01.103: Copying SMBIOS entry point from 0xc7fed800 to 0x000fda70 01.103: Scan for VGA option rom 01.121: Running option rom at c000:0003 01.170: Turning on vga text mode console 01.229: SeaBIOS (version rel-1.7.2.1-2-g0c4a0cf-20130314_122745-mye350m1) 01.230: EHCI init on dev 00:12.2 (regs=0xf004b420) 01.229: /c7fc6000\ Start thread 01.229: /c7fc5000\ Start thread 01.229: /c7fc4000\ Start thread 01.229: /c7fc3000\ Start thread 01.229: /c7fc2000\ Start thread 01.229: /c7fc1000\ Start thread 01.229: EHCI init on dev 00:13.2 (regs=0xf004b520) 01.229: /c7fc0000\ Start thread 01.229: /c7fbf000\ Start thread 01.229: /c7fbe000\ Start thread 01.229: /c7fbd000\ Start thread 01.229: /c7fbc000\ Start thread 01.229: /c7fbb000\ Start thread 01.229: OHCI init on dev 00:14.5 (regs=0xf004a000) 01.229: /c7fba000\ Start thread 01.229: /c7fb9000\ Start thread 01.232: Found 1 serial ports 01.232: AHCI controller at 11.0, iobase f004b000, irq 0 01.232: AHCI: cap 0xf332ff05, ports_impl 0x3f 01.232: /c7fb7000\ Start thread 01.233: |c7fb7000| AHCI/0: probing 01.233: |c7fb7000| AHCI/0: link up 01.233: /c7fb6000\ Start thread 01.232: |c7fb6000| AHCI/1: probing 01.232: /c7fb4000\ Start thread 01.232: |c7fb4000| AHCI/2: probing 01.233: /c7fb3000\ Start thread 01.233: |c7fb3000| AHCI/3: probing 01.232: /c7fb1000\ Start thread 01.232: |c7fb1000| AHCI/4: probing 01.233: /c7fb0000\ Start thread 01.233: |c7fb0000| AHCI/5: probing 01.233: \c7fc5000/ End thread 01.233: \c7fc4000/ End thread 01.233: \c7fc3000/ End thread 01.233: \c7fc2000/ End thread 01.233: |c7fc1000| OHCI init on dev 00:12.0 (regs=0xf0048000) 01.233: /c7fc5000\ Start thread 01.233: \c7fc1000/ End thread 01.233: \c7fbf000/ End thread 01.233: \c7fbe000/ End thread 01.233: \c7fbd000/ End thread 01.233: \c7fbc000/ End thread 01.233: \c7fbb000/ End thread 01.233: |c7fb6000| AHCI/1: link down 01.233: |c7fb4000| AHCI/2: link down 01.233: |c7fb3000| AHCI/3: link down 01.233: |c7fb1000| AHCI/4: link down 01.233: |c7fb0000| AHCI/5: link down 01.233: /c7fc4000\ Start thread 01.233: \c7fc4000/ End thread 01.233: /c7fc4000\ Start thread 01.234: \c7fc4000/ End thread 01.234: |c7fb9000| Got ps2 nak (status=51) 01.234: |c7fb9000| ps2 command 2ff failed (aux=0) 01.234: \c7fb9000/ End thread 01.234: \c7fb6000/ End thread 01.234: \c7fb4000/ End thread 01.234: \c7fb3000/ End thread 01.234: \c7fb1000/ End thread 01.233: \c7fb0000/ End thread 01.233: \c7fc6000/ End thread 01.234: \c7fc0000/ End thread 01.233: \c7fba000/ End thread 01.233: /c7fc6000\ Start thread 01.234: \c7fc6000/ End thread 01.234: /c7fc6000\ Start thread 01.233: /c7fc4000\ Start thread 01.234: /c7fc3000\ Start thread 01.234: \c7fc3000/ End thread 01.234: /c7fc3000\ Start thread 01.233: \c7fc3000/ End thread 01.270: |c7fc6000| usb_hid_init 0xc7fc7a50 01.271: |c7fc6000| USB mouse initialized 01.271: \c7fc6000/ End thread 01.301: |c7fc4000| usb_hid_init 0xc7fc7a50 01.302: |c7fc4000| USB keyboard initialized 01.302: \c7fc4000/ End thread 01.303: \c7fc5000/ End thread 10.203: |c7fb7000| AHCI/0: ... finished, status 0x51, ERROR 0x4 10.208: |c7fb7000| Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0 10.208: |c7fb7000| AHCI/0: registering: "AHCI/0: WDC WD20EARS-60MVWB0 ATA-8 Hard-Disk (1863 GiBytes)" 10.208: \c7fb7000/ End thread 10.208: All threads complete. 10.209: Scan for option roms 10.209: 10.209: Press F12 for boot menu. 10.209: 10.282: Searching bootorder for: HALT 10.283: drive 0x000fda00: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=-387938128 10.283: Space available for UMB: 000ce800-000ee000 10.283: Returned 57344 bytes of ZoneHigh 10.283: e820 map has 7 items: 10.283: 0: 0000000000000000 - 000000000009fc00 = 1 RAM 10.283: 1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED 10.283: 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 10.283: 3: 0000000000100000 - 00000000c7fde000 = 1 RAM 10.283: 4: 00000000c7fde000 - 00000000e0000000 = 2 RESERVED 10.283: 5: 00000000f8000000 - 00000000f9000000 = 2 RESERVED 10.283: 6: 0000000100000000 - 000000021efffc00 = 1 RAM 10.284: enter handle_19: 10.284: NULL 10.284: Booting from Hard Disk... 10.314: Booting from 0000:7c00
Any help on knowing what options I need or not is much appreciated.
Thanks,
Paul