This application note explain how to run M kernel PFE master and A kernel PFE slave demo without bootloader support. chinese version:
在真实的产品中,一般会使用一个基于M7_0核的bootloader来启动M和A核,这个bootloader负责所有M核和A核资源的初始化,解决M核和A核的资源冲突,并且启动M和A核。所以理论上运行M PFE Master Mcal驱动加A PFE Slave Linux驱动也是需要一个bootloader的。参考文档《S32G_Bootloader_V*》,Johnli,可以在公开community上搜索获得。
本文讨论一种简易的办法,就是:
- S32G3 RDB3板子配置为SDcard启动,插入SDcard,里面放有PFE SLAVE驱动的Linux镜像。
- 上电启动后运行PFE Master工程的lauterbach调试脚本:run_main_G3_REV1_1.cmm,这个脚本会重启整个S32G3。
- 然后在脚本中用wait 10S的操作,这个时候Linux已经启动,并且使用Uboot的代码调用ATF来完成PFE相关pre-init, partition reset和时钟与管脚初始化(如上分析, EMAC0~2的RGMII IOMUX已经配置好),然后Slave驱动会等待一段时间,等MCAL Master驱动加载,继续运行PFE Master MCAL代码后,Linux端Slave驱动也加载正确。然后就可以测试整个M Master/A Slave Demo。
总结:以上办法实际上是把bootloader应该做的PFE相关硬件初始化工作由Linux来完成,以便快速搭建Demo,这样客户在做真实的产品开发时,可以做为一个NXP release的标准参考。