2295521_en-US

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2295521_en-US

2295521_en-US

Zephyr on all cores of a iMX93

Hi,

I want to run a RTOS on all cores of a iMX93. Is that possible?

On the Zephyr website I see there is a project to run Zephyr on the M33 core of the FRDM-IMX93 board. And there is also a project to run Zephyr on a A55 core.
But can I run them both? And can I run a separate Zephyr project on both A55 processors?
How does it work with the initialization of the chip. Like the initialization of the clock and memory controller? Who will do that?

If not possible, can I run a RTOS on the M33 core using MCUXPresso, which may then initialize the chip? And use Zephyr for both the A55 cores?

What is the way to get a RTOS running on all cores?

Re: Zephyr on all cores of a iMX93

Hi @simmania 

For two zephyr projects running on 2x A55, this is not supported. The supported framework is A55 running Linux -->Jailhouse --> other A55 running zephyr, so Jailhouse should manage the hardware isolation.


If not possible, can I run a RTOS on the M33 core using MCUXPresso, which may then initialize the chip? And use Zephyr for both the A55 cores?

--> The i.MX93 supports low power boot which kick up M33 from bootrom. To achieve your goal, it would require rewriting too much of the SDK's code..The core issue is that who initialize DDR. Based on the documentation, retaining U-Boot is the optimal choice, as it enables U-Boot to load Zephyr for both the M33 and A55 processors simultaneously.


https://docs.zephyrproject.org/latest/boards/nxp/imx93_evk/doc/index.html



Best Regards,
Zhiming

Re: Zephyr on all cores of a iMX93

So a NXP employee says that it is possible using harpoon.
And the NXP TechSupports says that it is not possible.

Very confusing.

Re: Zephyr on all cores of a iMX93

Both of the A core and mcore in imx93 support zephyr release, you could go to our zephyr landing page to get the MPU Zephyr use guide, if you wan tot run zephyr on both A core and m core at the same time , you could look for the harpoon release from NXP
https://www.nxp.com/design/design-center/software/embedded-software/zephyr-os-for-edge-connected-dev...

Re: Zephyr on all cores of a iMX93

@simmania  you could run harpoon on one of A core, another Acore run Zephyr, mcore run zephyr, otherwise you could run native zephyr on A core and use bootrom running mcore zephyr 

please refer to Program flash.bin to SD/eMMC with UUU — MCUXpresso SDK Documentation

and copy zephyr.bin to m33_image.bin under imx-mkimage/i.MX9  in step 4 to create flash bin

  1. Get the boot images and the imx-mkimage source repository from corresponding Linux BSP release. The boot images required to be put into imx-mkimage/i.MX9 are:

    - u-boot-imx93evk.bin-sd (rename to u-boot.bin)

    - u-boot-spl.bin-imx93evk-sd (rename to u-boot-spl.bin)

    - bl31-imx93.bin (rename to bl31.bin)

    - mx93a0-ahab-container.img

    - lpddr4_dmem_1d_v202201.bin

    - lpddr4_dmem_2d_v202201.bin

    - lpddr4_imem_1d_v202201.bin

    - lpddr4_imem_2d_v202201.bin

Re: Zephyr on all cores of a iMX93

In the Harpoon documentation I found this:


Harpoon provides an environment for developing real-time demanding applications on an RTOS running on one (or several) Cortex-A core(s) in parallel of a Linux distribution, leveraging the 64-bit Arm architecture for higher performance.

So there is still Linux needed on some cores. So it seems running Zephyr on all cores of a iMX93 is not possible.


Re: Zephyr on all cores of a iMX93

@simmania 

A core user guide is here 

UG10199: NXP MPU Cortex-A Core Zephyr User Guide | NXP Semiconductors

in Zephyr webpage has already mention 93 A core and mcore supported

i.MX93 EVK — Zephyr Project Documentation

 harpoon user guide

UG10170: Harpoon User's Guide | NXP Semiconductors

Re: Zephyr on all cores of a iMX93

Tanks for the answer.

But we are not developing with iMX93 yet and for us the answer is still not clear.

We are in the process of selecting hardware for a new project. The only thing we need to know now is if it is possible to run Zephyr on all cores without the need of Linux.


Re: Zephyr on all cores of a iMX93Actually, I could finally manage to run Zephyr on FRDM iMX93 on both A55 cores using SMP. The key was: ```west flash -r spsdk```Re: Zephyr on all cores of a iMX93

Please refer to Real-time Edge Software User Guide chapter 3.3 Flexible Real-time System

Table 30 shows we could run all the possible AMP system on i.MX 93 platform:

Screenshot 2026-05-25 104822.jpg

And heterogeneous-multicore provides hello world examples to run all these possible AMP system,  for example i.MX 93 could build out and Realtime Edge also provides the following prebuild binary images:
Screenshot 2026-05-25 105419.jpg

Some key technical point to run two Zephyr on each Cortex-A Core on i.MX93:

1. Resource allocation

Refer to chapter 3.3.2.2 Technical Points, use different UART and RAM memory for these two Zephyr instance to avoid resource confliction.

You could build your Zephyr example without using  heterogeneous-multicore , but you could refer to  heterogeneous-multicore  for how to do resource allocation.

2. Booting method

Currently you could use uboot command to boot these two Zephyr install, the first Zephyr use "cpu release" command to boot, then use "go" command to boot, refer to user guide for more details.

And you need to use Real-time Edge repos such as TF-A, U-Boot to support unified Life Management for Cortex-A Core provided in Real-time Edge.

And in next Realtime Edge release (plan to release in July) will provide a new feature "fast boot", with this new feature TF-A will boot these two Zephyr instance with boot time less than  one second.

Please feel free to let me know if you need any more help on this, thanks.


Re: Zephyr on all cores of a iMX93

The answer is yes, but I can't provide more detail informaion,  +   @Jiafei_Pan  for further question

Re: Zephyr on all cores of a iMX93

That is great!

Using Harpoon? But the Harpoon documentation says:

"The system starts on Linux and the Jailhouse hypervisor partitions the hardware to run both Linux and the guest RTOS in parallel."

We want Zephyr to run on all cores without Linux.

Re: Zephyr on all cores of a iMX93

Are you talking about running two Zephyr applications at the same time, or one that uses SMP to have both cores available for scheduling?

I would be very interested in the second case but can't get it to work.

Re: Zephyr on all cores of a iMX93

@Jiafei_Pan , could you provide any information to enable two Zephyr running on A core  and mcore without introduce harpoon. Thank you!

标记 (1)
无评分
版本历史
最后更新:
星期六
更新人: