Hello everyone,
i followed the manual about Build U-Boot from Source and the specifics for i.MX8M Mini in the BSP 6.x.y version.
In the final build step i get this error:
If a copy all lpddr4_pmu_train_*.bin files from the firmware-imx-8.10.1 then the error appears again but the build runs to the end and i get the flash.bin.
root@dee8f329826c:~/workspace/imx-mkimage# make clean; make SOC=iMX8MM flash_evk_emmc_fastboot
include misc.mak
include m4.mak
include android.mak
include test.mak
include autobuild.mak
include alias.mak
imx8qm clean done
include misc.mak
include m4.mak
include android.mak
include test.mak
include autobuild.mak
include alias.mak
imx8qx clean done
include misc.mak
include m4.mak
include android.mak
include test.mak
include autobuild.mak
imx8dxl clean done
imx8ulp clean done
Compiling mkimage_imx8
PLAT=imx8mm HDMI=no
Compiling mkimage_imx8
cc -O2 -Wall -std=c99 -static mkimage_imx8.c -o mkimage_imx8 -lz
mkimage_imx8.c: In function ‘copy_file.constprop’:
mkimage_imx8.c:345:21: warning: ‘write’ reading 5 bytes from a region of size 4 [-Wstringop-overread]
345 | if (write(ifd, (char *)&zero, 4-tail) != 4-tail) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mkimage_imx8.c:303:13: note: source object ‘zero’ of size 4
303 | int zero = 0;
| ^~~~
In file included from mkimage_imx8.c:24:
/usr/include/unistd.h:378:16: note: in a call to function ‘write’ declared with attribute ‘access (read_only, 2, 3)’
378 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur
| ^~~~~
33587+1 records in
33588+0 records out
134352 bytes (134 kB, 131 KiB) copied, 0.0394794 s, 3.4 MB/s
./…/scripts/dtb_check.sh imx8mm-evk.dtb evk.dtb
Use u-boot DTB: fsl-imx8mm-evk.dtb
./…/scripts/pad_image.sh tee.bin
Pad file tee.bin NOT found
./…/scripts/pad_image.sh bl31.bin
./…/scripts/pad_image.sh u-boot-nodtb.bin evk.dtb
u-boot-nodtb.bin + evk.dtb are padded to 814096
BL32=tee.bin DEK_BLOB_LOAD_ADDR=0x40400000 TEE_LOAD_ADDR=0xbe000000 ATF_LOAD_ADDR=0x00920000 ./mkimage_fit_atf.sh evk.dtb > u-boot.its
bl31.bin size:
43488
u-boot-nodtb.bin size:
755416
evk.dtb size:
58680
./mkimage_uboot -E -p 0x3000 -f u-boot.its u-boot.itb
FIT description: Configuration to load ATF before U-Boot
Created: Fri Feb 21 10:30:17 2025
Image 0 (uboot-1)
Description: U-Boot (64-bit)
Created: Fri Feb 21 10:30:17 2025
Type: Standalone Program
Compression: uncompressed
Data Size: 755416 Bytes = 737.71 KiB = 0.72 MiB
Architecture: AArch64
Load Address: 0x40200000
Entry Point: unavailable
Image 1 (fdt-1)
Description: evk
Created: Fri Feb 21 10:30:17 2025
Type: Flat Device Tree
Compression: uncompressed
Data Size: 58680 Bytes = 57.30 KiB = 0.06 MiB
Architecture: Unknown Architecture
Image 2 (atf-1)
Description: ARM Trusted Firmware
Created: Fri Feb 21 10:30:17 2025
Type: Firmware
Compression: uncompressed
Data Size: 43488 Bytes = 42.47 KiB = 0.04 MiB
Architecture: AArch64
OS: Unknown OS
Load Address: 0x00920000
Default Configuration: ‘config-1’
Configuration 0 (config-1)
Description: evk
Kernel: unavailable
Firmware: uboot-1
FDT: fdt-1
Loadables: atf-1
./mkimage_imx8 -version v1 -dev emmc_fastboot -fit -loader u-boot-spl-ddr.bin 0x7E1000 -second_loader u-boot.itb 0x40200000 0x60000 -out flash.bin
Platform: i.MX8M (mScale)
ROM VERSION: v1
BOOT DEVICE: emmc_fastboot
Using FIT image
LOADER IMAGE: u-boot-spl-ddr.bin start addr: 0x007e1000
SECOND LOADER IMAGE: u-boot.itb start addr: 0x40200000 offset: 0x00060000
Output: flash.bin
========= IVT HEADER [HDMI FW] =========
header.tag: 0x0
header.length: 0x0
header.version: 0x0
entry: 0x0
reserved1: 0x0
dcd_ptr: 0x0
boot_data_ptr: 0x0
self: 0x0
csf: 0x0
reserved2: 0x0
boot_data.start: 0x0
boot_data.size: 0x0
boot_data.plugin: 0x0
========= IVT HEADER [PLUGIN] =========
header.tag: 0x0
header.length: 0x0
header.version: 0x0
entry: 0x0
reserved1: 0x0
dcd_ptr: 0x0
boot_data_ptr: 0x0
self: 0x0
csf: 0x0
reserved2: 0x0
boot_data.start: 0x0
boot_data.size: 0x0
boot_data.plugin: 0x0
========= IVT HEADER [LOADER IMAGE] =========
header.tag: 0xd1
header.length: 0x2000
header.version: 0x41
entry: 0x7e1000
reserved1: 0x0
dcd_ptr: 0x0
boot_data_ptr: 0x7e0fe0
self: 0x7e0fc0
csf: 0x8163c0
reserved2: 0x0
boot_data.start: 0x7e0bc0
boot_data.size: 0x37860
boot_data.plugin: 0x0
========= OFFSET dump =========
Loader IMAGE:
header_image_off 0x0
dcd_off 0x0
image_off 0x40
csf_off 0x35400
spl hab block: 0x7e0fc0 0x0 0x35400Second Loader IMAGE:
sld_header_off 0x5fc00
sld_csf_off 0x60c20
sld hab block: 0x401fcdc0 0x5fc00 0x1020
This U-Boot is bootable on my hardware:
- Verdin imx8m mini (PN 0055)
- Mallow Carrier Board
Is there an issue in the manual or did i something wrong?