[LinuxBIOS] v3: an interesting problem with initram

ron minnich rminnich at gmail.com
Mon Nov 26 08:24:35 CET 2007


Initram is being set up as follows:
08048074 T spd_read_byte
080480e0 T main
08048145 T __i686.get_pc_thunk.bx
0804814c t helper_calc
08048199 T hcf
080481bd T banner
080481f6 t helper_spd
08048248 t auto_size_dimm
08048451 T sdram_set_spd_registers
08048a32 T sdram_set_registers
08048a89 T sdram_enable
08048c4c T system_preinit
08048c55 T geode_link_speed
08048c80 T pll_reset
08048d4c T pci_speed
08048d62 T cpu_speed
08048d8c T cpu_reg_init
08049000 r spdbytes
08049222 r num_col_addr
08049232 r CASDDR
0804923a r REFRESH_RATE
080492e0 r msr_table
08049320 r delay_control_table
080493c0 d _GLOBAL_OFFSET_TABLE_
080493cc D post_code
080493d0 D printk
080493d4 A __bss_start
080493d4 A _edata
080493d4 A _end

note that spd_read_byte is first. And it's entered first and that's
bad, as main is supposed to be entered. I tried the simple thing of
reordering the functions in the file, and that did not do it.

So, why is spd_read_byte first in the file, and how do we fix it?
Because the call from the rom code is going to spd_read_byte, not
main, and I'm stuck :-)

but wow, it's close!

ron




More information about the coreboot mailing list