Dasharo / dasharo-issues

The Dasharo issue tracker
https://dasharo.com/
24 stars 0 forks source link

KGPE-D16 not booting, SeaBIOS stuck at `handle_08`, `handle_hwpic1 irq=1`... #323

Open lss4 opened 1 year ago

lss4 commented 1 year ago

Dasharo version

0.4.0

Dasharo variant

asus_kgpe-d16_v0.4.0_16M_vboot_tpm2

Affected component(s) or functionality

coreboot startup.

Brief summary

Trying to boot Dasharo 0.4.0 on my KGPE-D16. It seems to be able to pass the memory initialization phase rather easily compared to coreboot 4.11 branch. However, I couldn't get it booted to SeaBIOS, stuck at these lines.

BS: BS_PAYLOAD_BOOT entry times (exec / console): 0 / 120 ms
POST: 0x7b
Jumping to boot code at 0x000fd770(0xbfd59000)
POST: 0xf8
CPU0: stack: 0xbfed7000 - 0xbfed8000, lowest used address 0xbfed7410, stack used: 3056 bytes

How reproducible

So far all boots have failed, either on self-built images or the stock one (16M vboot TPM2).

How to reproduce Steps to reproduce the behavior:

  1. Flash Dasharo.
  2. Try booting. It would get stuck on the aforementioned POST code and message.

Expected behavior

The board should be able to successfully continue into SeaBIOS.

Actual behavior

The boot process gets stuck at this point. Nothing shows up on the monitor, and neither PS/2 or USB input works.

Screenshots

Here are some testlogs I captured via serial port for the stock variant asus_kgpe-d16_v0.4.0_16M_vboot_tpm2. Not sure if they contain anything helpful, such as possible similarities with other issues reported in the past. dasharo-testlog1.txt dasharo-testlog2.txt

Additional context

Back then with coreboot 4.11 the system can boot to SeaBIOS with working video output (bootsplash and text menu). However, it had difficulty passing RAM initialization phase and have to move RAM sticks to different slots to make it pass easier.

I didn't test coreboot 4.11 further back then as the USB stack was not working correctly once gone past SeaBIOS, preventing me from booting any Linux USB install medium, and USB peripherals (keyboards, mice) did not work on floppy payloads that could be booted okay, such as Menuet64. Perhaps this is still not fixed, as of #171...

Solutions you've tried

Originally I'm building an image myself and the image I built got stuck at this point. I included microcode updates for my CPU family and ran into #321. I worked it around by modifying the code to let it look at cpu_microcode_blob.bin also, which worked and the microcode updates were successfully loaded, but it did not solve the problem and the boot process was still stuck at this particular point. I then flashed the stock variant asus_kgpe-d16_v0.4.0_16M_vboot_tpm2 as a reference. The system got stuck at the same place and still could not progress any further.

lss4 commented 1 year ago

A little bump of this by myself as I just tested a bit more about it recently.

Actually my previous builds kind of retained the vboot flash map which was not what I want as I do not use vboot, so I disabled it and let it use the default layout. However, that doesn't really solve my issue.

At the same time I added a few more printk output points in hope to find out where exactly did the output stop... and it seems the log output ultimately ended at doit(prog_entry_arg(prog));, which feels like the very last step of the coreboot part before entering the payload... so probably everything is working okay on the coreboot side and I need to enable SeaBIOS logging to find out more...

lss4 commented 1 year ago

Okay... I turned on all SeaBIOS logs and flashed it again...

It indeed appeared to have entered SeaBIOS. However, it kind of got stuck at a loop in the end...

Here's the log excerpt starting from SeaBIOS. I'm not sure if everything's okay...

