
# Booting kernel from Legacy Image at 43000004. Notice how we provided multiple binaries separated by colons in the ‘-d’ argument and set the image type as ‘multi’. Image Type: AArch64 Linux Multi-File Image (uncompressed)ĭata Size: 33569915 Bytes = 32783.12 KiB = 32.01 MiB Let’s use the mkimage utility to create an multi-file uImage: $ mkimage -C none -A arm64 -O linux -T multi -a 0x40480000 -e 0x40480000 -d Image.u-boot:imx8mq-nitrogen8m.dtb mImage It’s a little inconvenient and easy to make a mistake.įortunately, the U-Boot community extended their uImage format (typically used for wrapping kernels and ram disks with a header so that U-Boot knew what to do with it) so that it could support multiple binaries ( IH_TYPE_MULTI) in a single uImage.
U boot configuration file update#
You’ll also need to make similar considerations if you have an update mechanism or store the binaries in raw flash. With this approach you have to explicitly determine a load address for each component and ensure the binaries don’t overlap in memory. Let’s start with the typical steps required to TFTP boot Linux on a Nitrogen8M i.MX8M reference board with an initrd. However there is a much better way – in this post we’re going to explore Flattened Image Tree (FIT) Images and show you the benefits of using them.


You then invoke a command such as bootm or booti with arguments providing memory addresses for the binaries you’ve just loaded. You’re probably familiar with the steps required to boot Linux from U-Boot: you first load several binaries into memory, perhaps a device tree, a kernel, maybe even an initrd.
