On Tue, May 27, 2008 at 10:27 PM, Joseph Smith <
joe@settoplinux.org> wrote:
Hello,
Now that I got coreboot running on the IP1000, I finally am able to test
out the so-dimm socket. I maxed out the slot with a big 512MB so-dimm. I
don't think the "for" statement we came up with is working correctly:
/* NOTE: Dual-sided ready. */
read32(0 + addr_offset);
for (i = 0; i < 4; i++) {
reg8 = pci_read_config8(ctrl->d0, DRB + i);
if (reg8 != reg8_2)
read32(reg8 * 32 * 1024 * 1024);
reg8_2 = reg8;
}
The memory is detecting correctly, but I don't think coreboot can find the
end of the side of the so-dimm, thus causing a lockup after Jumping to
coreboot. I think I need to setup something more like the E7501
do_ram_command() but I want to keep it simple. Here is the bootlog, Help??
You're right, change
read32(reg8 * 32 * 1024 * 1024);
to
read32((reg8 * 32 * 1024 * 1024) + addr_offset);
also, make sure reg8_2 is 0'd before entering the for loop.
-Corey