[coreboot] Workaround: AMD Geode LX crash at do_vsmbios

Chris Kilgour techie at whiterocker.com
Tue Feb 3 21:27:11 CET 2009

I recently encountered a coreboot-v2 on Geode-LX issue similar to this 
post: http://www.mail-archive.com/linuxbios@linuxbios.org/msg12055.html

The germane portion of that thread's serial dump is:

Unexpected Exception: 13 @ 10:00016765 - Halting

In the posted case, the code of real_mode_switch_call_vsm( ) from 
vsmsetup.c gets located around address 0x00016765.  In my case is was 
located around 0x1041b.  However, the vsmsetup.c code is written such 
that it must be entirely located within the first 64k of RAM, which 
means the link address for the text of vsmsetup.c must be less than 0x10000.

My workaround was to force vsmsetup.o to be treated as a "driver" rather 
than an "object", to move it up in link order.

I did not have time to implement a more general solution (so that 
vsmsetup's local GDT can be guaranteed to be able to address its own 
code in real mode, regardless of link location).  This info is posted to 
the mailing list in the hopes it might help someone in the future.


More information about the coreboot mailing list