Project

General

Profile

Actions

Bug #322

closed

Image fails to boot on Thinkpad X201 if built with GCC 11

Added by Stefan Ott about 3 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
11/17/2021
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

I can't seem to build a bootable image for the Thinkpad X201 with the new GCC-11-based toolchain. Rather than booting up, the machine just flashes a bunch of LEDs and then resets itself. If I use the old toolchain with GCC 8, the image works just fine.

Unfortunately I don't have a console on this machine so I don't have any logs. I don't know whether is is relevant or not, but cbfstool reports different layouts for the images:

$ util/cbfstool/cbfstool coreboot-gcc-8.rom print
FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 none
fallback/romstage              0x80       stage           65328 none
cpu_microcode_blob.bin         0x10040    microcode       13312 none
fallback/ramstage              0x13480    stage          106502 LZMA (227804 decompressed)
vgaroms/seavgabios.bin         0x2d500    raw             28160 none
config                          0x34340    raw               643 none
revision                       0x34600    raw               716 none
build_info                     0x34900    raw               101 none
fallback/dsdt.aml              0x349c0    raw             14119 none
cmos_layout.bin                0x38140    cmos_layout      1612 none
fallback/postcar               0x387c0    stage           20024 none
fallback/payload               0x3d640    simple elf      69197 none
payload_config                  0x4e4c0    raw              1728 none
payload_revision               0x4ebc0    raw               237 none
etc/ps2-keyboard-spinup        0x4ed00    raw                 8 none
(empty)                        0x4ed40    null           641380 none
bootblock                      0xeb6c0    bootblock       18176 none

$ util/cbfstool/cbfstool coreboot-gcc-11.rom print
FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 
fallback/romstage              0x80       stage           63664 none
cpu_microcode_blob.bin         0xf9c0     microcode       13312 none
fallback/ramstage              0x12e00    stage          106836 LZMA (228284 decompressed)
vgaroms/seavgabios.bin         0x2cfc0    raw             28160 none
config                          0x33e00    raw               643 none
revision                       0x340c0    raw               716 none
build_info                     0x343c0    raw               101 none
fallback/dsdt.aml              0x34480    raw             14119 none
cmos_layout.bin                0x37c00    cmos_layout      1612 none
fallback/postcar               0x38280    stage           19976 none
fallback/payload               0x3d100    simple elf      69050 none
payload_config                  0x4df00    raw              1728 none
payload_revision               0x4e600    raw               236 none
etc/ps2-keyboard-spinup        0x4e740    raw                 8 none
(empty)                        0x4e780    null           642916 none
bootblock                      0xeb700    bootblock       18112 none
Actions #1

Updated by Paul Menzel almost 3 years ago

Breakage on the AMD Lenovo G505S was also reported.

Is SPI flash console supported on the device?

Lastly, to get a little more confidence it’s related to GCC upstream, can you please build an image with your distribution toolchain (CONFIG_ANY_TOOLCHAIN=y), and report the result back?

Actions #2

Updated by Arthur Heymans almost 3 years ago

On ironlake (x201) the raminit is broken and more specifically in raminit.c as just replacing raminit.o with one build using gcc8 fixes it.
The hang happens when sending heci messages and the code doing that is correctly generated so something else is going wrong.
Finding what is wrong in a 5k+ LOC file is going to take some time...

Actions #3

Updated by Arthur Heymans over 2 years ago

  • Status changed from New to Resolved
Actions

Also available in: Atom PDF