2019年1月17日木曜日

QSPI・SDからZYBOを起動(FPGAをブート)する


今まではJTAG経由でZYBOに書き込みをしていたため、電源を落としたらもう一度PCと接続し書き込みをしなければなりませんでした。今回はZYBOの電源を落としても回路情報などが消えないように、SDカードやQSPIからブートしてみます。

 

VivadoBitstreamファイルが作成済みかつ、SDKでアプリケージョンが作成済み(ビルドしてelfファイル生成済み&デバッグで動作確認済)のプロジェクトを用意してください。
elfファイルが生成されているかどうかはSDKProject Explorerのプロジェクトファイル内のBinaries.elfファイルがあるかどうかで確認できます。


FSBLを生成してBOOT.binを作成する

FSBLは電源投入後PLPS、ソフト(SDKで作成したアプリケーション)をコンフィギュレーションするために必要なアプリケーション(elfファイル)です。今まではFSBLや回路情報が含まれたファイル(= BOOT.bin)をUSBケーブルを通してJTAGで書き込んでいました。
ZYBOJP5を切り替えることでBOOT.binをどこから(SDカード、QSPIJTAG)読むかを切り替えることができます。

VivadoFileLaunch SDKからXilinx SDKを起動します。

SDKメニューのFileNewApplication Projectをクリックして新規プロジェクトを作成します。
プロジェクト名を適当に付けて(今回はTESTにした)、Nextをクリックし、TemplatesZynq FSBLを選択してFinishをクリックします。

プロジェクトが作成できたらメニューのProjectCleanClean all projectsを選択してOKをクリックしクリーンした後、Project→Build Projectでプロジェクトのビルドを行います。(クリーンはしなくても大丈夫かもしれません)
すると、Project Explorerの先ほど作成したプロジェクト内のBinaries.elfファイルが生成されます。

もともと用意してあったプロジェクトファイル(アプリケーションプロジェクト)を右クリックしてCreate Boot Imageをクリックします。

デフォルトのままでCreate Imageをクリックします。

もともと用意してあったプロジェクトファイルのフォルダ下のbootimageというフォルダにBOOT.binというファイルが追加されます。


 SDカードからブートする

先ほど作成したBOOT.binSDカード(microSD)にコピーしてZYBOに挿して、JP5SDに切り替えて電源ONすれば、SDカードからブートされ動作します。


QSPIからブートする

JP5JTAGにしたZYBOPCに接続し電源を入れます。

Xilinx SDKメニューのXilinxProgram Flashをクリックします。

Image Fileには先ほど作成したBOOT.binを指定します。(特に変更していなければ、Vivadoのプロジェクトフォルダの○○.sdkフォルダのアプリケーションフォルダのbootimage内にあるはずです)
FSBLファイルには先ほど作成したFSBLelfファイル)を指定します。(特に変更していなければ、Vivadoのプロジェクトフォルダの○○.sdkフォルダのFSBLアプリケーションフォルダのDebug内にあるはずです)
ProgramをクリックするとQSPIへの書き込みが行われます。数十秒から数分かかります。

SDKConsoleFlash Operation Successfulと表示されたらQSPIへの書き込みは完了です。

一度ZYBOの電源をOFFしてからJP5QSPIに切り替えて電源をONすればQSPIからブートされ動作します。

0 件のコメント:

コメントを投稿