2390237_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2390237_ja-JP

2390237_ja-JP

i.MX 943 EVK:LinuxとZephyrの間でENETCの共有ユースケースを実行

こんにちは、

私は i.MX 943 EVKボードを使っており、Linux上のCortex-A55 SMPとZephyrのCortex-M33sの間でネットワークを共有したいと考えています。

そこで興味を持ちました。i.MX Linux ユーザーズガイド(https://www.nxp.com/docs/en/user-guide/UG10163.pdf - セクション11.6.2)からのENETC共有ユースCASEです。この例では、Linux側でプロキシPFドライバーを有効にするためにRPMsg接続を設定しました。RPMsg接続のリソーステーブルのアドレスは0x208a0000で、仮想キューは0x20800000にあります。これらのアドレス([0x20800000~0x208A0FFF])はNETC OCRAM内にあります。この領域はCortex-M33 Core1(M33S)とAP(非セキュアLinux)間のRPMSG共有メモリとして使用されます。

この例では、mx94evknetc.cfgのシステムマネージャー設定ファイルを使い、Cortex-M33がネットワークにアクセスできるようにしています。この設定ファイルの関係で、A55とM33は起動時に起動する必要があるので、ターゲットのimx-mkimage flash_allを使っています。


問題は、flash_a55ターゲット(mx94rte.cfgシステムマネージャーの設定ファイル)を使うと、Linux/U-BootとZephyrはそれらのアドレスにアクセスできますが、flash_allに切り替えると(システムマネージャーの設定ファイルに関係なく)、Linux/U-BootもZephyrもそれらのアドレスにアクセスできません。Zephyrはこれらのアドレスでバスフォールトが発生します。しかし、Zephyrの代わりにシンプルなhello_worldなどのFreeRTOSプログラムを使うと、Cortex-M33sやLinux/U-Bootがそれらのアドレスにアクセスできます。

また、mx94rte.cfgシステムマネージャーファイルでflash_allターゲットを使うと、Linux/U-BootもZephyrもそのアドレスにアクセスできませんが、Cortex-M33を停止してFreeRTOS hello_worldを読み込んで再起動すると、Linux/U-BootはNETC OCRAMにアクセスできます。

ちなみに、Zephyrはflash_M33sターゲットにアクセスできません。

そこで、FreeRTOSが初期化時にZephyrができないことを知りたいです。つまり、Linux/U-BootとZephyr間でNETC OCRAMにアクセスしやすくするために、その点はflash_allターゲットで。


ゼファーバージョン:4.3

Linuxバージョン(リアルタイムエッジ版):6.18.2

Linux
Tags (1)
No ratings
Version history
Last update:
20 hours ago
Updated by: