こんにちは、
現在、I.MX9596チップを開発しており、M7コアを正常にコンパイルできるVSCode用のMCUXPresson開発環境を構築しました。しかし、uboot フェーズで M7 コアをロードするにはどうすればよいでしょうか?
方法はわかりましたが、それをどのように実装するかはわかりません。Uboot フェーズで M7 イメージをロードするには、imx95evkrpmsg を使用してシステム マネージャー (M33) をコンパイルする必要があります。生成された M7 イメージを SD/eMMC のブート (FAT32) パーティションにコピーします。このコマンドは Uboot フェーズで使用できます。
こんにちは@Zhiming_Liu
FRDMのソースコードが手元にないので、コンパイルできません。ボード上でテストできるように、コンパイル済みのイメージを提供していただけますか?
ありがたい!
EVKと自作ボードの両方を試しましたが、問題は同じです。EVKボードのソースコードがないため、ご提供いただいたイメージを使用しています。何か関連があるのでしょうか?
EVK:
テストできるように、M33 の画像を送っていただけますか?
こんにちは@HL_G
L6.12.49デモイメージから「imx-boot-variant-rpmsg-imx95-19x19-lpddr5-evk-sd.bin-flash_lpboot_sm_a55」ファイルをロードできます。現在EVKをお使いですか?それともカスタムボードですか?EVKの場合、具体的なモデルは何ですか?
よろしくお願いします、
志明
こんにちは@Zhiming_Liu
私たちが使っているのはこれです。
mkimgコンパイルコマンドは次のとおりです: `make SOC=iMX95 flash_a55 LPDDR_TYPE=lpddr4x OEI=YES`
imx-sm の場合は mx95evkrpmsg を使用するほかに、 imx-mkimage を使用する場合は flash_lpboot_sm_a55 が必要です。
bitbake imx-boot を使用して imx-boot を個別にコンパイルするだけで済みます。これは非常に高速です。
こんにちは@HL_G
yocto の local.conf ファイルにIMXBOOT_VARIANT="rpmsg"を追加し、次の imx-boot を使用してみてください。
よろしくお願いします、
志明
こんにちは@HL_G
.bin ファイルをロードしても同じエラーが発生しますか?
よろしくお願いします、
志明
imx-sm ファイルには、 imx95evkrpmsg に関連する構成が含まれています。
現在、M33のコアプログラムはこの方法でコンパイルされており、 M33からM7を起動することはできません。M7のbinファイルとelfファイルはSD/eMMCのBoot(FAT32)パーティションに配置されています。プログラムはubootステージでロードされますが、2番目のステップに達するとエラーが発生し、プログラムが再起動します。
こんにちは@Zhiming_Liu
M7 コアをロードするときに、以下に示すようにエラーが発生します。
エラーの後、コア A が再起動し、M7 は情報を印刷しませんでした。
こんにちは@HL_G
uboot での具体的な手順:
パワーオン ブート用に M7 イメージを imx-boot にコンパイルするには、ドキュメントのimx-mkimageセクションを参照してください。
https://www.nxp.com/docs/en/ユーザーガイド/UG10163.pdf
ただし、imx-sm にはimx95evkrpmsg に関連する構成はありません。
https://github.com/nxp-imx/imx-sm/tree/master
よろしくお願いします、
志明
こんにちは@HL_G
このボードと対応するyoctoはまだテスト段階にあり、正式リリースされていないため、現時点ではテストできません。このrpmsgバリアントは、imx-smのmx95evkrpmsgとimx-mkimageのlpboot_sm_a55に相当します。これら2つの.binファイルが確実に更新されていることを再度ご確認ください。
https://github.com/nxp-imx/meta-imx/blob/walnascar-6.12.49-2.2.0/meta-imx-bsp/conf/machine/include/i...
よろしくお願いします、
志明
こんにちは@Zhiming_Liu
imx-mkimg コンパイル、make SOC=iMX95 LPDDR_TYPE=lpddr4x OEI=YES flash_lpboot_sm_a55 を使用して自社ボードでテストした結果を次の図に示します。
make SOC=iMX95 LPDDR_TYPE=lpddr4x OEI=YES および flash_lpboot_sm_all で imx-mkimg をコンパイルした結果を次の図に示します。
他のファームウェアはすべて同じで、ロードに失敗します。再起動してもubootは再起動するだけですが、M33は正常です。ubootが許可されていないポイントにアクセスしたのではないかと考えています。これに対処する方法や提案はありますか?
ありがたい!
こんにちは@HL_G
FATloadは実際にはファームウェアをアドレス0x90000000にロードします。0x90100000など、他のアドレスを試すこともできます。また、変数$loadaddrの実際の値も確認してください。
よろしくお願いします、
志明