Boot sequence for iMX7ULP multicore system using multicore examples

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

Boot sequence for iMX7ULP multicore system using multicore examples

跳至解决方案
427 次查看
HenrikZ
Contributor III

If I load a .bin file in the flash of the M4 core from the multicore examples from SDK_2.16.000 together with the correct Device Tree Source, the example is running smoothly without problems. Now I want to use the example as a staring point for developing my own firmware and the problems starts:

  • All the multicore examples have no debug configuration for CMake. I have tried to implement debug, but there seems to be some pre-defines or macros that are not included when moving from release to debug.

Question 1: Is there a reason why the multicore examples do not have debug configuration such that I can go through the code for the M4 core stepwise or make breakpoints? Is it because it would cause too many issues with the linux kernel on the A7? Or are there other obstacles that I'm not aware of, since I debug is not implemented? 

Question 2: Lets consider that manage to get the debug configuration right, what would be the right order of booting? The A7 core and linux get stuck in the boot process if the services related to RPMsg are not initiated and announce by the M4 core, so should I stop the A7 core in uboot until I can see that the M4 has booted and the release the A7 core by writing boot?

Last question: Why has NXP stopped included multi-core examples in the lastest SDK?

Regards Henrik

标签 (2)
标记 (2)
0 项奖励
回复
1 解答
345 次查看
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @HenrikZ 

I hope you are doing very well.

 

Q1.

The multi core examples in the SDK are mainly designed to run smoothly when launched from Linux using remoteproc. However, they don’t come with built-in support for debugging tools like breakpoints or step-by-step execution because pausing the M4 core can mess up the communication between the cores especially the RPMsg messaging system.

If that happens, the Linux side might freeze or fail to start certain services. So, to keep things stable during development, debugging features are left out by default.

 

Q2.

The Linux system on the A7 core expects the M4 core to already be up and running with (RPMsg) ready to go when Linux boots.

If the M4 isn’t ready in time, Linux might not be able to connect to it properly, and some services could fail to start. To avoid this, it’s best to start the M4 core first (using something like bootaux in U-Boot), and then launch Linux.

 

Q3.

I have not information to share about why NXP stopped included multi-core examples in the lastest SDK.

 

Best regards,

Salas.

在原帖中查看解决方案

0 项奖励
回复
1 回复
346 次查看
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @HenrikZ 

I hope you are doing very well.

 

Q1.

The multi core examples in the SDK are mainly designed to run smoothly when launched from Linux using remoteproc. However, they don’t come with built-in support for debugging tools like breakpoints or step-by-step execution because pausing the M4 core can mess up the communication between the cores especially the RPMsg messaging system.

If that happens, the Linux side might freeze or fail to start certain services. So, to keep things stable during development, debugging features are left out by default.

 

Q2.

The Linux system on the A7 core expects the M4 core to already be up and running with (RPMsg) ready to go when Linux boots.

If the M4 isn’t ready in time, Linux might not be able to connect to it properly, and some services could fail to start. To avoid this, it’s best to start the M4 core first (using something like bootaux in U-Boot), and then launch Linux.

 

Q3.

I have not information to share about why NXP stopped included multi-core examples in the lastest SDK.

 

Best regards,

Salas.

0 项奖励
回复