Basic example project for building a zephyr project to run on the M33 core of the i.MX93 processor.
Install zephyr workspace using the zephyr Getting Started Guide.
Clone this repo inside the zephyrworkspace.
The device tree for the M33 is in boards/embeddedts/tsimx9/tsimx9_mimx9352_m33.dts and enables only the lpuart2 device. In order for that to work the lpuart2 device must be disabled in the linux device tree. In general, any peripherals added to the m33 device tree need to be removed from the linux side.
Use the board tsimx9/mimx9352/m33 to build:
west build -b tsimx9/mimx9352/m33 .
For testing, there is a sysfs interface for loading M33 firmware from the linux side of the i.MX93. To do that, there is a kernel commandline bootarg that must be set in u-boot when booting the kernel, clk-imx93.mcore_booted.
Copy the build/zephyr/zephyr.elf to /lib/firmware/zephyr.elf on the target. Then load it with:
# echo zephyr.elf > /sys/class/remoteproc/remoteproc0/firmware
# echo start > /sys/class/remoteproc/remoteproc0/state
A serial terminal connected to LPUART2 should then show:
*** Booting Zephyr OS build v4.3.0 ***
Hello World! tsimx9/mimx9352/m33
The zephyr.bin file can also be used to load the m33 firmware from u-boot.