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
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot