[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