[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