[SeaBIOS] Minimal config for booting GRUB2 from SATA drive

Paul Menzel paulepanter at users.sourceforge.net
Thu Mar 14 15:57:00 CET 2013


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 at i0cf8/*@11/drive at 0/disk at 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 at i0cf8/*@11/drive at 0/disk at 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


[1] http://www.coreboot.org/ASRock_E350M1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.seabios.org/pipermail/seabios/attachments/20130314/d7588e3f/attachment.sig>


More information about the SeaBIOS mailing list