On 03/04/2010 07:38 AM, Joseph Smith wrote:
On 03/04/2010 07:30 AM, Uwe Hermann wrote:
On Thu, Mar 04, 2010 at 10:05:57AM +0000, Mark Marshall wrote:
On 03/03/10 04:19, Keith Hui wrote:
Hi all,
This thing is now ready for more exposure. Scratch my previous "patch" - this is my first real deal.
- Adds RAM detection for i440bx (based on i82830 code). We're no longer
hard coded for 64MB on one row!
Hi.
I've tried this with my ASUS P2B, and it's not quite there yet.
The first problem is that this motherboard only has three DIMM slots. This means you have to set SDRAMC to something different; 0x0103 works for me.
Hm, seems to be determined by SDRAMPWR + MMCONFIG, and MMCONFIG seems to be a hardware-strap (so we can check it), but not sure about SDRAMPWR.
I think a simple SPD probe would work, if the correct value is returned you know you have memory in that slot, otherwise if 0xff is returned then no memory is present. Do this probe for as many slots as the 440 supports. Then set your registers based on that.
The second problem is that it doesn't work with more that 256 MB of memory. I've had one stick of 128 MB work, two sticks of 128 MB and one stick of 256 MB all work, but two sticks of 256 MB doesn't boot linux.
Hm, will investigate. Are you sure both 256MB DIMMs work under vendor BIOS (so we can exclude hardware issues)?
Thanks for testing!
One thing I noticed about Keith's code is he didn't impliment the initializing one row/side of memory at a time. I think it should really be visited, for multiple memory sticks.