インテルのみ表示可能 — GUID: oek1521083396128
Ixiasoft
6.2. LinuxからのFPGAファブリックのコンフィグレーション
注: この機能は、Linux*カーネルのバージョン4.9 LTSI以降でサポートされています。この機能に関する最新情報については、RocketBoards.orgおよび インテル® パブリックgitのリポジトリーを参照してください。
インテルAgilex SoC FPGA用のLinux*カーネルを使用すると、OS内からFPGAのプログラミングをイネーブルできます。
FPGAのリコンフィグレーションをカーネルレベルでテストする場合は、カーネルのソースコードに対して次の変更を加えます。
- arch/arm64/boot/dts/intel/Makefileのファイル内で、2番目の .dtb ファイルを追加します。例えば、
dtb-$(CONFIG_ARCH_AGILEX) += socfpga_agilex_socdk.dtb dtb-$(CONFIG_ARCH_AGILEX) += overlay.dtb
- 以下に示すように、新しい overlay.dts ファイルを作成し、ファイルにRBFファイルのオーバーレイ情報を追加します。
/dts-v1/; /plugin/; / { fragment@0 { target-path = "/soc/base_fpga_region"; #address-cells = <1>; #size-cells = <1>; __overlay__ { #address-cells = <1>; #size-cells = <1>; firmware-name = "overlay.dtb"; config-complete-timeout-us = <30000000>; }; }; };
この機能のためにLinux*カーネルをビルドすると、ビルドによって2つの *.dtb ファイルが生成されます。
デバイス・ツリー・ファイル | 説明 |
socfpga_agilex_socdk.dtb | デフォルトの *.dtb ファイル。システムをブートするためにカーネルイメージで使用されます。 |
overlay.dtb | *.dtb ファイル。OSでFPGAコンフィグレーションをトリガーするために使用されます。 |
コンパイル出力フォルダーで、FPGAコンフィグレーション・ファイル (*.rbf) の名前を、overlay.rbf という名前に変更します。次に、FPGAコンフィグレーション・ファイル (*.rbf) および overlay.dtb ファイルの両方をRoot File Systemの次の位置にコピーします。
$ mkdir <your_ROOTFS>/lib/firmware $ cp overlay.dtb <your_ROOTFS>/lib/firmware/ $ cp overlay.rbf <your_ROOTFS>/lib/firmware/
上記の変更により、システム上にオーバーレイを適用することで、Linux*でFPGAをプログラミングできます。Linux*をブートし、ルート権限でログインした後、次のコマンドを使用してFPGAコンフィグレーションを開始します。
# mkdir /sys/kernel/config/device-tree/overlays/0 # echo overlay.dtb > /sys/kernel/config/device-tree/overlays/0/path/
オーバーレイを再適用する場合は、最初に既存のオーバーレイを削除してから、前の手順を再実行する必要があります。
# rmdir /sys/kernel/config/device-tree/overlays/0 # mkdir /sys/kernel/config/device-tree/overlays/0 # echo overlay.dtb >/sys/kernel/config/device-tree/overlays/0/path
次のデザイン例、 Intel Agilex SoC HPS First Single QSPI Flash Bootで示しているのは、Linuxデバイス・ツリー・オーバーレイを使用してFPGAファブリックをコンフィグレーションする方法です。