AMD™ 社製 KV260 で Zephyr® を動作させる:Linux 経由と直接起動の2手順を解説
はじめに
本ブログでは、これまでも度々触れてきた、Zephyr® について、今回は、AMD™ 社製 KV260 で動作させる手順の概要について紹介します。
KV260 は、Vision AI Starter Kit として位置付けのリファレンスで、ARM Cortex a53、ARM Cortex r5、FPGA を搭載しています。
下記サイトの内容に従い、KV260 ボードで Zephyr® のコードを実際に動作させました。
① Zephyr® 生成環境の構築、および生成手順
参照サイト:https://docs.zephyrproject.org/latest/develop/getting_started/index.html
② KV260 Development Board RPU Cortex-R5 で Zephyr Hello_world デモコードを動作させる手順
参照サイト:https://docs.zephyrproject.org/latest/boards/amd/kv260_r5/doc/index.html
上記 1) で生成した、Zephyr® コードを KV260 ボードで動作させます。
より詳細には、r5 で動作する Zephyr® コードを、a53 で動作している Linux 経由で実行しています。
③ KV260 にて、Linux を経由せず Zephyr® コードを r5 で動作させる手順
作業環境として、Ubuntu 22.04 LTS を使用しました。
それでは、手順詳細を順に紹介していきます。
①Zephyr® 生成環境の構築、および生成手順
手順の詳細は以下のサイトを参照しました。
参照サイト:https://docs.zephyrproject.org/latest/develop/getting_started/index.html
作業手順(参照したサイトの内容から抜粋しています)
Install dependencies(依存パッケージのインストール)
Ubuntu 22.04 LTS で必要となるパッケージをインストールします。
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk \
xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1
Get Zephyr and install Python dependencies(Zephyr® の取得および Python® 依存関係のインストール)
Create a new virtual environment(新しい仮想環境の作成)
新しい仮想環境を作成します。
$ mkdir zephyrproject
$ cd zephyrproject
$ python3 -m venv ./zephyrproject/.venv
* python3 等がインストールされていなければ、以下を実行します。
$ sudo apt install python3-venv
Activate the virtual environment(仮想環境の有効化)
仮想環境を有効化します。
$ source ./zephyrproject/.venv/bin/activate
Install west(west のインストール)
west をインストールします。
$ pip install west
Get the Zephyr source code(Zephyr® ソースコードの取得)
Zephyr® ソースコードを取得します。
$ west init ./zephyrproject
$ cd ./zephyrproject
$ west update
Export a Zephyr CMake package(Zephyr® CMake パッケージのエクスポート)
Zephyr® CMake パッケージをエクスポートします。これにより、CMake は Zephyr® アプリケーションの生成に必要な定型コードを自動的に読み込むことができるようになります。
$ west zephyr-export
Install Python dependencies using west packages(west packages を使用して Python® 依存関係をインストール)
Zephyr® の west 拡張コマンドを用いて、Python® 依存関係をインストールします。
$ west packages pip --install
Install the Zephyr SDK(Zephyr® SDK をインストールする)
Install the Zephyr SDK using the west sdk install(west sdk install を使用し、Zephyr® SDK をインストールします)
$ cd ./zephyr
$ west sdk install
サンプルコードの生成
$ west build -p always -b <your-board-name> samples/basic/blinky
^^^^^^^^ ^^^^^^^^^^
kv260_r5 samples/hello_world
今回は、hello_world を Build するので、
$ west build -p always -b kv260_r5 samples/hello_world
hello_world は、~/zephyrproject/zephyr/samples/hello_world/ 以下にあります。
生成の結果、以下に、zephyr.elf が生成されます。
~/zephyrproject/zephyr/build/zephyr/zephyr.elf
②KV260 Development Board RPU Cortex-R5 で Zephyr Hello_world デモコードを動作させる手順
手順の詳細は以下を参照しました。
参照サイト:https://docs.zephyrproject.org/latest/boards/amd/kv260_r5/doc/index.html
実際の手順は以下の通りでした。
起動用 SD Card image のダウンロード
以下のサイトより、OpenAMP を含んだイメージをダウンロードします。
参照サイト:https://www.xilinx.com/member/forms/download/xef.html?filename=petalinux-sdimage_xilinx-k26-starterkit.wic.xz
以下のコマンドで、SD Card 書き込みます。
$ sudo dd of=/dev/sdb if=Downloads/amd/petalinux-sdimage_xilinx-k26-starterkit.wic
デモコードを 対象機にコピー
前の手順で生成した zephyr.elf を使います。
開発環境側(Ubuntu 22.04 LTS)から以下のコマンドで対象機に zephyr.elf をコピーします。
$ scp <path_to>/zephyr.elf petalinux@<board-ip-address>:/home/petalinux
実行例は以下の通りです。
$ scp workspace/zephyrproject/zephyr/build/zephyr/zephyr.elf petalinux@192.168.13.205:/home/petalinux
petalinux@192.168.13.205's password:
zephyr.elf 100% 375KB 4.0MB/s 00:00
下記メッセージが表示されてエラーが出る場合は、-O オプションを使用します。
<エラーメッセージ>
sh: line 1: /usr/libexec/sftp-server: No such file or directory
scp: Connection closed
$ scp -O workspace/zephyrproject/zephyr/build/zephyr/zephyr.elf petalinux@192.168.13.205:/home/petalinux
petalinux@192.168.13.205's password:
zephyr.elf 100% 375KB 4.0MB/s 00:00
対象ボード側で zephyr.elf がコピーされていることを確認します。
xilinx-k26-starterkit-20221:~$ pwd
/home/petalinux
xilinx-k26-starterkit-20221:~$ ls
zephyr.elf <<< zephyr.elf がコピーされた
xilinx-k26-starterkit-20221:~$
重要
公式手順に記載されている以下の内容に従い、
対象ボード側の /lib/firmware 以下にも zephyr.elf をコピーします。
After that move the file to /lib/firmware directory, then you be able to start the firmware on the desired RPU via remoteproc with:
デモコードの実行に従い、対象ボード側のコンソールは、r5 の出力用に使用するため ssh 接続で操作します。
$ ssh petalinux@192.168.13.249
petalinux@192.168.13.249's password:
xilinx-k26-starterkit-20221:~$ sudo -i
Password:
root@xilinx-k26-starterkit-20221:~# pwd <<< target 側の shell
/home/root
root@xilinx-k26-starterkit-20221:~# cd ../petalinux
root@xilinx-k26-starterkit-20221:/home/petalinux# ls
xilinx-kv260.tar.gz zephyr.elf
root@xilinx-k26-starterkit-20221:/home/petalinux# ls -l
total 177512
-rwxr-xr-x 1 petalinux petalinux 449772 Aug 27 21:49 zephyr.elf
root@xilinx-k26-starterkit-20221:/home/petalinux#
root@xilinx-k26-starterkit-20221:/home/petalinux# echo zephyr.elf > /sys/class/remoteproc/remoteproc0/firmware
root@xilinx-k26-starterkit-20221:/home/petalinux# echo start > /sys/class/remoteproc/remoteproc0/state
コンソール側の結果
*** Booting Zephyr OS build v4.3.0-1097-g5220936bbc02 ***
Hello World! kv260_r5/zynqmp_rpu
上記出力が対象ボード側のコンソールに表示されました。
なお、本作業は、2025年12月9日に実施したものです。
③KV260 にて、Linux を経由せずに Zephyr® コードを r5 で動作させる手順
本手順では、KV260 の基本構成に基づく Vivado™ XSA ファイルを使用します。
(注) XSA ファイルについて
XSA(eXtensible System Archive)ファイルとは、FPGA/SoC 設計のハードウェア情報(IP、ピン配置、クロック、メモリ設定など)と作成時の Vivado™/Vitis™ バージョンなどのメタデータをまとめたアーカイブファイルです。本手順では .xsa ファイルが必要で、生成には、Vivado™ を使用します。
Vitis™ の起動 (Vitis™ Embedded を使用)
Vitis™ は、AMD™ FPGA processors のためのアプリケーションソフトウェア開発環境です。
以下のサイトより、Vitis™ Embedded をダウンロードします。(本記事では、2025.1 を使用)
参照サイト:https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/vitis.html
Worksapce の作成
作業用フォルダの作成と初期化を行います。
あらかじめ、作業用フォルダを作成します(例:$ mkdir -p workspace/kv260_zephyr)。
次に、Vitis™ メニューにて、
[File]
[Set Workspace …]
を選択し、kv260_zephyr を指定します。
Platform Component の作成
Vivado™ で設計した XSA ファイルに基づき、BSP、FSBL を生成するための Platform Component を作成します。Platform Component は、Vivado™ で設計したハードウェア情報(XSA ファイル)に基づき、BSP(Board Support Package)、FSBL(First Stage BootLoader)を生成するためのプロジェクトです。これを作成します。
VITIS EXPLORER にて、[Create Platform Component] を選択します。
Component name に任意の名称を入力します(本例では、kv260_zephyr)(図1)。入力後、[Next]ボタンを押下します。
図1
[Hardware Designe(XSA) For Implementation] の [Browse]ボタンを選択し、あらかじめ作成しておいた .xsa ファイルを指定します(図2)。指定後、[Next]ボタンを押下します。図2
[Generate Boot artifacts] がチェックされていること、および[target processor to create FSBL:] が、cortexa53 になっていることを確認します(図3)。確認後、[Next]ボタンを押下します。図3
Summary の画面にて、[Finish]ボタンを押下します。
これで、Platform Component の作成が完了します。
Platform Component の生成
FSBL(fsbl.elf)を生成します。
[Build]ボタンが追加されているので(図4)、選択して、生成を実施します。
図4
fsbl.elf が生成されます(図5)。
図5
Boot Image の作成
生成した fsbl.elf と 動作させたいアプリケーションを結合し、起動可能なイメージである、BOOT.bin を生成します。
上記動作させたいアプリケーションを生成した zephyr.elf とします。
Vitis メニューにて、
[Vitis]
[Create Boot Image]
[Zynq Ultrascale+]
を選択します。
図6 の [+]ボタンを押下し、fsbl.elf を登録します。
[File Path] に fsbl.elf への path を指定します。
[Type] は自動的に “bootloader” が選択されます。
[Destination CPU] は a53-0 を選択し、[OK]ボタンを押下します。
図6
続けて、再度[+]ボタンを押下し、zephyr.elf を登録します。
[Type] は、datafile、[Destination CPU] は r5-0 を選択します(図7)。
[OK]ボタンを押下します。
図7
[Output BIF File Path] に任意のファイル名をパスと併せて入力します。[Output Image] のファイル名が BOOT.bin になっていることを確認します(図8)。
赤枠のファイル名の順序が異なる場合は、[+] 右側にある矢印で変更できます。
確認後、[Create Image] ボタンを押下します。
BOOT.bin、および bootImage.bif が生成されます。
Vitis での操作はこれで終了です。
図8
KV260 Flash Memory への BOOT.bin のコピー
KV260 の web サーバーによる BOOT.bin イメージのコピー
KV260 ボードの FWUEN(Firmware Update) Button を押したまま、RESET Button を押すと、web サーバーが使用可能になります。
ブラウザから http://192.168.0.111 に接続します。
KV260 の Flash Memory は、Image A、Image B の 2 領域があり、いずれか一方を選択して使用します。
BOOT.bin イメージのコピー手順は以下の通りです(図9)。
- 1) Recover Image 下の [Browse] ボタンで、<path to>/BOOT.bin を選択
- 2) [Select Image to bo recovered] で、Image A または Image B を選択
- 3) [Upload] ボタンを押下してコピーを実施
次に、(図9) の Boot Image Status 下にて、
- 4) [Requested Boot Image] で、コピーした Image A または Image B を選択
- 5) コピーした側の Image の Bootable ボタンを有効化
- 6) [Configure] ボタンを押下
これで、コピー処理および BOOT.bin を動作させる準備が完了します。
図9
BOOT.bin の起動
電源 OFF —> ON、または RESET ボタンで BOOT.bin を動作させます。
コンソールに、以下の出力が表示されました。
Hello World! kv260_r5/zynqmp_rpu
最後に
以上になります。
このコラムが、皆様がAMDボードやZephyrに興味を抱くきっかけになりましたら幸いです。
詳細資料をご希望の方には送付させていただきますので、以下フォームよりメールアドレスをご登録ください。
- AMD™、Vivado™、Vitis™ は、Advanced Micro Devices, Inc. の商標または登録商標です。
- Zephyr® は The Linux Foundation の商標です。
- Python® は Python Software Foundation の登録商標です。
[2026年01月20日 時点]











