[U-Boot] [PATCH v3] common: Fix load and entry addresses in FIT image

Simon Glass sjg at chromium.org
Mon Oct 19 01:15:54 CEST 2015


Hi,

On 18 October 2015 at 06:18, Simon Glass <sjg at chromium.org> wrote:
> On 9 September 2015 at 12:07, Simon Glass <sjg at chromium.org> wrote:
>>
>> On Friday, 4 September 2015, York Sun <yorksun at freescale.com> wrote:
>> >
>> > FIT image supports more than 32 bits in addresses by using #address-cell
>> > field. However the address length is not handled when parsing FIT images.
>> > Beside, the variable used to host address has "ulong" type. It is OK for
>> > the target, but not always enough for host tools such as mkimage. This
>> > patch replaces "ulong" with "phys_addr_t" to make sure the address is
>> > correct for both the target and the host.
>> >
>> > Signed-off-by: York Sun <yorksun at freescale.com>
>> >
>> > ---
>> >
>> > Changes in v3:
>> >   Define PRIpa for host and target in common/image-fit.c so printf works
>> >   properly for 32-, 64-bit targets and host tools.
>> >
>> > Changes in v2:
>> >   Make a common function for both load and entry addresses.
>> >   Simplify calculation of addresses in a similar way as fdtdec_get_number()
>> >   fdtdec_get_number() is not used, or too many files need to be included
>> >     and/or twisted for host tool
>> >   Continue to use %08llx for print format for load and entry addresses
>> >     because %pa does not always work for host tool (mkimage)
>> >
>> >  common/bootm.c     |   13 +++++----
>> >  common/image-fit.c |   81 +++++++++++++++++++++++++++++-----------------------
>> >  include/bootm.h    |    6 ++--
>> >  include/image.h    |   12 +++++---
>> >  4 files changed, 63 insertions(+), 49 deletions(-)
>>
>
> Acked-by: Simon Glass <sjg at chromium.org>

Unfortunately this produces lots of warnings on sandbox. Can you
please take a look?

/usr/local/google/c/cosarm/src/third_party/u-boot/files/common/bootm.c:
In function ‘bootm_find_os’:
/usr/local/google/c/cosarm/src/third_party/u-boot/files/common/bootm.c:146:12:
warning: passing argument 3 of ‘fit_image_get_load’ from incompatible
pointer type [enabled by default]
            &images.os.load)) {
            ^
In file included from
/usr/local/google/c/cosarm/src/third_party/u-boot/files/include/common.h:82:0,
                 from
/usr/local/google/c/cosarm/src/third_party/u-boot/files/common/bootm.c:9:
/usr/local/google/c/cosarm/src/third_party/u-boot/files/include/image.h:851:5:
note: expected ‘phys_addr_t *’ but argument is of type ‘ulong *’
 int fit_image_get_load(const void *fit, int noffset, phys_addr_t *load);
     ^

Regards,
Simon


More information about the U-Boot mailing list