Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
$ ./build/cbfstool build/coreboot.rom print coreboot.rom: 8192 kB, bootblocksize 1024, romsize 8388608, offset 0x600000 alignment: 64 bytes, architecture: x86
Name Offset Type Size cmos_layout.bin 0x600000 cmos_layout 1352 pci1106,3230.rom 0x600580 optionrom 4096 fallback/romstage 0x6015c0 stage 26620 fallback/ramstage 0x607e00 stage 60427 fallback/payload 0x616a80 payload 53368 config 0x623b40 raw 4538 revision 0x624d40 raw 714 vgaroms/sgabios.bin 0x625040 raw 4096 (empty) 0x626080 null 1220376 mrc.cache 0x74ffc0 (unknown) 65536 cpu_microcode_blob.bin 0x760000 microcode 83968 (empty) 0x774840 null 46936 fsp.bin 0x77ffc0 (unknown) 372736 (empty) 0x7db000 null 150424
The issue is, it looks like SeaBIOS does not load sgabios at all. Here is the SeaBIOS output, debug level 7 (I also put it in the attachment):
Attempting to find coreboot table Found coreboot table forwarder. Now attempting to find coreboot memory map Found mainboard Intel Mohon Peak CRB malloc preinit Relocating init from 0x000e6b60 to 0x7fd97590 (size 35248) malloc init Found CBFS header at 0xfffffbe0 Add romfile: cmos_layout.bin (size=1352) Add romfile: pci1106,3230.rom (size=4096) Add romfile: fallback/romstage (size=26620) Add romfile: fallback/ramstage (size=60427) Add romfile: fallback/payload (size=53368) Add romfile: config (size=4538) Add romfile: revision (size=714) Add romfile: vgaroms/sgabios.bin (size=4096) Add romfile: (size=1220376) Add romfile: mrc.cache (size=65536) Add romfile: cpu_microcode_blob.bin (size=83968) Add romfile: (size=46936) Add romfile: fsp.bin (size=372736) Add romfile: (size=150424) init ivt init bda init bios32 init PNPBIOS table init keyboard init mouse init pic math cp init tsc calibrate start=1665406224 end=1669527480 diff=4121256 CPU Mhz=2401 init timer PCI probe PCI device 00:00.0 (vd=8086:1f08 c=0600) PCI device 00:01.0 (vd=8086:1f10 c=0604) PCI device 00:03.0 (vd=8086:1f12 c=0604) PCI device 00:0b.0 (vd=8086:1f18 c=0b40) PCI device 00:0e.0 (vd=8086:1f14 c=0600) PCI device 00:0f.0 (vd=8086:1f16 c=0806) PCI device 00:13.0 (vd=8086:1f15 c=0880) PCI device 00:16.0 (vd=8086:1f2c c=0c03) PCI device 00:17.0 (vd=8086:1f22 c=0106) PCI device 00:18.0 (vd=8086:1f32 c=0106) PCI device 00:1f.0 (vd=8086:1f38 c=0601) PCI device 00:1f.3 (vd=8086:1f3c c=0c05) PCI device 01:00.0 (vd=1a03:1150 c=0604) PCI device 02:00.0 (vd=1a03:2000 c=0300) PCI device 03:00.0 (vd=10b5:8624 c=0604) PCI device 04:04.0 (vd=10b5:8624 c=0604) PCI device 04:05.0 (vd=10b5:8624 c=0604) PCI device 04:08.0 (vd=10b5:8624 c=0604) PCI device 04:09.0 (vd=10b5:8624 c=0604) PCI device 06:00.0 (vd=8086:1528 c=0200) PCI device 06:00.1 (vd=8086:1528 c=0200) Found 21 PCI devices (max PCI bus is 08) Relocating coreboot bios tables Copying ACPI RSDP from 0x7fde2800 to 0x000f5730 Copying SMBIOS entry point from 0x7fdee000 to 0x000f5710 rsdp=0x000f5730 rsdt=0x7fde2830 fadt=0x7fde4950 pm_tmr_blk=408 Using pmtimer, ioport 0x408 /7fd95000\ Start thread |7fd95000| init usb |7fd95000| EHCI init on dev 00:16.0 (regs=0xdc865420) /7fd94000\ Start thread init ps2port /7fd93000\ Start thread |7fd93000| i8042_flush |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| WARNING - Timeout at i8042_flush:71! \7fd93000/ End thread init lpt Found 0 lpt ports init serial Found 2 serial ports init floppy drives init hard drives init ahci ebda moved from 9f000 to 9e800 AHCI controller at 17.0, iobase dc864000, irq 15 AHCI: cap 0xc720ff03, ports_impl 0x2 /7fd92000\ Start thread |7fd92000| AHCI/1: probing |7fd92000| AHCI/1: link up \7fd95000/ End thread /7fd91000\ Start thread AHCI controller at 18.0, iobase dc864800, irq 0 AHCI: cap 0xc3309f01, ports_impl 0x0 init megasas /7fd90000\ Start thread |7fd92000| AHCI/1: ... finished, status 0x51, ERROR 0x4 /7fd8f000\ Start thread |7fd92000| Searching bootorder for: /pci@i0cf8/*@17/drive@1/disk@0 /7fd8e000\ Start thread |7fd92000| AHCI/1: registering: "AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465" |7fd92000| Registering bootable: AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465) \7fd92000/ End thread /7fd93000\ Start thread /7fd92000\ Start thread |7fd91000| set_address 0x7fd96260 /7fd8d000\ Start thread /7fd8c000\ Start thread |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| config_usb: 0x7fd95b50 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=8) |7fd91000| device rev=0200 cls=09 sub=00 proto=01 size=64 |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=9) \7fd8c000/ End thread \7fd8d000/ End thread \7fd92000/ End thread \7fd93000/ End thread \7fd8e000/ End thread \7fd8f000/ End thread \7fd90000/ End thread |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=25) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=7) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd93000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd92000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd90000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd8f000\ Start thread |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| set_address 0x7fd96260 |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| config_usb: 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=8) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| device rev=0110 cls=00 sub=00 proto=00 size=8 |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=9) \7fd8f000/ End thread |7fd90000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=34) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| set_address 0x7fd96260 |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| usb_hid_setup 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) \7fd92000/ End thread |7fd93000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd93000| ebda moved from 9e800 to 9e400 |7fd93000| USB mouse initialized \7fd93000/ End thread |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| config_usb: 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=8) |7fd90000| device rev=0200 cls=00 sub=00 proto=00 size=8 |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=9) |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=59) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| usb_hid_setup 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd90000| ebda moved from 9e400 to 9e000 |7fd90000| USB keyboard initialized \7fd90000/ End thread |7fd91000| Initialized USB HUB (2 ports used) \7fd91000/ End thread |7fd94000| ehci_free_pipes 0x7fd96260 \7fd94000/ End thread All threads complete. Searching bootorder for: HALT Mapping hd drive 0x000f5680 to 0 drive 0x000f5680: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=976773168 malloc finalize Space available for UMB: c0000-ef510, f4f60-f5680 Returned 253952 bytes of ZoneHigh e820 map has 8 items: 0: 0000000000000000 - 000000000009e000 = 1 RAM 1: 000000000009e000 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 000000007fdde000 = 1 RAM 4: 000000007fdde000 - 000000007fe00000 = 2 RESERVED 5: 00000000e0000000 - 00000000f0000000 = 2 RESERVED 6: 00000000fee00000 - 00000000fee01000 = 2 RESERVED 7: 0000000100000000 - 0000000180000000 = 1 RAM Jump to int19 enter handle_19: NULL Booting from 0000:7c00 enter handle_12: a=00000000 b=00000000 c=00000000 d=00000080 ds=0000 es=0000 ss=9000 si=00007c05 di=00058cc0 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8af1 f=0297 invalid handle_legacy_disk:696: a=00004100 b=000655aa c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89a5 f=0246 invalid handle_legacy_disk:696: a=00000800 b=00067fbc c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00000000 di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89d9 f=0246 unimplemented handle_15XX:330: a=000000c0 b=00000000 c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8ba6 f=0246 Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue.
The last five lines is clearly grub output, only after this goes nothing and it seems to me that sgabios does not forward VGA output to the serial port.
So, how do I fix that? Am I missing something?
Regards, Viktor Kuzmichev
On Thu, Dec 25, 2014 at 11:45:40AM +0300, Kuzmichev Viktor wrote:
Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
It should have worked. How did you build SeaBIOS, what SeaBIOS config did you use, and what changes have you made to SeaBIOS?
-Kevin
On 01/10/2015 07:53 AM, Kevin O'Connor wrote:
On Thu, Dec 25, 2014 at 11:45:40AM +0300, Kuzmichev Viktor wrote:
Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
It should have worked. How did you build SeaBIOS, what SeaBIOS config did you use, and what changes have you made to SeaBIOS?
-Kevin
As I recall, Mohon Peak uses 0x2f8 for the console serial port. Did you set sgabios to output to 2f8 instead of 3f8 in sgabios.h?
sgabios.h:#define COM_BASE_ADDR 0x3f8
Martin
On 11.01.2015 07:45, Martin Roth wrote:
On 01/10/2015 07:53 AM, Kevin O'Connor wrote:
On Thu, Dec 25, 2014 at 11:45:40AM +0300, Kuzmichev Viktor wrote:
Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
It should have worked. How did you build SeaBIOS, what SeaBIOS config did you use, and what changes have you made to SeaBIOS?
-Kevin
As I recall, Mohon Peak uses 0x2f8 for the console serial port. Did you set sgabios to output to 2f8 instead of 3f8 in sgabios.h?
sgabios.h:#define COM_BASE_ADDR 0x3f8
Martin
Thank you for your replies!
Just checked sgabios.h and changed serial port base address to 2f8. Somehow I missed it earlier, although I did set this parameter in both coreboot and SeaBIOS before. Sadly, I do not currently have access to Mohon Peak, so I can't really test this right now but, hopefully, I would be able to test this in a few days. Also, I'd like to clarify one more thing. Should Option ROMS parameter in SeaBIOS menuconfig be checked for sgabios to work? Are there any other nuances I should keep in mind?
Viktor
Hi Viktor, Yes, I think having option roms checked is probably required. The only other thing I'd recommend is to build SeaBIOS outside of the coreboot structure and pull it in as an elf payload. Building within coreboot is handy, but it doesn't offer the flexibility or control that you get building it yourself.
Martin
On 01/12/2015 01:50 AM, Kuzmichev Viktor wrote:
On 11.01.2015 07:45, Martin Roth wrote:
On 01/10/2015 07:53 AM, Kevin O'Connor wrote:
On Thu, Dec 25, 2014 at 11:45:40AM +0300, Kuzmichev Viktor wrote:
Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
It should have worked. How did you build SeaBIOS, what SeaBIOS config did you use, and what changes have you made to SeaBIOS?
-Kevin
As I recall, Mohon Peak uses 0x2f8 for the console serial port. Did you set sgabios to output to 2f8 instead of 3f8 in sgabios.h?
sgabios.h:#define COM_BASE_ADDR 0x3f8
Martin
Thank you for your replies!
Just checked sgabios.h and changed serial port base address to 2f8. Somehow I missed it earlier, although I did set this parameter in both coreboot and SeaBIOS before. Sadly, I do not currently have access to Mohon Peak, so I can't really test this right now but, hopefully, I would be able to test this in a few days. Also, I'd like to clarify one more thing. Should Option ROMS parameter in SeaBIOS menuconfig be checked for sgabios to work? Are there any other nuances I should keep in mind?
Viktor
Kuzmichev,
Changing the seabios serial port base address, you should modify it via "make menuconfig" command, it's much easy and efficiency.
It's not recommended to modify the actual source files.
-Fei
On Tue, Jan 13, 2015 at 3:33 AM, Martin Roth gaumless@gmail.com wrote:
Hi Viktor, Yes, I think having option roms checked is probably required. The only other thing I'd recommend is to build SeaBIOS outside of the coreboot structure and pull it in as an elf payload. Building within coreboot is handy, but it doesn't offer the flexibility or control that you get building it yourself.
Martin
On 01/12/2015 01:50 AM, Kuzmichev Viktor wrote:
On 11.01.2015 07:45, Martin Roth wrote:
On 01/10/2015 07:53 AM, Kevin O'Connor wrote:
On Thu, Dec 25, 2014 at 11:45:40AM +0300, Kuzmichev Viktor wrote:
Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
It should have worked. How did you build SeaBIOS, what SeaBIOS config did you use, and what changes have you made to SeaBIOS?
-Kevin
As I recall, Mohon Peak uses 0x2f8 for the console serial port. Did
you set sgabios to output to 2f8 instead of 3f8 in sgabios.h?
sgabios.h:#define COM_BASE_ADDR 0x3f8
Martin
Thank you for your replies!
Just checked sgabios.h and changed serial port base address to 2f8. Somehow I missed it earlier, although I did set this parameter in both coreboot and SeaBIOS before. Sadly, I do not currently have access to Mohon Peak, so I can't really test this right now but, hopefully, I would be able to test this in a few days. Also, I'd like to clarify one more thing. Should Option ROMS parameter in SeaBIOS menuconfig be checked for sgabios to work? Are there any other nuances I should keep in mind?
Viktor
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hello,
So, after editing sgabios.h I saw that sgabios actually loaded. As I did not disable serial output in SeaBIOS and Grub, I got duplicate characters and lines. I know, if I disable all serial output, that should most probably solve it. However, I still need debug messages, so I decided to use only serial input/output. The only issue with this that I had before is that Grub was configured to load splashimage which, it seems, interfered with the serial output. So, when I disabled it, it loaded just fine. And now I have the following setup controlled completely by serial input/output: coreboot -> SeaBIOS -> Grub -> Linux. There is just one little annoying issue now. SeaBIOS does not respond to F12 via serial IO.
-Viktor
On 13.01.2015 06:33, Martin Roth wrote:
Hi Viktor, Yes, I think having option roms checked is probably required. The only other thing I'd recommend is to build SeaBIOS outside of the coreboot structure and pull it in as an elf payload. Building within coreboot is handy, but it doesn't offer the flexibility or control that you get building it yourself.
Martin
On 01/12/2015 01:50 AM, Kuzmichev Viktor wrote:
On 11.01.2015 07:45, Martin Roth wrote:
On 01/10/2015 07:53 AM, Kevin O'Connor wrote:
On Thu, Dec 25, 2014 at 11:45:40AM +0300, Kuzmichev Viktor wrote:
Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
It should have worked. How did you build SeaBIOS, what SeaBIOS config did you use, and what changes have you made to SeaBIOS?
-Kevin
As I recall, Mohon Peak uses 0x2f8 for the console serial port. Did you set sgabios to output to 2f8 instead of 3f8 in sgabios.h?
sgabios.h:#define COM_BASE_ADDR 0x3f8
Martin
Thank you for your replies!
Just checked sgabios.h and changed serial port base address to 2f8. Somehow I missed it earlier, although I did set this parameter in both coreboot and SeaBIOS before. Sadly, I do not currently have access to Mohon Peak, so I can't really test this right now but, hopefully, I would be able to test this in a few days. Also, I'd like to clarify one more thing. Should Option ROMS parameter in SeaBIOS menuconfig be checked for sgabios to work? Are there any other nuances I should keep in mind?
Viktor
Hello Viktor,
I went thru your log file attached below, and I found a difference between our coreboot.rom which used the same Rangeley platform (Mohon Peak CRB).
would you please tell me how you generate this hightlighted mrc.cache file, I didn't find any configuration in 'menuconfig' or Kconfig files. My code base is 'RANGELEY_CB_POSTGOLD_001_20131218' which was downloaded from Intel website.
I've already googled 'mrc.cache' but hardly found much hits, what is this file for? could you please also give some hints :)
Thanks
May
------------------------------------------------------------ Name Offset Type Size cmos_layout.bin 0x600000 cmos_layout 1352 pci1106,3230.rom 0x600580 optionrom 4096 fallback/romstage 0x6015c0 stage 26620 fallback/ramstage 0x607e00 stage 60427 fallback/payload 0x616a80 payload 53368 config 0x623b40 raw 4538 revision 0x624d40 raw 714 vgaroms/sgabios.bin 0x625040 raw 4096 (empty) 0x626080 null 1220376 mrc.cache 0x74ffc0 (unknown) 65536 cpu_microcode_blob.bin 0x760000 microcode 83968 (empty) 0x774840 null 46936 fsp.bin 0x77ffc0 (unknown) 372736 (empty) 0x7db000 null 150424
From: Kuzmichev Viktor Date: 2014-12-25 16:45 To: coreboot Subject: [coreboot] SeaBIOS, serial output, grub, sgabios does not seem to load Hello,
I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout:
$ ./build/cbfstool build/coreboot.rom print coreboot.rom: 8192 kB, bootblocksize 1024, romsize 8388608, offset 0x600000 alignment: 64 bytes, architecture: x86
Name Offset Type Size cmos_layout.bin 0x600000 cmos_layout 1352 pci1106,3230.rom 0x600580 optionrom 4096 fallback/romstage 0x6015c0 stage 26620 fallback/ramstage 0x607e00 stage 60427 fallback/payload 0x616a80 payload 53368 config 0x623b40 raw 4538 revision 0x624d40 raw 714 vgaroms/sgabios.bin 0x625040 raw 4096 (empty) 0x626080 null 1220376 mrc.cache 0x74ffc0 (unknown) 65536 cpu_microcode_blob.bin 0x760000 microcode 83968 (empty) 0x774840 null 46936 fsp.bin 0x77ffc0 (unknown) 372736 (empty) 0x7db000 null 150424
The issue is, it looks like SeaBIOS does not load sgabios at all. Here is the SeaBIOS output, debug level 7 (I also put it in the attachment):
Attempting to find coreboot table Found coreboot table forwarder. Now attempting to find coreboot memory map Found mainboard Intel Mohon Peak CRB malloc preinit Relocating init from 0x000e6b60 to 0x7fd97590 (size 35248) malloc init Found CBFS header at 0xfffffbe0 Add romfile: cmos_layout.bin (size=1352) Add romfile: pci1106,3230.rom (size=4096) Add romfile: fallback/romstage (size=26620) Add romfile: fallback/ramstage (size=60427) Add romfile: fallback/payload (size=53368) Add romfile: config (size=4538) Add romfile: revision (size=714) Add romfile: vgaroms/sgabios.bin (size=4096) Add romfile: (size=1220376) Add romfile: mrc.cache (size=65536) Add romfile: cpu_microcode_blob.bin (size=83968) Add romfile: (size=46936) Add romfile: fsp.bin (size=372736) Add romfile: (size=150424) init ivt init bda init bios32 init PNPBIOS table init keyboard init mouse init pic math cp init tsc calibrate start=1665406224 end=1669527480 diff=4121256 CPU Mhz=2401 init timer PCI probe PCI device 00:00.0 (vd=8086:1f08 c=0600) PCI device 00:01.0 (vd=8086:1f10 c=0604) PCI device 00:03.0 (vd=8086:1f12 c=0604) PCI device 00:0b.0 (vd=8086:1f18 c=0b40) PCI device 00:0e.0 (vd=8086:1f14 c=0600) PCI device 00:0f.0 (vd=8086:1f16 c=0806) PCI device 00:13.0 (vd=8086:1f15 c=0880) PCI device 00:16.0 (vd=8086:1f2c c=0c03) PCI device 00:17.0 (vd=8086:1f22 c=0106) PCI device 00:18.0 (vd=8086:1f32 c=0106) PCI device 00:1f.0 (vd=8086:1f38 c=0601) PCI device 00:1f.3 (vd=8086:1f3c c=0c05) PCI device 01:00.0 (vd=1a03:1150 c=0604) PCI device 02:00.0 (vd=1a03:2000 c=0300) PCI device 03:00.0 (vd=10b5:8624 c=0604) PCI device 04:04.0 (vd=10b5:8624 c=0604) PCI device 04:05.0 (vd=10b5:8624 c=0604) PCI device 04:08.0 (vd=10b5:8624 c=0604) PCI device 04:09.0 (vd=10b5:8624 c=0604) PCI device 06:00.0 (vd=8086:1528 c=0200) PCI device 06:00.1 (vd=8086:1528 c=0200) Found 21 PCI devices (max PCI bus is 08) Relocating coreboot bios tables Copying ACPI RSDP from 0x7fde2800 to 0x000f5730 Copying SMBIOS entry point from 0x7fdee000 to 0x000f5710 rsdp=0x000f5730 rsdt=0x7fde2830 fadt=0x7fde4950 pm_tmr_blk=408 Using pmtimer, ioport 0x408 /7fd95000\ Start thread |7fd95000| init usb |7fd95000| EHCI init on dev 00:16.0 (regs=0xdc865420) /7fd94000\ Start thread init ps2port /7fd93000\ Start thread |7fd93000| i8042_flush |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| WARNING - Timeout at i8042_flush:71! \7fd93000/ End thread init lpt Found 0 lpt ports init serial Found 2 serial ports init floppy drives init hard drives init ahci ebda moved from 9f000 to 9e800 AHCI controller at 17.0, iobase dc864000, irq 15 AHCI: cap 0xc720ff03, ports_impl 0x2 /7fd92000\ Start thread |7fd92000| AHCI/1: probing |7fd92000| AHCI/1: link up \7fd95000/ End thread /7fd91000\ Start thread AHCI controller at 18.0, iobase dc864800, irq 0 AHCI: cap 0xc3309f01, ports_impl 0x0 init megasas /7fd90000\ Start thread |7fd92000| AHCI/1: ... finished, status 0x51, ERROR 0x4 /7fd8f000\ Start thread |7fd92000| Searching bootorder for: /pci@i0cf8/*@17/drive@1/disk@0 /7fd8e000\ Start thread |7fd92000| AHCI/1: registering: "AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465" |7fd92000| Registering bootable: AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465) \7fd92000/ End thread /7fd93000\ Start thread /7fd92000\ Start thread |7fd91000| set_address 0x7fd96260 /7fd8d000\ Start thread /7fd8c000\ Start thread |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| config_usb: 0x7fd95b50 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=8) |7fd91000| device rev=0200 cls=09 sub=00 proto=01 size=64 |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=9) \7fd8c000/ End thread \7fd8d000/ End thread \7fd92000/ End thread \7fd93000/ End thread \7fd8e000/ End thread \7fd8f000/ End thread \7fd90000/ End thread |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=25) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=7) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd93000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd92000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd90000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd8f000\ Start thread |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| set_address 0x7fd96260 |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| config_usb: 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=8) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| device rev=0110 cls=00 sub=00 proto=00 size=8 |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=9) \7fd8f000/ End thread |7fd90000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=34) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| set_address 0x7fd96260 |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| usb_hid_setup 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) \7fd92000/ End thread |7fd93000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd93000| ebda moved from 9e800 to 9e400 |7fd93000| USB mouse initialized \7fd93000/ End thread |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| config_usb: 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=8) |7fd90000| device rev=0200 cls=00 sub=00 proto=00 size=8 |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=9) |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=59) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| usb_hid_setup 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd90000| ebda moved from 9e400 to 9e000 |7fd90000| USB keyboard initialized \7fd90000/ End thread |7fd91000| Initialized USB HUB (2 ports used) \7fd91000/ End thread |7fd94000| ehci_free_pipes 0x7fd96260 \7fd94000/ End thread All threads complete. Searching bootorder for: HALT Mapping hd drive 0x000f5680 to 0 drive 0x000f5680: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=976773168 malloc finalize Space available for UMB: c0000-ef510, f4f60-f5680 Returned 253952 bytes of ZoneHigh e820 map has 8 items: 0: 0000000000000000 - 000000000009e000 = 1 RAM 1: 000000000009e000 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 000000007fdde000 = 1 RAM 4: 000000007fdde000 - 000000007fe00000 = 2 RESERVED 5: 00000000e0000000 - 00000000f0000000 = 2 RESERVED 6: 00000000fee00000 - 00000000fee01000 = 2 RESERVED 7: 0000000100000000 - 0000000180000000 = 1 RAM Jump to int19 enter handle_19: NULL Booting from 0000:7c00 enter handle_12: a=00000000 b=00000000 c=00000000 d=00000080 ds=0000 es=0000 ss=9000 si=00007c05 di=00058cc0 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8af1 f=0297 invalid handle_legacy_disk:696: a=00004100 b=000655aa c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89a5 f=0246 invalid handle_legacy_disk:696: a=00000800 b=00067fbc c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00000000 di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89d9 f=0246 unimplemented handle_15XX:330: a=000000c0 b=00000000 c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8ba6 f=0246 Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue.
The last five lines is clearly grub output, only after this goes nothing and it seems to me that sgabios does not forward VGA output to the serial port.
So, how do I fix that? Am I missing something?
Regards, Viktor Kuzmichev
Hello May,
My FSP is from Intel website too, but it's called slightly different - 'RANGELEY_*FSP*_POSTGOLD_001_20131218.fd'. Also, I have the book called "Embedded Firmware Solutions" in which the purpose of mrc.cache is described as "For saved memory configuration data." Later in this book there is another mention of this file in the "State Machine Callbacks" section: "Each state has an Entry Callback and an Exit Callback, which may be used by any coreboot code to hook any state. For example the Baytrail FSP mrc.cache is saved during the table write state, after all devices have been setup. Enter State -> Entry Callback -> Execute State -> Exit Callback -> Next State" I can also attach my configuration file if it will be more convenient for you.
-Viktor
On 20.01.2015 04:42, May Park wrote:
Hello Viktor,
I went thru your log file attached below, and I found a difference between our coreboot.rom which used the same Rangeley platform (Mohon Peak CRB).
would you please tell me how you generate this hightlighted mrc.cache file, I didn't find any configuration in 'menuconfig' or Kconfig files. My code base is '*RANGELEY_CB_POSTGOLD_001_20131218*' which was downloaded from Intel website.
I've already googled 'mrc.cache' but hardly found much hits, what is this file for? could you please also give some hints :)
Thanks
May
/Name Offset Type Size/ /cmos_layout.bin 0x600000 cmos_layout 1352/ /pci1106,3230.rom 0x600580 optionrom 4096/ /fallback/romstage 0x6015c0 stage 26620/ /fallback/ramstage 0x607e00 stage 60427/ /fallback/payload 0x616a80 payload 53368/ /config 0x623b40 raw 4538/ /revision 0x624d40 raw 714/ /vgaroms/sgabios.bin 0x625040 raw 4096/ /(empty) 0x626080 null 1220376/ /*mrc.cache 0x74ffc0 (unknown) 65536*/ /cpu_microcode_blob.bin 0x760000 microcode 83968/ /(empty) 0x774840 null 46936/ /fsp.bin 0x77ffc0 (unknown) 372736/ /(empty) 0x7db000 null 150424/
*From:* Kuzmichev Viktor <mailto:kuzmichevviktorv@gmail.com> *Date:* 2014-12-25 16:45 *To:* coreboot <mailto:coreboot@coreboot.org> *Subject:* [coreboot] SeaBIOS, serial output, grub, sgabios does not seem to load Hello, I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout: $ ./build/cbfstool build/coreboot.rom print coreboot.rom: 8192 kB, bootblocksize 1024, romsize 8388608, offset 0x600000 alignment: 64 bytes, architecture: x86 Name Offset Type Size cmos_layout.bin 0x600000 cmos_layout 1352 pci1106,3230.rom 0x600580 optionrom 4096 fallback/romstage 0x6015c0 stage 26620 fallback/ramstage 0x607e00 stage 60427 fallback/payload 0x616a80 payload 53368 config 0x623b40 raw 4538 revision 0x624d40 raw 714 vgaroms/sgabios.bin 0x625040 raw 4096 (empty) 0x626080 null 1220376 mrc.cache 0x74ffc0 (unknown) 65536 cpu_microcode_blob.bin 0x760000 microcode 83968 (empty) 0x774840 null 46936 fsp.bin 0x77ffc0 (unknown) 372736 (empty) 0x7db000 null 150424 The issue is, it looks like SeaBIOS does not load sgabios at all. Here is the SeaBIOS output, debug level 7 (I also put it in the attachment): Attempting to find coreboot table Found coreboot table forwarder. Now attempting to find coreboot memory map Found mainboard Intel Mohon Peak CRB malloc preinit Relocating init from 0x000e6b60 to 0x7fd97590 (size 35248) malloc init Found CBFS header at 0xfffffbe0 Add romfile: cmos_layout.bin (size=1352) Add romfile: pci1106,3230.rom (size=4096) Add romfile: fallback/romstage (size=26620) Add romfile: fallback/ramstage (size=60427) Add romfile: fallback/payload (size=53368) Add romfile: config (size=4538) Add romfile: revision (size=714) Add romfile: vgaroms/sgabios.bin (size=4096) Add romfile: (size=1220376) Add romfile: mrc.cache (size=65536) Add romfile: cpu_microcode_blob.bin (size=83968) Add romfile: (size=46936) Add romfile: fsp.bin (size=372736) Add romfile: (size=150424) init ivt init bda init bios32 init PNPBIOS table init keyboard init mouse init pic math cp init tsc calibrate start=1665406224 end=1669527480 diff=4121256 CPU Mhz=2401 init timer PCI probe PCI device 00:00.0 (vd=8086:1f08 c=0600) PCI device 00:01.0 (vd=8086:1f10 c=0604) PCI device 00:03.0 (vd=8086:1f12 c=0604) PCI device 00:0b.0 (vd=8086:1f18 c=0b40) PCI device 00:0e.0 (vd=8086:1f14 c=0600) PCI device 00:0f.0 (vd=8086:1f16 c=0806) PCI device 00:13.0 (vd=8086:1f15 c=0880) PCI device 00:16.0 (vd=8086:1f2c c=0c03) PCI device 00:17.0 (vd=8086:1f22 c=0106) PCI device 00:18.0 (vd=8086:1f32 c=0106) PCI device 00:1f.0 (vd=8086:1f38 c=0601) PCI device 00:1f.3 (vd=8086:1f3c c=0c05) PCI device 01:00.0 (vd=1a03:1150 c=0604) PCI device 02:00.0 (vd=1a03:2000 c=0300) PCI device 03:00.0 (vd=10b5:8624 c=0604) PCI device 04:04.0 (vd=10b5:8624 c=0604) PCI device 04:05.0 (vd=10b5:8624 c=0604) PCI device 04:08.0 (vd=10b5:8624 c=0604) PCI device 04:09.0 (vd=10b5:8624 c=0604) PCI device 06:00.0 (vd=8086:1528 c=0200) PCI device 06:00.1 (vd=8086:1528 c=0200) Found 21 PCI devices (max PCI bus is 08) Relocating coreboot bios tables Copying ACPI RSDP from 0x7fde2800 to 0x000f5730 Copying SMBIOS entry point from 0x7fdee000 to 0x000f5710 rsdp=0x000f5730 rsdt=0x7fde2830 fadt=0x7fde4950 pm_tmr_blk=408 Using pmtimer, ioport 0x408 /7fd95000\ Start thread |7fd95000| init usb |7fd95000| EHCI init on dev 00:16.0 (regs=0xdc865420) /7fd94000\ Start thread init ps2port /7fd93000\ Start thread |7fd93000| i8042_flush |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| WARNING - Timeout at i8042_flush:71! \7fd93000/ End thread init lpt Found 0 lpt ports init serial Found 2 serial ports init floppy drives init hard drives init ahci ebda moved from 9f000 to 9e800 AHCI controller at 17.0, iobase dc864000, irq 15 AHCI: cap 0xc720ff03, ports_impl 0x2 /7fd92000\ Start thread |7fd92000| AHCI/1: probing |7fd92000| AHCI/1: link up \7fd95000/ End thread /7fd91000\ Start thread AHCI controller at 18.0, iobase dc864800, irq 0 AHCI: cap 0xc3309f01, ports_impl 0x0 init megasas /7fd90000\ Start thread |7fd92000| AHCI/1: ... finished, status 0x51, ERROR 0x4 /7fd8f000\ Start thread |7fd92000| Searching bootorder for: /pci@i0cf8/*@17/drive@1/disk@0 /7fd8e000\ Start thread |7fd92000| AHCI/1: registering: "AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465" |7fd92000| Registering bootable: AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465) \7fd92000/ End thread /7fd93000\ Start thread /7fd92000\ Start thread |7fd91000| set_address 0x7fd96260 /7fd8d000\ Start thread /7fd8c000\ Start thread |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| config_usb: 0x7fd95b50 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=8) |7fd91000| device rev=0200 cls=09 sub=00 proto=01 size=64 |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=9) \7fd8c000/ End thread \7fd8d000/ End thread \7fd92000/ End thread \7fd93000/ End thread \7fd8e000/ End thread \7fd8f000/ End thread \7fd90000/ End thread |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=25) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=7) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd93000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd92000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd90000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd8f000\ Start thread |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| set_address 0x7fd96260 |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| config_usb: 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=8) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| device rev=0110 cls=00 sub=00 proto=00 size=8 |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=9) \7fd8f000/ End thread |7fd90000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=34) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| set_address 0x7fd96260 |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| usb_hid_setup 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) \7fd92000/ End thread |7fd93000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd93000| ebda moved from 9e800 to 9e400 |7fd93000| USB mouse initialized \7fd93000/ End thread |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| config_usb: 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=8) |7fd90000| device rev=0200 cls=00 sub=00 proto=00 size=8 |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=9) |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=59) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| usb_hid_setup 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd90000| ebda moved from 9e400 to 9e000 |7fd90000| USB keyboard initialized \7fd90000/ End thread |7fd91000| Initialized USB HUB (2 ports used) \7fd91000/ End thread |7fd94000| ehci_free_pipes 0x7fd96260 \7fd94000/ End thread All threads complete. Searching bootorder for: HALT Mapping hd drive 0x000f5680 to 0 drive 0x000f5680: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=976773168 malloc finalize Space available for UMB: c0000-ef510, f4f60-f5680 Returned 253952 bytes of ZoneHigh e820 map has 8 items: 0: 0000000000000000 - 000000000009e000 = 1 RAM 1: 000000000009e000 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 000000007fdde000 = 1 RAM 4: 000000007fdde000 - 000000007fe00000 = 2 RESERVED 5: 00000000e0000000 - 00000000f0000000 = 2 RESERVED 6: 00000000fee00000 - 00000000fee01000 = 2 RESERVED 7: 0000000100000000 - 0000000180000000 = 1 RAM Jump to int19 enter handle_19: NULL Booting from 0000:7c00 enter handle_12: a=00000000 b=00000000 c=00000000 d=00000080 ds=0000 es=0000 ss=9000 si=00007c05 di=00058cc0 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8af1 f=0297 invalid handle_legacy_disk:696: a=00004100 b=000655aa c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89a5 f=0246 invalid handle_legacy_disk:696: a=00000800 b=00067fbc c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00000000 di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89d9 f=0246 unimplemented handle_15XX:330: a=000000c0 b=00000000 c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8ba6 f=0246 Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue. The last five lines is clearly grub output, only after this goes nothing and it seems to me that sgabios does not forward VGA output to the serial port. So, how do I fix that? Am I missing something? Regards, Viktor Kuzmichev -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hi May, you might have already gotten past this, but I thought I'd comment. The codebase you're working from is intel's proof of concept implementation. I don't remember if they have the MRC cache enabled. For Rangeley/Avoton platforms though, saving and restoring the MRC cache required, not optional as it is on many other FSPs.
The MRC cache is for saving the state of the memory controller. Other FSPs require that the MRC data get saved and restored for S3 resume and for "Fast Boot". For Rangeley it's required that it get restored every time. If the MRC cache isn't restored, the system gets reset an additional time on boot. If the platform doesn't have the hardware for a full power down sequence (blade systems are the example I saw), then the system will hang on reset about 30% of the time.
If the code to save and restore the MRC cache isn't available in the codebase you're using, I'd recommend switching to a codebase that does.
Martin
On 01/19/2015 06:42 PM, May Park wrote:
Hello Viktor,
I went thru your log file attached below, and I found a difference between our coreboot.rom which used the same Rangeley platform (Mohon Peak CRB).
would you please tell me how you generate this hightlighted mrc.cache file, I didn't find any configuration in 'menuconfig' or Kconfig files. My code base is '*RANGELEY_CB_POSTGOLD_001_20131218*' which was downloaded from Intel website.
I've already googled 'mrc.cache' but hardly found much hits, what is this file for? could you please also give some hints :)
Thanks
May
/Name Offset Type Size/ /cmos_layout.bin 0x600000 cmos_layout 1352/ /pci1106,3230.rom 0x600580 optionrom 4096/ /fallback/romstage 0x6015c0 stage 26620/ /fallback/ramstage 0x607e00 stage 60427/ /fallback/payload 0x616a80 payload 53368/ /config 0x623b40 raw 4538/ /revision 0x624d40 raw 714/ /vgaroms/sgabios.bin 0x625040 raw 4096/ /(empty) 0x626080 null 1220376/ /*mrc.cache 0x74ffc0 (unknown) 65536*/ /cpu_microcode_blob.bin 0x760000 microcode 83968/ /(empty) 0x774840 null 46936/ /fsp.bin 0x77ffc0 (unknown) 372736/ /(empty) 0x7db000 null 150424/
*From:* Kuzmichev Viktor <mailto:kuzmichevviktorv@gmail.com> *Date:* 2014-12-25 16:45 *To:* coreboot <mailto:coreboot@coreboot.org> *Subject:* [coreboot] SeaBIOS, serial output, grub, sgabios does not seem to load Hello, I've been trying to boot grub installed on the hard drive using coreboot and SeaBIOS as a payload. The motherboard I'm using is Intel Mohon Peak. Also, I do not use VGA for output, only serial port. So, I included the sgabios into my rom file. Here is its layout: $ ./build/cbfstool build/coreboot.rom print coreboot.rom: 8192 kB, bootblocksize 1024, romsize 8388608, offset 0x600000 alignment: 64 bytes, architecture: x86 Name Offset Type Size cmos_layout.bin 0x600000 cmos_layout 1352 pci1106,3230.rom 0x600580 optionrom 4096 fallback/romstage 0x6015c0 stage 26620 fallback/ramstage 0x607e00 stage 60427 fallback/payload 0x616a80 payload 53368 config 0x623b40 raw 4538 revision 0x624d40 raw 714 vgaroms/sgabios.bin 0x625040 raw 4096 (empty) 0x626080 null 1220376 mrc.cache 0x74ffc0 (unknown) 65536 cpu_microcode_blob.bin 0x760000 microcode 83968 (empty) 0x774840 null 46936 fsp.bin 0x77ffc0 (unknown) 372736 (empty) 0x7db000 null 150424 The issue is, it looks like SeaBIOS does not load sgabios at all. Here is the SeaBIOS output, debug level 7 (I also put it in the attachment): Attempting to find coreboot table Found coreboot table forwarder. Now attempting to find coreboot memory map Found mainboard Intel Mohon Peak CRB malloc preinit Relocating init from 0x000e6b60 to 0x7fd97590 (size 35248) malloc init Found CBFS header at 0xfffffbe0 Add romfile: cmos_layout.bin (size=1352) Add romfile: pci1106,3230.rom (size=4096) Add romfile: fallback/romstage (size=26620) Add romfile: fallback/ramstage (size=60427) Add romfile: fallback/payload (size=53368) Add romfile: config (size=4538) Add romfile: revision (size=714) Add romfile: vgaroms/sgabios.bin (size=4096) Add romfile: (size=1220376) Add romfile: mrc.cache (size=65536) Add romfile: cpu_microcode_blob.bin (size=83968) Add romfile: (size=46936) Add romfile: fsp.bin (size=372736) Add romfile: (size=150424) init ivt init bda init bios32 init PNPBIOS table init keyboard init mouse init pic math cp init tsc calibrate start=1665406224 end=1669527480 diff=4121256 CPU Mhz=2401 init timer PCI probe PCI device 00:00.0 (vd=8086:1f08 c=0600) PCI device 00:01.0 (vd=8086:1f10 c=0604) PCI device 00:03.0 (vd=8086:1f12 c=0604) PCI device 00:0b.0 (vd=8086:1f18 c=0b40) PCI device 00:0e.0 (vd=8086:1f14 c=0600) PCI device 00:0f.0 (vd=8086:1f16 c=0806) PCI device 00:13.0 (vd=8086:1f15 c=0880) PCI device 00:16.0 (vd=8086:1f2c c=0c03) PCI device 00:17.0 (vd=8086:1f22 c=0106) PCI device 00:18.0 (vd=8086:1f32 c=0106) PCI device 00:1f.0 (vd=8086:1f38 c=0601) PCI device 00:1f.3 (vd=8086:1f3c c=0c05) PCI device 01:00.0 (vd=1a03:1150 c=0604) PCI device 02:00.0 (vd=1a03:2000 c=0300) PCI device 03:00.0 (vd=10b5:8624 c=0604) PCI device 04:04.0 (vd=10b5:8624 c=0604) PCI device 04:05.0 (vd=10b5:8624 c=0604) PCI device 04:08.0 (vd=10b5:8624 c=0604) PCI device 04:09.0 (vd=10b5:8624 c=0604) PCI device 06:00.0 (vd=8086:1528 c=0200) PCI device 06:00.1 (vd=8086:1528 c=0200) Found 21 PCI devices (max PCI bus is 08) Relocating coreboot bios tables Copying ACPI RSDP from 0x7fde2800 to 0x000f5730 Copying SMBIOS entry point from 0x7fdee000 to 0x000f5710 rsdp=0x000f5730 rsdt=0x7fde2830 fadt=0x7fde4950 pm_tmr_blk=408 Using pmtimer, ioport 0x408 /7fd95000\ Start thread |7fd95000| init usb |7fd95000| EHCI init on dev 00:16.0 (regs=0xdc865420) /7fd94000\ Start thread init ps2port /7fd93000\ Start thread |7fd93000| i8042_flush |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| i8042 flushed ff (status=ff) |7fd93000| WARNING - Timeout at i8042_flush:71! \7fd93000/ End thread init lpt Found 0 lpt ports init serial Found 2 serial ports init floppy drives init hard drives init ahci ebda moved from 9f000 to 9e800 AHCI controller at 17.0, iobase dc864000, irq 15 AHCI: cap 0xc720ff03, ports_impl 0x2 /7fd92000\ Start thread |7fd92000| AHCI/1: probing |7fd92000| AHCI/1: link up \7fd95000/ End thread /7fd91000\ Start thread AHCI controller at 18.0, iobase dc864800, irq 0 AHCI: cap 0xc3309f01, ports_impl 0x0 init megasas /7fd90000\ Start thread |7fd92000| AHCI/1: ... finished, status 0x51, ERROR 0x4 /7fd8f000\ Start thread |7fd92000| Searching bootorder for: /pci@i0cf8/*@17/drive@1/disk@0 /7fd8e000\ Start thread |7fd92000| AHCI/1: registering: "AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465" |7fd92000| Registering bootable: AHCI/1: ST500DM002-1BD142 ATA-8 Hard-Disk (465) \7fd92000/ End thread /7fd93000\ Start thread /7fd92000\ Start thread |7fd91000| set_address 0x7fd96260 /7fd8d000\ Start thread /7fd8c000\ Start thread |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| config_usb: 0x7fd95b50 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=8) |7fd91000| device rev=0200 cls=09 sub=00 proto=01 size=64 |7fd91000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=9) \7fd8c000/ End thread \7fd8d000/ End thread \7fd92000/ End thread \7fd93000/ End thread \7fd8e000/ End thread \7fd8f000/ End thread \7fd90000/ End thread |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=25) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=7) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd91000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd93000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd92000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) /7fd90000\ Start thread |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) /7fd8f000\ Start thread |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| set_address 0x7fd96260 |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| config_usb: 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=8) |7fd8f000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| device rev=0110 cls=00 sub=00 proto=00 size=8 |7fd93000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=9) \7fd8f000/ End thread |7fd90000| ehci_control 0x7fd95b50 (dir=0 cmd=8 data=0) |7fd93000| ehci_control 0x7fd95ad0 (dir=128 cmd=8 data=34) |7fd90000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| set_address 0x7fd96260 |7fd92000| ehci_control 0x7fd95b50 (dir=128 cmd=8 data=4) |7fd93000| usb_hid_setup 0x7fd95ad0 |7fd93000| ehci_control 0x7fd95ad0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) \7fd92000/ End thread |7fd93000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd93000| ebda moved from 9e800 to 9e400 |7fd93000| USB mouse initialized \7fd93000/ End thread |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| config_usb: 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=8) |7fd90000| device rev=0200 cls=00 sub=00 proto=00 size=8 |7fd90000| ehci_alloc_async_pipe 0x7fd96260 0 |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=9) |7fd90000| ehci_control 0x7fd958d0 (dir=128 cmd=8 data=59) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| usb_hid_setup 0x7fd958d0 |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_control 0x7fd958d0 (dir=0 cmd=8 data=0) |7fd90000| ehci_alloc_intr_pipe 0x7fd96260 3 |7fd90000| ebda moved from 9e400 to 9e000 |7fd90000| USB keyboard initialized \7fd90000/ End thread |7fd91000| Initialized USB HUB (2 ports used) \7fd91000/ End thread |7fd94000| ehci_free_pipes 0x7fd96260 \7fd94000/ End thread All threads complete. Searching bootorder for: HALT Mapping hd drive 0x000f5680 to 0 drive 0x000f5680: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=976773168 malloc finalize Space available for UMB: c0000-ef510, f4f60-f5680 Returned 253952 bytes of ZoneHigh e820 map has 8 items: 0: 0000000000000000 - 000000000009e000 = 1 RAM 1: 000000000009e000 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 000000007fdde000 = 1 RAM 4: 000000007fdde000 - 000000007fe00000 = 2 RESERVED 5: 00000000e0000000 - 00000000f0000000 = 2 RESERVED 6: 00000000fee00000 - 00000000fee01000 = 2 RESERVED 7: 0000000100000000 - 0000000180000000 = 1 RAM Jump to int19 enter handle_19: NULL Booting from 0000:7c00 enter handle_12: a=00000000 b=00000000 c=00000000 d=00000080 ds=0000 es=0000 ss=9000 si=00007c05 di=00058cc0 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8af1 f=0297 invalid handle_legacy_disk:696: a=00004100 b=000655aa c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89a5 f=0246 invalid handle_legacy_disk:696: a=00000800 b=00067fbc c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00000000 di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=89d9 f=0246 unimplemented handle_15XX:330: a=000000c0 b=00000000 c=00000000 d=00000081 ds=0000 es=0000 ss=9000 si=00067fbc di=00000081 bp=00001ff0 sp=0000ffd6 cs=0000 ip=8ba6 f=0246 Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue. Press any key to continue. The last five lines is clearly grub output, only after this goes nothing and it seems to me that sgabios does not forward VGA output to the serial port. So, how do I fix that? Am I missing something? Regards, Viktor Kuzmichev -- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot