Generate a flash.bin

  1. Get basic images and the imx-mkimage source repository from corresponding Linux BSP release. These below basic images can to be put into imx-mkimage/iMX94:

    - oei-m33-ddr.bin

    - m33_image.bin (m33_image-mx94alt.bin: the image is generated by the command - make config=mx94alt all;m33_image-mx94evk.bin: the image is generated by the command - make config=mx94evk all)

    - m70_image.bin (demo binary name for cortex-m7 core0 in M70 MIX)

    - m71_image.bin (demo binary name for cortex-m7 core1 in M71 MIX)

    - m33s_image.bin (demo binary name for cortex-m33 core1 in NETC MIX)

    - <lpddr type name>_dmem_qb_v202409.bin(lpddr type name: lpddr5 or lpddr4x)

    - <lpddr type name>_dmem_v202409.bin

    - <lpddr type name>_imem_qb_v202409.bin

    - <lpddr type name>_imem_v202409.bin

    - u-boot.bin

    - u-boot-spl.bin

    - bl31.bin

    - tee.bin

    - mx943a0-ahab-container.img

    Note:

    • mx943evk for m33_image.bin is used for rpmsg str echo, rpmsg ping pong and power_mode_switch_rtos.

    • mx943alt for m33_image.bin is used for almost other examples.

  2. Copy binary built by ARMGCC/IAR into imx-mkimage/iMX94, and rename them to m70_image.bin/m71_image.bin/m33s_image.bin.

  3. Generate flash.bin.

    • make SOC=iMX94 OEI=YES flash_all LPDDR_TYPE=lpddr5 (Boot up Cortex-A cores and Cortex-M cores[cortex-m33 core1, cortex-m7 core0, cortex-m7 core1])

    or
    
    • make SOC=iMX94 OEI=YES flash_m33s_m70_m71 LPDDR_TYPE=lpddr5 (Boot up Cortex-M cores[cortex-m33 core1, cortex-m7 core0, cortex-m7 core1])

    Note:

    • For LPDDR5, LPDDR_TYPE=lpddr5;For LPDDR4, LPDDR_TYPE=lpddr4x.

    • Valid combination demos to avoid resource conflict.

      • Any demo on cm33_core1, hello_world demo on cm7 core0 and cm7 core1

      • Any demo on cm7_core0, hello_world demo on cm33 core1 and cm7 core1

      • Any demo on cm7_core1, hello_world demo on cm33 core1 and cm7 core0

  4. Burn flash.bin to MicroSD/eMMC at 32 K(0x8000) offset with dd or HxD or UUU and then plug the MicroSD card to the board.

    For example:

    • Burn flash.bin into Micro SD card with dd

      dd if=flash.bin of=/dev/sdh bs=1k seek=32 && sync

    • Burn flash.bin into SD/eMMC with UUU

      1. Connect USB Type-C port to PC through the USB cable. It is used for downloading firmware of the board.

      2. Switch to serial downloader mode; boot core is cortex-m33. sd: uuu -b sd imx-boot-imx943-19x19-lpddr5-evk-sd.bin-flash_all new-flash.bin

      3. Burn flash.bin with uuu.

        emmc: uuu -b emmc imx-boot-imx943-19x19-lpddr5-evk-sd.bin-flash_all flash.bin

        sd: uuu -b sd imx-boot-imx943-19x19-lpddr5-evk-sd.bin-flash_all flash.bin

      Note:

      • imx-boot-imx943-19x19-lpddr5-evk-sd.bin-flash_all (imx-boot-imx943-19x19-lpddr4x-evk-sd.bin-flash_all for IMX943LP4CPU-19 SOM + X-IMX943BB; imx-boot-imx943-15x15-lpddr4x-evk-sd.bin-flash_all for IMX943LP4CPU-15 SOM + X-IMX943BB). Get them from linux bsp.

      • flash.bin. The flash.bin is generated by yourself.

  5. Change the boot mode to SW4[1:4] = x011 for sd boot, SW4[1:4] = x010 for emmc boot.

  6. Power on the board .

Parent topic:Run a demo application