i.MX 93 BSP Manual PD24.1.1 Documentation Rev.: imx8mp-pd22.1.2-51-ga548be7d
Note
Available rmware examples start with imx93-11x11-evk_m33_TCM_* and end with *.bin. Examples come
from NXP’s Yocto layer meta-imx and are selected based on compatibility with phyBOARD-Segin/Nash
i.MX 93 hardware.
1. Load desired rmware example:
u-boot=> fatload mmc 1 ${loadaddr} <firmware.bin>
u-boot=> cp.b ${loadaddr} 0x201e0000 ${filesize}
u-boot=> run prepare_mcore
u-boot=> bootaux 0x1ffe0000 0
## Starting auxiliary core addr = 0x1FFE0000...
The program’s output should appear on the M33 Core’s debug UART.
8.1.2 Running Examples from Linux using Remoteproc
Remoteproc is a module that allows you to control the M33 Core from Linux during runtime. Firmware
examples for M33 Core can be loaded and the execution started or stopped within Linux. To use Remoteproc
a devicetree overlay needs to be set:
Edit the bootenv.txt le located in the /boot directory on the target by adding imx93-phycore-rpmsg.dtso:
overlays=imx93-phyboard-segin-peb-av-02.dtbo imx93-phycore-rpmsg.dtso
Restart the target and execute in U-Boot:
u-boot=> run prepare_mcore
Firmware examples *.elf les for the M33 Core can be found under /lib/firmware. List available rmware
examples:
target:~$ ls /lib/firmware/*.elf
To load the rmware, type:
target:~$ echo /lib/firmware/<firmware>.elf > /sys/class/remoteproc/remoteproc0/firmware
target:~$ echo start > /sys/class/remoteproc/remoteproc0/state
To load a dierent rmware, the M33 Core needs to be stopped:
target:~$ echo stop > /sys/class/remoteproc/remoteproc0/state
Note
The samples found in /lib/firmware on the target come from NXP’s Yocto layer meta-imx and are
selected based on compatibility with phyBOARD-Segin/Nash i.MX 93 hardware.
Some rmware examples from NXP require additional Linux kernel modules to be loaded.
For example, when loading imx93-11x11-evk_m33_TCM_rpmsg_lite_str_echo_rtos.elf rmware, one requires
corresponding imx_rpmsg_tty module to be loaded:
i.MX 93 M33 Core 80