imx91_frdm
U-Boot for the NXP i.MX91 11x11 FRDM Board
Quick Start
Get and Build the ARM Trusted firmware
Get the DDR firmware
Get ahab-container.img
Build U-Boot
Boot from the SD card
Boot using USB serial download (uuu)
Get and Build the ARM Trusted firmware
Note: srctree is U-Boot source directory Get ATF from: https://github.com/nxp-imx/imx-atf/ branch: lf_v2.10
$ unset LDFLAGS
$ make PLAT=imx91 bl31
$ cp build/imx91/release/bl31.bin $(srctree)
Get the DDR firmware
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.21.bin
$ chmod +x firmware-imx-8.21.bin
$ ./firmware-imx-8.21.bin
$ cp firmware-imx-8.21/firmware/ddr/synopsys/lpddr4*.bin $(srctree)
Get ahab-container.img
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-1.3.0-17945fc.bin
$ chmod +x firmware-ele-imx-1.3.0-17945fc.bin
$ ./firmware-ele-imx-1.3.0-17945fc.bin
$ cp firmware-ele-imx-1.3.0-17945fc/mx91a0-ahab-container.img $(srctree)
Build U-Boot
$ export CROSS_COMPILE=aarch64-poky-linux-
$ make imx91_11x11_frdm_defconfig or imx91_11x11_frdm_inline_ecc_defconfig
$ make
Inline ECC is to enable DDR ECC feature with imx91_11x11_frdm_inline_ecc_defconfig Enable ECC will reduce DDR size by 1/8. For 1GB DRAM, available size will be 896MB.
Burn the flash.bin to MicroSD card offset 32KB:
$ dd if=flash.bin of=/dev/sd[x] bs=1k seek=32; sync
Boot from the SD card
Configure SW1 boot switches to SD boot mode: 0011 SW1[3:0] - (“USDHC2 4-bit SD3.0” Boot Mode)
Insert the SD card in the SD slot (P13) of the board.
Connect a USB Type-C cable into the P16 Debug USB Port and connect using a terminal emulator at 115200 bps, 8n1. The console will show up at /dev/ttyACM0.
Power on the board by connecting a USB Type-C cable into the P1 Power USB Port.
Boot using USB serial download (uuu)
Configure SW1 boot switches to serial download boot mode: 0001 SW1[3:0] - (“Serial downloader (USB)” Boot Mode)
Plug USB Type-C cable into the P2 device port.
Connect a USB Type-C cable into the P16 Debug USB Port and connect using a terminal emulator at 115200 bps, 8n1. The console will show up at /dev/ttyACM0.
Power on the board by connecting a USB Type-C cable into the P1 Power USB Port.
Use NXP Universal Update Utility NXP Universal Update Utility to boot or flash the device. E.g. following command can be used to flash an image onto the eMMC storage:
$ uuu -V -b emmc_all <image file>