On Wed, 28 May 2008 00:04:14 -0400, "Corey Osgood" corey.osgood@gmail.com wrote:
Actually, lets get some more debugging info, in case that doesn't work.
One
quick question though:
60: 08 10 12 12 12 12 00 00 00 00 00 00 00 00 00 00
Are 0x64 and 0x65 also DRBs? Or they just happen to also be 0x12?
Ah, good catch. The datasheet says there is only 4 registers, and the i82830 only supports 2 dimms, but every northbridge dump (original bios's) I have done those two extra un-documented DRB registers are calculated. I think these were a design glitch, anyhow way back I discovered the system would not boot unless these were set. So in raminit I have this:
/* We need to set the highest DRB value to 0x64 and 0x65. * These are supposed to be "Reserved" but memory will * not initialize properly if we don't. */ value = pci_read_config8(ctrl->d0, DRB + 3); pci_write_config8(ctrl->d0, DRB + 4, value); pci_write_config8(ctrl->d0, DRB + 5, value);
Either way, this should work, but it will only work for up to 2 sticks.
I've gotten rid of the dual sided junk, I'm about 98% sure
it's not necessary, so it now just reads the start of the dimm (instead
of row) and reads from that. Please try a memtest payload, if this > boots, just to make sure it's working right.
I will try it out, and report back. Thanks for your help :-)