Slide 20
Slide 20 text
非常に長い、実装フロー
Zephyrに加えて、PetaLinux + FPGAのビルドも必要
0. PetaLinuxのビルド・環境構築(Cortex-A53側ベース)
● PetaLinux 2025.2環境のインストールとKV260用BSPの展開
● デバイスツリー(system-user.dtsi)の編集によるRPU(Cortex-R5)用のメモリ領域・IPI通信の確保
● Zephyr用へのUART1の解放(Linux側での無効化設定)
● WICイメージのビルドおよびmicroSDカードへの書き込みと実機ログイン
1. Vivadoでのハードウェア設計(PL側)
● Zynq UltraScale+ MPSoCコアと、制御・デバッグ用AXI GPIOの配置
● Address Editorでの各IP(GPIOや後述のDPU)のベースアドレス確定
● ビットストリームの生成および.xsaファイルのエクスポート
2. VitisでのDPUモデルの準備
● Vitis でのDPU(Deep Learning Processor Unit)アーキテクチャのビルド設定
● ターゲットDPUサイズ(B3136サイズなど)やURAM利用フラグ等のパラメータ定義
● コンパイル後の統合DPUモデル(.xmodel)の出力
3. Kria用アクセラレーション・バリアントの準備
● Vitis xsctツールを使用したデバイスツリーオーバーレイ(pl.dtbo)の生成
● bootgenによるビットストリーム(.bit)からバイナリ(.bit.bin)への変換
● アクセラレータ種別を定義するshell.jsonの作成
4. Zephyr RTOS側の設定・ビルド(Cortex-R5側)
● arm_mpu_regions.c修正によるPL(AXI領域)へのアクセス権限付与
● Zephyr用デバイスツリーオーバーレイ(.overlay)によるDPU・GPIOアドレスのマッピング
● レジスタ(REG_AP_CTRLなど)を監視し状態をLED/コンソールへ出力するメインプログラムの実装
● west buildコマンドによるzephyr.elfのビルド
5. KV260実機へのデプロイと実行
● 生成した各種ファイル(pl.dtbo, shell.json, .bit.bin, .elf)の実機(Linux環境)への転送
● xmutilコマンドを使用した、FPGAファブリックへのハードウェアデザインの動的ロード
● remoteprocフレームワークを介したCortex-R5(Zephyr RTOS)のファームウェア起動とリアルタイム監視の開始
何時ものZephyrでの
Westビルドまでが遠い...