On Sat, Dec 02, 2006 at 09:30:58AM +0100, Segher Boessenkool wrote:
It looks reasonable. You want to shift by 3 though, not 23, not 15, so you read from 0x1d0 for writing to the MRS.
OK, a few questions:
* Do I read32() from somewhere for _every_ RAM command or only for MRS?
* The v1 code seems to read from the highest RAM address for each DRB register. In my case: Get contents of DRB6 (0x8), shift left by 23 as the DRB registers store multiples of 8 MB, so I get my 64 MB. Correct?
Now; do I read32() from * (8 << 23) * (8 << 23) + 0x1d0 * 0x0 + 0x1d0 * 0x0 + 0x1d0 AND (8 << 23) + 0x1d0 * 0x0 * ???
Do I read from x for most commands but from (x + 0x1d0) for MRS? Or should I read from (x + 0x1d0) for all commands?
I've tried a lot of variations here, but nothing worked. Maybe some other parts of the code are still broken?
It seems the i440 might want the address bits inverted on the high banks in some configurations, btw; so if it won't work, you can try 0x1d0 ^ 0xff8 or so.
Doesn't seem to work either.
Attached my latest code and a minicom log...
Uwe.