SeaBIOS (version rel-1.16.1-2-gea1b7a0-dirty-20230221_175705-b756d6910c02)
BUILD: gcc: (coreboot toolchain v0ad5fbd48d 2020-12-24) 8.3.0 binutils: (GNU Binutils) 2.35.1
Attempting to find coreboot table
Found coreboot table forwarder.
Now attempting to find coreboot memory map
Add to e820 map: 00000000 00001000 2
Add to e820 map: 00001000 0009f000 1
Add to e820 map: 000a0000 00060000 2
Add to e820 map: 00100000 bfc48000 1
Add to e820 map: bfd48000 002b8000 2
Add to e820 map: c0000000 10000000 2
Add to e820 map: fec00000 00001000 2
Add to e820 map: fec10000 00001000 2
Add to e820 map: fec20000 00001000 2
Add to e820 map: fed00000 00010000 2
Add to e820 map: fed40000 00005000 2
Add to e820 map: ff000000 01000000 2
Add to e820 map: 100000000 1f38000000 1
Add to e820 map: 2038000000 08000000 2
Add to e820 map: 00000000 00004000 1
SeaBIOS (version rel-1.16.1-2-gea1b7a0-dirty-20230221_175705-b756d6910c02)
BUILD: gcc: (coreboot toolchain v0ad5fbd48d 2020-12-24) 8.3.0 binutils: (GNU Binutils) 2.35.1
Found coreboot cbmem console @ bffde000
Found mainboard ASUS KGPE-D16
malloc preinit
Add to e820 map: 000a0000 00050000 -1
Add to e820 map: 000f0000 00010000 2
Add to e820 map: bed48000 01000000 2
phys_alloc zone=0x000e9520 size=59136 align=20 ret=bed39860 (detail=0xbed39830)
Relocating init from 0x000daf00 to 0xbed39860 (size 59136)
malloc init
Found CBFS header at 0xff00022c
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed39730 (detail=0xbed39700)
Add romfile: cbfs master header (size=32)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed39660 (detail=0xbed39630)
Add romfile: fallback/romstage (size=171232)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed39590 (detail=0xbed39560)
Add romfile: cpu_microcode_blob.bin (size=7876)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed394c0 (detail=0xbed39490)
Add romfile: fallback/ramstage (size=99803)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed393f0 (detail=0xbed393c0)
Add romfile: config (size=1333)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed39320 (detail=0xbed392f0)
Add romfile: revision (size=867)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed39250 (detail=0xbed39220)
Add romfile: build_info (size=115)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed39180 (detail=0xbed39150)
Add romfile: bootsplash.bmp (size=308278)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed390b0 (detail=0xbed39080)
Add romfile: fallback/dsdt.aml (size=4962)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38fe0 (detail=0xbed38fb0)
Add romfile: cmos.default (size=256)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38f10 (detail=0xbed38ee0)
Add romfile: cmos_layout.bin (size=3792)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38e40 (detail=0xbed38e10)
Add romfile: fallback/postcar (size=21552)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38d70 (detail=0xbed38d40)
Add romfile: img/coreinfo (size=54639)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38ca0 (detail=0xbed38c70)
Add romfile: img/nvramcui (size=70630)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38bd0 (detail=0xbed38ba0)
Add romfile: fallback/payload (size=81376)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38b00 (detail=0xbed38ad0)
Add romfile: payload_config (size=1622)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38a30 (detail=0xbed38a00)
Add romfile: payload_revision (size=272)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38960 (detail=0xbed38930)
Add romfile: img/tint (size=50257)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38890 (detail=0xbed38860)
Add romfile: etc/sercon-port (size=8)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed387c0 (detail=0xbed38790)
Add romfile: floppyimg/menuet64 (size=1474560)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed386f0 (detail=0xbed386c0)
Add romfile: floppyimg/michalos (size=1474560)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38620 (detail=0xbed385f0)
Add romfile: floppyimg/mt86p664 (size=1474560)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38550 (detail=0xbed38520)
Add romfile: floppyimg/pdosflop (size=1474560)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38480 (detail=0xbed38450)
Add romfile: floppyimg/fiwixflp (size=1474560)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed383b0 (detail=0xbed38380)
Add romfile: floppyimg/snowdrop (size=1474560)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed382e0 (detail=0xbed382b0)
Add romfile:  (size=13572004)
phys_alloc zone=0xbed47e80 size=156 align=10 ret=bed38210 (detail=0xbed381e0)
Add romfile: bootblock (size=13632)
multiboot: eax=23, ebx=fc8a2
init ivt
init bda
Add to e820 map: 0009fc00 00000400 2
init bios32
init PMM
init PNPBIOS table
init keyboard
init mouse
init pic
math cp init
PCI probe
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed381c0 (detail=0xbed38190)
PCI device 00:00.0 (vd=1002:5a10 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed38170 (detail=0xbed38140)
PCI device 00:00.2 (vd=1002:5a23 c=0806)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed38120 (detail=0xbed380f0)
PCI device 00:02.0 (vd=1002:5a16 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed380d0 (detail=0xbed380a0)
PCI device 00:04.0 (vd=1002:5a18 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed38080 (detail=0xbed38050)
PCI device 00:09.0 (vd=1002:5a1c c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed38030 (detail=0xbed38000)
PCI device 00:0a.0 (vd=1002:5a1d c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37fe0 (detail=0xbed37fb0)
PCI device 00:0b.0 (vd=1002:5a1f c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37f90 (detail=0xbed37f60)
PCI device 00:0c.0 (vd=1002:5a20 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37f40 (detail=0xbed37f10)
PCI device 00:0d.0 (vd=1002:5a1e c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37ef0 (detail=0xbed37ec0)
PCI device 00:11.0 (vd=1002:4394 c=0106)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37ea0 (detail=0xbed37e70)
PCI device 00:12.0 (vd=1002:4397 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37e50 (detail=0xbed37e20)
PCI device 00:12.1 (vd=1002:4398 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37e00 (detail=0xbed37dd0)
PCI device 00:12.2 (vd=1002:4396 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37db0 (detail=0xbed37d80)
PCI device 00:13.0 (vd=1002:4397 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37d60 (detail=0xbed37d30)
PCI device 00:13.1 (vd=1002:4398 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37d10 (detail=0xbed37ce0)
PCI device 00:13.2 (vd=1002:4396 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37cc0 (detail=0xbed37c90)
PCI device 00:14.0 (vd=1002:4385 c=0c05)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37c70 (detail=0xbed37c40)
PCI device 00:14.1 (vd=1002:439c c=0101)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37c20 (detail=0xbed37bf0)
PCI device 00:14.2 (vd=1002:4383 c=0403)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37bd0 (detail=0xbed37ba0)
PCI device 00:14.3 (vd=1002:439d c=0601)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37b80 (detail=0xbed37b50)
PCI device 00:14.4 (vd=1002:4384 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37b30 (detail=0xbed37b00)
PCI device 00:14.5 (vd=1002:4399 c=0c03)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37ae0 (detail=0xbed37ab0)
PCI device 00:18.0 (vd=1022:1600 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37a90 (detail=0xbed37a60)
PCI device 00:18.1 (vd=1022:1601 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37a40 (detail=0xbed37a10)
PCI device 00:18.2 (vd=1022:1602 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed379f0 (detail=0xbed379c0)
PCI device 00:18.3 (vd=1022:1603 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed379a0 (detail=0xbed37970)
PCI device 00:18.4 (vd=1022:1604 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37950 (detail=0xbed37920)
PCI device 00:18.5 (vd=1022:1605 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37900 (detail=0xbed378d0)
PCI device 00:19.0 (vd=1022:1600 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed378b0 (detail=0xbed37880)
PCI device 00:19.1 (vd=1022:1601 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37860 (detail=0xbed37830)
PCI device 00:19.2 (vd=1022:1602 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37810 (detail=0xbed377e0)
PCI device 00:19.3 (vd=1022:1603 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed377c0 (detail=0xbed37790)
PCI device 00:19.4 (vd=1022:1604 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37770 (detail=0xbed37740)
PCI device 00:19.5 (vd=1022:1605 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37720 (detail=0xbed376f0)
PCI device 00:1a.0 (vd=1022:1600 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed376d0 (detail=0xbed376a0)
PCI device 00:1a.1 (vd=1022:1601 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37680 (detail=0xbed37650)
PCI device 00:1a.2 (vd=1022:1602 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37630 (detail=0xbed37600)
PCI device 00:1a.3 (vd=1022:1603 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed375e0 (detail=0xbed375b0)
PCI device 00:1a.4 (vd=1022:1604 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37590 (detail=0xbed37560)
PCI device 00:1a.5 (vd=1022:1605 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37540 (detail=0xbed37510)
PCI device 00:1b.0 (vd=1022:1600 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed374f0 (detail=0xbed374c0)
PCI device 00:1b.1 (vd=1022:1601 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed374a0 (detail=0xbed37470)
PCI device 00:1b.2 (vd=1022:1602 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37450 (detail=0xbed37420)
PCI device 00:1b.3 (vd=1022:1603 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37400 (detail=0xbed373d0)
PCI device 00:1b.4 (vd=1022:1604 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed373b0 (detail=0xbed37380)
PCI device 00:1b.5 (vd=1022:1605 c=0600)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37360 (detail=0xbed37330)
PCI device 01:00.0 (vd=10b5:8747 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37310 (detail=0xbed372e0)
PCI device 22:08.0 (vd=10b5:8747 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed372c0 (detail=0xbed37290)
PCI device 22:09.0 (vd=10b5:8747 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37270 (detail=0xbed37240)
PCI device 22:10.0 (vd=10b5:8747 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37220 (detail=0xbed371f0)
PCI device 22:11.0 (vd=10b5:8747 c=0604)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed371d0 (detail=0xbed371a0)
PCI device 23:00.0 (vd=1cc1:8201 c=0108)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37180 (detail=0xbed37150)
PCI device 24:00.0 (vd=1cc1:5350 c=0108)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37130 (detail=0xbed37100)
PCI device 45:00.0 (vd=1e4b:1202 c=0108)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed370e0 (detail=0xbed370b0)
PCI device 46:00.0 (vd=15b7:501d c=0108)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37090 (detail=0xbed37060)
PCI device 68:00.0 (vd=8086:10d3 c=0200)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed37040 (detail=0xbed37010)
PCI device 89:00.0 (vd=8086:10d3 c=0200)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed36ff0 (detail=0xbed36fc0)
PCI device aa:00.0 (vd=10de:103a c=0300)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed36fa0 (detail=0xbed36f70)
PCI device aa:00.1 (vd=10de:0e1a c=0403)
phys_alloc zone=0xbed47e80 size=32 align=10 ret=bed36f50 (detail=0xbed36f20)
PCI device ec:00.0 (vd=1b21:3142 c=0c03)
Found 60 PCI devices (max PCI bus is ec)
Relocating coreboot bios tables
phys_alloc zone=0xbed47e88 size=31 align=10 ret=f4aa0 (detail=0xbed36ef0)
Copying SMBIOS from 0xbfd48000 to 0x000f4aa0
phys_alloc zone=0xbed47e88 size=24 align=10 ret=f4a80 (detail=0xbed36ec0)
Copying SMBIOS 3.0 from 0xbfd48020 to 0x000f4a80
phys_alloc zone=0xbed47e88 size=36 align=10 ret=f4a50 (detail=0xbed36e90)
Copying ACPI RSDP from 0xbfd59000 to 0x000f4a50
rsdp=0x000f4a50
rsdt=0xbfd59030
xsdt=0xbfd590e0
table(50434146)=0xbfd5a5f0 (via xsdt)
pm_tmr_blk=820
Using pmtimer, ioport 0x820
init timer
rsdp=0x000f4a50
rsdt=0xbfd59030
xsdt=0xbfd590e0
table(324d5054)=0xbfd5db00 (via xsdt)
TCGBIOS: TPM2: LASA = 0xbfd49000, LAML = 65536
TCGBIOS: Detected a TPM 2.
handle_08
Return from tpm_simple_cmd(144, 0) = 100
TCGBIOS: Return value from sending TPM2_CC_Startup(SU_CLEAR) = 0x00000100
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
Return from tpm_simple_cmd(143, 1) = 0
TCGBIOS: Return value from sending TPM2_CC_SelfTest = 0x00000000
TCGBIOS: Return value from sending TPM2_CC_GetCapability = 0x00000000
phys_alloc zone=0xbed47e8c size=16 align=10 ret=bfd47ff0 (detail=0xbed36e60)
TCGBIOS: LASA = 0xbfd49000, next entry = 0xbfd49000
TCGBIOS: SMBIOS tables at 0xbfd48040
TCGBIOS: LASA = 0xbfd49000, next entry = 0xbfd49045
handle_08
TCGBIOS: LASA = 0xbfd49000, next entry = 0xbfd490a9
Scan for VGA option rom
Attempting to init PCI bdf aa:00.0 (vd 10de:103a)
Attempting to map option rom on dev aa:00.0
Option rom sizing returned d5000000 fff80000
Inspecting possible rom at 0xd5000000 (vd=10de:103a bdf=aa:00.0)
Copying option rom (size 62976) from 0xd5000000 to 0x000c0000
handle_08
Checking rom 0x000c0000 (sig aa55 size 123)
TCGBIOS: LASA = 0xbfd49000, next entry = 0xbfd49106
Running option rom at c000:0003
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_hwpic1 irq=1
handle_08
handle_hwpic1 irq=1
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_08
handle_hwpic1 irq=1
handle_08
handle_08
handle_08
handle_08
handle_hwpic1 irq=1
handle_08
handle_08
handle_08
handle_hwpic1 irq=1
...

It'll keep outputting handle_08 and occasionally handle_hwpic1 irq=1 from this point on. I'm not getting any video output and my PS/2 or USB keyboard (if any) does not respond...

Maybe I should grep the code about handle_08 then think about what to test next...

EDIT: It seems handle_08 is in SeaBIOS' src/clock.c and it's about the system timer...

miczyg1 commented 1 year ago

So it doesn't even print the Press ESC for boot menu from SeaBIOS? Do you have the SERCON option enabled in coreboot config?

lss4 commented 1 year ago

Yeah, I don't see the Press ESC for boot menu message showing up. The handle_08 is indeed printed via SERCON, after entering SeaBIOS. Originally the SERCON was not enabled at all so nothing past coreboot debug prints were recorded back then.

I don't understand the log verbosity well. I've set it to 20 as I thought it would output everything. Which log verbosity should I use?

Normally at this point I should be prompted to press ESC for boot menu (I even put it on my bootsplash which is in a resolution usable by my video card). My USB keyboards should also light up at this point.

miczyg1 commented 1 year ago

@lss4 do you have CONFIG_SEABIOS_ADD_SERCON_PORT_FILE=y and CONFIG_SEABIOS_SERCON_PORT_ADDR=0x3f8 in you coreboot config? You need it in order to show the boot prompt. CONFIG_SEABIOS_DEBUG_LEVEL will not cause printing the boot prompt, it is only for debugging not for the console. If you want to debug SeaBIOS loglevel 1-8 are useful, anything beyond that is for very low level debugging. I SeaBISO debugging is not needed, set it to 0.

lss4 commented 1 year ago

Thanks for the response.

CONFIG_SEABIOS_SERCON_PORT_ADDR=0x3f8 is already in the config file I'm currently using as base.

As for CONFIG_SEABIOS_ADD_SERCON_PORT_FILE=y... I'll check my config to see if it's really turned on.

EDIT: I think CONFIG_SEABIOS_ADD_SERCON_PORT_FILE is most likely turned on by default... I checked an older Dasharo working directory of mine (for the same board) that I could access at the moment, and it was indeed set to CONFIG_SEABIOS_ADD_SERCON_PORT_FILE=y in its .config.

I'm not sure about log verbosity. By default SeaBIOS debugging is set to 0. In this case, the log would stop at this line:

CPU0: stack: 0xbfed7000 - 0xbfed8000, lowest used address 0xbfed7410, stack used: 3056 bytes

and nothing else would be printed. There would not be a single reference of SeaBIOS in the serial output.

It was only after I added a few more printk output points did I confirm the coreboot boot sequence has indeed completed and I only increased log verbosity from that point in order to see the outputs made by SeaBIOS, which include those handle_08 lines. It seems the last execution message by SeaBIOS was:

Running option rom at c000:0003

Which kind of looks like it's trying to run the video BIOS, and nothing else afterwards...

EDIT 2: Just checked my current work tree. Yes, CONFIG_SEABIOS_ADD_SERCON_PORT_FILE is indeed turned on.

lss4 commented 1 year ago

A late update. For now I've reverted my test system to stock BIOS so I can at least continue to use it.

There have been very few visible changes during this period -- only some minor changes to SeaBIOS which made little difference.

Before reverting I did one final test about memory compatibility. This time I've populated all the memory slots making it a total of 256GB. Right now it's 8 Samsung VLP sticks on orange slots and 8 Micron VLP sticks on black slots (all 16GB rated at DDR3 1600MHz), and the result is positive.

While it certainly took some time, Dasharo can now succeed in preparing them and proceed to the next stages which eventually leads to SeaBIOS (it still stuck on the same place, though). This same config works on stock BIOS also.

This is a great improvement compared to previous coreboot versions. Back then it struggled to initialize memory on this board across various memory combinations that worked on stock BIOS and only a select few fortunate ones allowed booting.

I don't intend to make any major change to the test system's hardware configuration. If there is any major development on Dasharo or SeaBIOS in the future, I'm happy to conduct further tests.