FIT Image not working in U-Boot

Freddie fpidev23 at gmail.com
Thu Aug 17 17:02:02 CEST 2023


On Thu, Aug 17, 2023 at 3:13 PM Simon Glass <sjg at chromium.org> wrote:

> Hi Freddie,
>
> On Thu, 17 Aug 2023 at 07:57, Freddie <fpidev23 at gmail.com> wrote:
> >
> >
> >
> > On Thu, Aug 17, 2023 at 2:45 PM Simon Glass <sjg at chromium.org> wrote:
> >>
> >> Hi Freddie,
> >>
> >> On Thu, 17 Aug 2023 at 07:39, Freddie <fpidev23 at gmail.com> wrote:
> >> >
> >> >
> >> >
> >> > On Thu, Aug 17, 2023 at 2:19 PM Simon Glass <sjg at chromium.org> wrote:
> >> >>
> >> >> Hi Freddie,
> >> >>
> >> >> On Thu, 17 Aug 2023 at 07:02, Freddie <fpidev23 at gmail.com> wrote:
> >> >> >
> >> >> > Hi Simon,
> >> >> >
> >> >> > I'm quite new to this so sorry for asking so many questions but
> where do I run the 'dump_image -l' command and which code should I look
> into adding print statements to?
> >> >>
> >> >> One thing is to add your reply at the bottom, not the top.
> >> >>
> >> >> Actually it is 'dumpimage -l file.fit' to list the contents of your
> >> >> fit file called 'file.fit'.  The program is built in the tools/
> >> >> directory or your build, or you can
> >> >>
> >> >> I mean if you are completely stumped, go to where the error is
> >> >> generated and add lots of debugging around it. This is
> >> >> boot_get_kernel() which is in v2021.10 is in common/bootm.c - so just
> >> >> add lots of printf() stuff there, rebuild and run on the board and
> see
> >> >> if you can figure out what is wrong. From my side I am really not
> >> >> sure.
> >> >>
> >> >> Feel free to share the FIT through a link if you like.
> >> >>
> >> >> Also, you could try using a simple FIT without the signature part.
> >> >>
> >> >> >
> >> >> > I have also just looked into my .config file and this is the
> contents:
> >> >> >
> >> >> > #
> >> >> > # Automatically generated file; DO NOT EDIT.
> >> >> > # U-Boot 2021.10 Configuration
> >> >> > #
> >> >> >
> >> >> [..]
> >> >>
> >> >> > #
> >> >> > # Boot images
> >> >> > #
> >> >> > # CONFIG_ANDROID_BOOT_IMAGE is not set
> >> >> > CONFIG_FIT=y
> >> >> > CONFIG_FIT_EXTERNAL_OFFSET=0x0
> >> >> > CONFIG_FIT_FULL_CHECK=y
> >> >> > CONFIG_FIT_SIGNATURE=y
> >> >> > CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
> >> >> > # CONFIG_FIT_RSASSA_PSS is not set
> >> >> > # CONFIG_FIT_CIPHER is not set
> >> >> > # CONFIG_FIT_VERBOSE is not set
> >> >> > # CONFIG_FIT_BEST_MATCH is not set
> >> >> > CONFIG_FIT_PRINT=y
> >> >> > # CONFIG_LEGACY_IMAGE_FORMAT is not set
> >> >> > CONFIG_SUPPORT_RAW_INITRD=y
> >> >> > CONFIG_OF_BOARD_SETUP=y
> >> >> > # CONFIG_OF_SYSTEM_SETUP is not set
> >> >> > # CONFIG_OF_STDOUT_VIA_ALIAS is not set
> >> >> > CONFIG_SYS_EXTRA_OPTIONS=""
> >> >> > CONFIG_HAVE_SYS_TEXT_BASE=y
> >> >> > CONFIG_ARCH_FIXUP_FDT_MEMORY=y
> >> >> > # CONFIG_CHROMEOS is not set
> >> >> > # CONFIG_CHROMEOS_VBOOT is not set
> >> >> >
> >> >> [..]
> >> >>
> >> >> This has CONFIG_FIT and CONFIG_LEGACY_IMAGE_FORMAT is disabled (since
> >> >> you have signature verification on).
> >> >>
> >> >> Regards,
> >> >> Simon
> >> >
> >> >
> >> > Hi Simon,
> >> >
> >> > Thank you for your advice, I'll make sure to reply at the bottom of
> the message from now on.
> >> >
> >> > I've run the dumpimage command and this was my output:
> >> > root at freddie-pi-dev:/home/fit# ../optee/u-boot/tools/dumpimage -l
> image.fit
> >> > FIT description: RPi FIT Image
> >> > Created:         Thu Aug  3 15:47:15 2023
> >> >  Image 0 (kernel-1)
> >> >   Description:  default kernel
> >> >   Created:      Thu Aug  3 15:47:15 2023
> >> >   Type:         Kernel Image
> >> >   Compression:  uncompressed
> >> >   Data Size:    20869632 Bytes = 20380.50 KiB = 19.90 MiB
> >> >   Architecture: AArch64
> >> >   OS:           Linux
> >> >   Load Address: 0x12000000
> >> >   Entry Point:  0x12000000
> >> >   Hash algo:    sha1
> >> >   Hash value:   08d43ed37129fa26e0f5f9d303a211b708c66783
> >> >  Image 1 (tee-1)
> >> >   Description:  atf
> >> >   Created:      Thu Aug  3 15:47:15 2023
> >> >   Type:         Standalone Program
> >> >   Compression:  uncompressed
> >> >   Data Size:    1257464 Bytes = 1227.99 KiB = 1.20 MiB
> >> >   Architecture: AArch64
> >> >   Load Address: 0x08400000
> >> >   Entry Point:  0x08400000
> >> >   Hash algo:    sha1
> >> >   Hash value:   4907d9c33098b2767cd6bc4bc9836f2f913464c7
> >> >  Image 2 (fdt-1)
> >> >   Description:  device tree
> >> >   Created:      Thu Aug  3 15:47:15 2023
> >> >   Type:         Flat Device Tree
> >> >   Compression:  uncompressed
> >> >   Data Size:    32501 Bytes = 31.74 KiB = 0.03 MiB
> >> >   Architecture: AArch64
> >> >   Load Address: 0x01000000
> >> >   Hash algo:    sha1
> >> >   Hash value:   1b5bb266752cb247d89245c63bd041acfa34c7c0
> >> >  Default Configuration: 'config-1'
> >> >  Configuration 0 (config-1)
> >> >   Description:  default configuration
> >> >   Kernel:       kernel-1
> >> >   FDT:          fdt-1
> >> >   Loadables:    tee-1
> >> >   Sign algo:    sha1,rsa2048:dev
> >> >   Sign value:
>  22cd61395ae659917626ef88ebf82429d6d592a7975cf48eb1e301f81c8f2a9ae60e203e283b8800971b72cd1b6bf93fb4f5f54d9bc4fb0f49ae0e48115ff087d8638f8080fdc9f72fbfdd2228d60dba33849a75dba6958a134eefb9441b43f6f8319b7885c052c7993a7c791fe0acc577a629b04630060f02e24e82f9e5c8851c0df3d63da45ee5daeeabe198b990c2b8cbe24834763df299d8ed5a25cb90818caa23676e764d4d6e91e852451c1dae8a2946b9741e637b7556b6ebf27fa9e0ad5252909d13da67179b40f5097cc29c4ac1539c0fb89b567e8ee2d56ef92707d2a9d82a090d35c66cf23e8e66e5c8da5e197ec4a0dd771ef4a3246f6f499850
> >> >   Timestamp:    Thu Aug  3 15:47:15 2023
> >> >
> >>
> >> That looks fine
> >>
> >> >
> >> > I have tried to use an unsigned FIT before, but I also ran into the
> same error. In this case, do I simply disable the signature parts of the
> config, enable the legacy image format option and make the new image
> without any of the signing or are there other changes as well?
> >>
> >> Well no point in trying it then...you can normally just omit the
> signing step.
> >>
> >> >
> >> > Where would be an appropriate place to upload my FIT file to in order
> to share a link?
> >> >
> >>
> >> Google drive? Anything that allows public links.
> >>
> >> At this point, I think debugging it is the only option, as I mentioned
> >> earlier. I don't know what rpi doesn't enable FIT by default, but
> >> perhaps there is some reason.
> >>
> >> Regards,
> >> Simon
> >
> >
> >
> > Hi Simon,
> >
> > I have uploaded my FIT file to google drive:
> >
> https://drive.google.com/file/d/1Q4GMcrT8tzCCznPe1X_5JA3LLFarW6iO/view?usp=drive_link
> >
> > I will now try and do some debugging, thank you very much for your help.
>
> Your image works fine on my rpi_3 with v2021.10 and CONFIG_FIT but I
> am using the 32-bit build. I am not sure of the magic needed to make
> it boot 64-bit.
>
> I notice that your build date is two weeks ago...are you sure you are
> putting the new U-Boot on the board?
>
> Regards,
> Simon
>

Hi Simon,

Thank you very much for testing the file, I shall try and use the 32 bit
version of U-Boot on my pi and see if this works. How would I go about
switching to the 32-bit version?

I think I might have accidentally sent an older FIT file from my computer,
but I have created the images the same way every time and they are
identical so this shouldn't be an issue. Is this what you mean about it
being 2 weeks ago?

Many thanks,
Freddie


More information about the U-Boot mailing list