こんにちは、
Cortex M7をU-Bootから起動する方法を教えていただけますか?
cortex a55/ubootはM7のTCMにアクセスできないようで、そのためイメージをロードすることができません。一方、M7が0x9000 0000でリリースされると、M33はクラッシュした。
uboot バージョン 04.2025 では、uboot コマンド (bootaux、prepaux、stopaux) は全く効果がないようです。
M33上のSMを使用してM7を起動しようとしましたが、停止やブートベクターの変更はできますが、DDRメモリ上で解放するとエラーが発生します。
M7をubootまたはSMで正しく起動する方法、あるいはM7のDDRアクセスを許可する方法について、何かヒントをいただけますか?
お手数ですが、よろしくお願いいたします。
こんにちは、
次のアプリケーションノートをご覧になることをお勧めします。
https://docs.nxp.com/bundle/AN14748/page/topics/introduction.html
よろしくお願いいたします。
こんにちは、
ご返信よろしくお願いします。
残念ながら、あなたが言及したアプリケーションノートには、UbootからもM33のSMからもM7コアの起動方法が説明されていません。
また、M7にDDRアクセスを提供するプラットフォームの設定方法についても触れられていません。
これらのトピックについて手伝ってもらえますか?何かご提案はありますか?booaux、prepaux、stopauxコマンドはいつU-Bootに完全に実装され、使用可能になりますか?
よろしくお願いいたします!
こんにちは、
セクション4.7.4.1.5をご覧ください。i.MX Linuxユーザーガイド i.MX 95ページ。
よろしくお願いいたします。
以下の手順に従うことで、なんとか動作させることができました。
fatload mmc 0:1 ${loadaddr} mcore-demos/imx95-15x15-evk_m7_TCM_hello_world.bin
cp.b ${loadaddr} 0x203c0000 ${filesize}
rproc stop 0
rproc 開始 0
ただし、そのためにはimx-system-マネージャの設定(imx95evk-configs/mx95evk.cfg)を編集する必要があります。アクセスを許可する必要があります A55非セキュアLMM用のTCMメモリ。
私の変更点(LMM_1をNOTIFYからALLに設定し、TCMとM7MIX領域をA55非セキュアに追加):
-LMM_1 通知
+LMM_1 すべて
-OCRAM EXEC、開始=0x0204C0000、サイズ=96K
+M7MIX EXEC、開始=0x020380000、終了=0x02047FFFF
+OCRAM EXEC、開始=0x020480000、サイズ=352K
+M7MIX EXEC、開始=0x04A060000、終了=0x04A09FFF
Rebuild: imx-system-managerフォルダ内の - make config=mx95evk cfg - perlの再構築ファイル用にchagesを処理します。その後、Yoctoでパケットを再構築します:
bitbake -f -ccompile imx-system-マネージャ
bitbake imx-system-マネージャ
bitbake -f -ccompile imx-boot
bitbake imx-boot
その後、U-bootからTCMメモリにアクセスできます。
しかし、私には別の問題があります。U-Boot内のファイルシステムからM7コードをリアルタイムで更新する必要があるのです。しかし、そのコードはTCM地域には適合しません。だから私はDDRを使っているんです。コードは正常に起動でき、DDRで完全に実行・ロードされますが、u-bootを使ってリアルタイムで更新する方法がわかりません。なぜならu-bootは0x90000000からDDRにアクセスできるからです......。
M7コード使用地域は0x80000000...このメモリ領域は、imx-system-マネージャ(.cfg)だけでなく、u-bootソースを通じてもu-bootから利用できません。これは、2つの異なるLMM間でメモリを異なるメモリ領域に分離するために意図的に行われたものだと思います。
M33コード(imx-system-マネージャ)を使ってM7のコードを更新したいと思い、このLMM(m33)に両方のリージョンを追加しましたが、M7リージョンだけが完全に見えてしまいます(0x80000000...)。U-boot領域(0x90000000)は見えるが、m33側からはゼロが読み取れる...
こんにちは、
私のシステムにはrprocはありませんが、bootauxがあります。このコマンドはU-Bootでは何も実行しません。
私はこうしてM7を始動させることができました。
イメージを0x88000000に読み込むと、Cortex AとM7で共有されている32MBのスペースがありますが、U-Bootから読み書きするにはdcacheを無効にする必要があります
System Managerのrst.wコマンドでコアを停止し、cpu.wコマンドでブートベクターを0x8800 0000に設定し、再びrst.wでM7コアを起動します。
これは私には効果がありました。
幸運を