[U-Boot] [PATCH] binman: tegra: Adjust symbol calculation depending on end-at-4gb
Stephen Warren
swarren at wwwdotorg.org
Tue Nov 12 16:17:43 UTC 2019
On 11/11/19 7:06 PM, Tom Rini wrote:
> 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 <sjg at chromium.org>
>> Tested-by: Stephen Warren <swarren at nvidia.com>
>
> Applied to u-boot/master, thanks!
Thanks. u-boot/master and u-boot-video/master both now pass test/py on
Jetson TK1 again. I assume the other custodian branches will follow as
they rebase.
More information about the U-Boot
mailing list