[U-Boot] [PATCH] ARM: tegra: Use mem size from MC rather than ODMDATA
Stephen Warren
swarren at wwwdotorg.org
Thu Jul 31 21:45:32 CEST 2014
On 07/02/2014 02:12 PM, Stephen Warren wrote:
> From: Stephen Warren <swarren at nvidia.com>
>
> In at least Tegra124, the Tegra memory controller (MC) has a register
> that controls the memory size. Read this to determine the memory size
> rather than requiring this to be redundantly encoded into the ODMDATA.
> This way, changes to the BCT (i.e. MC configuration) automatically
> updated SW's view of the memory size, without requiring manual changes
> to the ODMDATA.
>
> Future work potentially required:
> * Clip the memory size to architectural limits; U-Boot probably doesn't
> and won't support either LPAE or Tegra's "swiss cheese" memory layout,
> at least one of which would be required for >2GB RAM.
> * Subtract out any carveout required by firmware on future SoCs.
I noticed that this patch triggers a bug in DT relocation during
bootm/bootz. It'd be best if the following were applied somewhere before
this patch:
http://patchwork.ozlabs.org/patch/375408/
lib: lmb: fix overflow in __lmb_alloc_base w/ large RAM
That's because this patch changes the RAM size on Tegra124 from 2GB-1MB
to 2GB. I believe that change is correct, it just triggers an overflow
in U-Boot's RAM handling which needs to be fixed first.
In practice, I suspect even if this dependency is ignored, there will be
no user-visible impact, because the default environment in Tegra U-Boot
disables DT relocation completely. This problem would only affect
someone who flashed/ran a U-Boot with this patch without resetting their
environment to the default that's embedded into the new U-Boot, and
their environment in flash was older than when we disabled DT
relocation. Since tegra-uboot-flasher always does reset the environment,
I expect most people would never notice this.
More information about the U-Boot
mailing list