[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.
Chris.
More information about the coreboot
mailing list