[U-Boot] 4 PiB left unmapped

Becky Bruce beckyb at kernel.crashing.org
Sat Nov 20 04:54:41 CET 2010


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



More information about the U-Boot mailing list