On Wed, Nov 06, 2019 at 05:22:44PM -0700, 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)
> 
> Signed-off-by: Simon Glass <s...@chromium.org>
> Tested-by: Stephen Warren <swar...@nvidia.com>

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to