[U-Boot] [PATCH] binman: tegra: Adjust symbol calculation depending on end-at-4gb

Stephen Warren swarren at wwwdotorg.org
Thu Nov 7 16:25:18 UTC 2019


On 11/6/19 5:22 PM, Simon Glass wrote:
> A recent change adjusted the symbol calculation to work on x86 but broke
> it for Tegra. In fact this is because they have different needs.
> 
> On x86 devices the code is linked to a ROM address and the end-at-4gb
> property is used for the image. In this case there is no need to add the
> base address of the image, since the base address is already built into
> the offset and image-pos properties.
> 
> On other devices we must add the base address since the offsets start at
> zero.
> 
> In addition the base address is currently added to the 'offset' and 'size'
> values. It should in fact only be added to 'image-pos', since 'offset' is
> relative to its parent and 'size' is not actually an address. This code
> should have been adjusted when support for 'image-pos' and 'size' was
> added, but it was not.
> 
> To correct these problems:
> - move the code that handles adding the base address to section.py, which
>    can check the end-at-4gb property and which property
>    (offset/size/image-pos) is being read
> - add the base address only when needed (only for image-pos and not if the
>    image uses end-at-4gb)
> - add a note to the documentation
> - add a separate test to cover x86 behaviour
> 
> Fixes: 15c981cc (binman: Correct symbol calculation with non-zero image base)

Tested-by: Stephen Warren <swarren at nvidia.com>
Thanks!


More information about the U-Boot mailing list