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