AR# 46913

Zynq-7000 サンプル デザイン - DEVCFG の Linux ドライバーを使用した PL のプログラム

説明

このサンプル デザインでは、次の Linux 命令とロー バイナリ ビットストリームを使用して PL をプログラムする方法を示します。

mknod /dev/xdevcfg c 259 0 > /dev/null
cat system.bit.bin > /dev/xdevcfg

注記: サンプル デザインはアンサーに添付されており、またアンサーの本文には Zynq-7000 で特定の機能をテストするための技術情報が記載されています。

コードの抜粋、スナップショット、図、またはザイリンクス ツールの特定バージョンでインプリメントされたデザインなどが含まれています。

これらのヒントを今後のザイリンクス ツール リリースにアップデートして、サンプル デザインを必要に応じて修正することも可能です。

これらのサンプル デザインに対するサポートには制限があります。

インプリメンテーションの詳細
デザイン タイプPS および PL
ソフトウェア タイプBootgen/Linux
CPUシングル CPU
PS 機能DEVCFG
PL コア--
ボード/ツールZC702
ザイリンクス ツール バージョンVivado/SDK 2015.1
その他の詳細--

ソリューション

手順:

devcfg の Linux ドライバーを使用して PL をプログラムするには、ビットストリームをバイナリに変換する必要があります。 

この操作には BootGen ツールを使用します。

BootGen には、ブート イメージの構造を定義する BIF という入力ファイルを使用します。  


BIF ファイルの例は次のとおりです。

the_ROM_image:
{
[bootloader]<fsbl_name>.elf
<pl_bitstream_name>.bit
<u-boot_name>.elf
}


[bootloader] タグは、どの ELF ファイルがこのデザインの FSBL (First Stage Boot Loader) なのかを指定するために必要です。 

ブート プロセス中に PL をプログラムする必要がない場合は、PL ビットストリームを指定する行はオプションです。


コマンド ライン シェル (Windows の場合は cmd.exe、Linux の場合はシェル ターミナルなど) を開き、ザイリンクス ツール環境を起動します。

Bootgen は次のように実行します。

bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN

この例では、先ほど作成された BIF ファイルを指定します。  

-split オプションを使用して BootGen を実行すると、BIF からの各入力ファイルのバイナリ バージョンが作成され、通常のブート イメージ ファイルが 1 つ作成されるのではなく、個別のファイルとして出力されます。  

次のファイルが生成されます。

<pl_bitstream_name>.bit.bin

このバイナリ出力ファイルは、Zynq PL を直接プログラムするため Linux で使用できます。 

BIT.BIN を SD カードに保存し、Linux にブートします。 


Linux がブートしたら、SD カードを挿入し、Zynq devcfg ブロックのデバイス ノードを作成します。

mknod /dev/xdevcfg c 259 0 > /dev/null 

次に、Linux の cat コマンドを使用して、Zynq PL で PL ビットストリームをストリームさせます。

cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

これで PL がプログラムされます。 

ボード上の DONE LED を確認するか、DEVCFG.INT_STS (PCFG_DONE_INT) のレジスタ値を確認して、PL がプログラムされていることを確認します。


注記 1: -split オプションは 2013.2 リリースの Bootgen からは削除されていますが、2013.3 リリースには再び追加されています。

DEVICECFG 用に BIN フォーマットのビット スワップされた BIT ファイルを生成するには、ISE インストールから promgen コマンドを使用できます。

promgen -p bin -data_width 32 -b -u 0x0 <design_name>.bit


注記 2: 2014.1 以降の Bootgen には、process_bitstream と呼ばれるオプションがあります。Bootgen は、PL を Devcfg を介して PS からコンフィギュレーションするために使用可能な BIF ファイルを生成します。

例:

bootgen -image all.bif -w -process_bitstream bin

BIF ファイル:

all:

{

system.bit

}

出力:

system.bit.bin ファイルは現在の作業ディレクトリで生成されます。


注記 3: Linux Kernel の今後のバージョンで /dev/xdevcfg が自動生成される可能性があります。

mknod /dev/xdevcfg c 259 0 > /dev/null コマンドの実行後に「mknod: /dev/xdevcfg: File exists」という警告メッセージが表示されたら、次のコマンドを実行してください。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
51779 Zynq-7000 SoC - サンプル デザインおよびテクニカル ヒント N/A N/A

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
47002 Zynq-7000 デバッグ - Lauterbach を使用したビットストリームのプログラム方法 N/A N/A
AR# 46913
日付 05/18/2018
ステータス アクティブ
種類 一般
デバイス
ツール
Boards & Kits