imx95 M7 boot Hello, Can you please tell me how to boot the cortex M7 from uboot? It seems that cortex a55/uboot have no access to the TCM of M7, so it is not possible to load the image. On the other hand, the M33 crashed when the M7 is released on 0x9000 0000. It seems the the uboot commands (bootaux, prepaux, stopaux) have no effect at all, on uboot version 04.2025. I tried to boot the M7 with the SM on M33, I can stop it, change the boot vector, but releasing it on DDR memory causes an error. Can you give me some hints how to properly start the M7 with uboot or SM, or how to allow ddr access for the M7? Thank you in advance! Re: imx95 M7 boot Hello,
I suggest you take a look in the next application note:
https://docs.nxp.com/bundle/AN14748/page/topics/introduction.html
Best regards.
Re: imx95 M7 boot Hello, thank you for your reply. Unfortunately, the Application Note you mentioned, does not describe how to start the M7 core neither from Uboot, nor with SM on M33. It also doesn't mention how to configure the platform to provide DDR access to the M7. Can you help me with these topics? Do you have any suggestions? When will the booaux,prepaux and stopaux commands be fully implemented and usable in uboot? Thanks in advance! Re: imx95 M7 boot Hello,
Please take a look in section 4.7.4.1.5 i.MX 95 of i.MX Linux User's Guide.
Best regards. Re: imx95 M7 boot I managed to get it to work using the following instructions: fatload mmc 0:1 ${loadaddr} mcore-demos/imx95-15x15-evk_m7_TCM_hello_world.bin cp.b ${loadaddr} 0x203c0000 ${filesize} rproc stop 0 rproc start 0 But for this you need to edit the config imx-system-manager(for imx95evk-configs/mx95evk.cfg). You need to allow access to TCM memory for A55 non-secure LMM. My diff(Set LMM_1 from NOTIFY to ALL, add TCM and M7MIX region to A55 non-secure): -LMM_1 NOTIFY +LMM_1 ALL -OCRAM EXEC, begin=0x0204C0000, size=96K +M7MIX EXEC, begin=0x020380000, end=0x02047FFFF +OCRAM EXEC, begin=0x020480000, size=352K +M7MIX EXEC, begin=0x04A060000, end=0x04A09FFF Rebuild: in imx-system-manager folder - make config=mx95evk cfg - for perl rebuild files after chages. Then rebuild packets in yocto: bitbake -f -ccompile imx-system-manager bitbake imx-system-manager bitbake -f -ccompile imx-boot bitbake imx-boot After this there will be access to TCM memory from u-boot. But I have another problem: I need to update the M7 code from the file system in Uboot on the fly. But the code doesn't fit in the TCM region. That's why I'm using DDR. I've successfully launched the code, which runs and loads completely using DDR, but I don't know how to update it on the fly using u-boot, becaus u-boot have access to DDR from 0x90000000 .... M7 code use region from 0x80000000...This memory region not available from u-boot not only through imx-system-manager(.cfg), but also through the u-boot sources. I think this was done intentionally to separate memory across different memory regions between two different LMM. I wanted to update code M7 via the M33 code(imx-system-manager), added both regions for this LMM(m33), but only the M7 region is visible perfectly(0x80000000...). The U-boot region is visible(0x90000000), but the zeros are readable from m33 side... Re: imx95 M7 boot Hello, on my system I don't have rproc, but bootaux. The command does nothing in U-Boot. I managed to start the M7 like this. Load image to 0x88000000, there is a 32MB space which is shared my Cortex A and M7, but you have to disable dcache to be able to read/write to it from U-Boot Use System manager rst.w command to stop the core, cpu.w command to set boot vector to 0x8800 0000 and again rst.w to start the M7 core. This worked for me. Good Luck
記事全体を表示