
On Nov 19, 2010, at 4:23 AM, DUNDA Matthias wrote:
Well, it's actually 2 Gig, just like u-boot recognizes above...
There's something wrong with the parameter you're passing to print_size().
I'm guessing its -1 or something like that.
I used the board specific code of the MPC8568MDS and adapted it to our configuration.
The code region of interest here is in mpc8568mds.c:
phys_size_t initdram(int board_type) { long dram_size = 0; ... dram_size = fsl_ddr_sdram(); dram_size = setup_ddr_tlbs(dram_size / 0x100000); ... }
The dram_size parameter is signed and thus gives a value of -1 when having 2 Gig installed (0x80000000).
-1 devided by 0x100000 gives 0xfffff800, which is the 4 PiB when interpreted as unsigned again in setup_ddr_tlbs(...).
The MPC8568MDS has only 256 MB in default configuration, so it shouldn't occur there.
Anyhow, I don't understand, why it worked in u-boot 2009.11.1... :-/
If you were using 2GB, I'm not sure, but there's been lots of hackery on print_size and some other stuff here that might have made this noticeable.
Anyway, FYI, I am working on a patch to clean this up for all boards that have this problem; however, I'm doing some cleanup while I'm at it.... it will probably be early next week before I have this tested enough to publish.
Cheers, Becky