On 04.06.2008 04:59, Joseph Smith wrote:
Good News!!! I think I got it working :-)
Great!
I am running memtest86 right now and if all goes well I build it again with filo and test it.
First I tried with initializing each dimm socket. I booted to memtest and it kept erroring out at 256mb. Because this is a double sidded 512MB so-dimm, I figured out that each side of each dimm needs to be initialized. So I came up with this:
for (i = 0; i < MAX_DIMM_SIDES; i++) { dimm_end = pci_read_config8(ctrl->d0, DRB + i); if (dimm_end > dimm_start) { PRINT_DEBUG(" Sending RAM command 0x"); PRINT_DEBUG_HEX32(reg32); PRINT_DEBUG(" to 0x"); PRINT_DEBUG_HEX32((dimm_start * 32 * 1024 * 1024) + addr_offset); PRINT_DEBUG("\r\n"); read32((dimm_start * 32 * 1024 * 1024) + addr_offset); } /* Set the start of the next DIMM. */ dimm_start = dimm_end; }
It seems to work good so far, hopefully I will be submitting a patch soon.
Please submit a patch now, regardless of how ugly/polluted/unclean it is. We had too many losses of great patches in the past because computers died and an early not-ready patch is better than nothing.
Regards, Carl-Daniel