I steal one of the 8GB dimms and put it on one of my test machines I configured coreboot to only initialize one CPU/CORE and therefore only the 8GB. Booting with this configuration leads to the same result as on the 128GB machine it hangs at the first memcopy it finds so the problem seem to be the dimm itself but it is still DDR 2.
I'm glad you could narrow it down. I would expect that no one had tested the code with 8GB dimms, so maybe you should be looking for a math/logic error (or just missing code) in the sizing or initialization?
I attached the showroutes and dumpmem outputs.
raminit_amdmct() DRAM(40)0000000000-0000ffffff, ->(0), R, W, No interleave, 0 MMIO(90)0000000000-000000ffff, ->(0,0), , , CPU disable 0, Lock 0, Non posted 0 MMIO(a8)0000000000-000000ffff, ->(0,0), , , CPU disable 0, Lock 0, Non posted 0 MMIO(b8)00fc000000-00ffffffff, ->(0,0), , , CPU disable 0, Lock 0, Non posted 0
This is wrong, but shouldn't affect this problem. Your buses and I/O are on node 0 link 2, but your MMIO is on node 0 link 0.
PCIIO(c0)0000000-1ffffff, ->(0,2), , ,VGA 0 ISA 0 PCIIO(c8)0000000-0000fff, ->(0,0), , ,VGA 0 ISA 0 PCIIO(d0)0000000-0000fff, ->(0,0), , ,VGA 0 ISA 0 CONFIG(e0)00-ff ->(0,2),R W (bus numbers)
raminit_amdmct begin: DCTInit_D: mct_DIMMPresence Done DCTInit_D: mct_SPDCalcWidth Done DCTInit_D: mct_DIMMPresence Done DCTInit_D: mct_SPDCalcWidth Done DCTInit_D: AutoCycTiming_D Done DCTInit_D: AutoConfig_D Done DCTInit_D: PlatformSpec_D Done DCTInit_D: StartupDCT_D Node: 00 base: 00 limit: 7fffff BottomIO: e00000
limit 7fffff = 2 GB of RAM.
raminit_amdmct end:
*** Yes, the copy/decompress is taking a while, FIXME! v_esp=000cbf18 testx = 5a5a5a5a dump_mem: 000c8000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I think the other end of the stack would be more interesting. Something like 0xcbf00-0xcc000 (CAR). Then you could dump the RAM for the stack too. I guess since you know it's not working, seeing the values wouldn't really help. I'd try looking at the values you see in raminit, and why the dimm isn't getting initialized correctly.
Thanks, Myles