5.Zynqberryへの書き込み方法
Trenz製ボードの書き込みについて
スクリプトを用いた書き込み
Trenz製ボードの書き込みは、基本的にはスクリプトで行います。
ボードのタイプや目的に応じて3種類があります。
- program_flash_binfile.cmd・・・ZYNQ搭載ボードのオンボードROMにBoot.binを書き込みます
- program_flash_mcsfile.cmd・・・非ZYNQボードのオンボードROMにBitstreamを書き込みます
- program_fpga_bitfile.cmd・・・非ZYNQボードのFPGAに直接Bitstreamを書き込みます。
program_fpga_bitfile.cmdはFPGAに直接書き込むので高速に書き換えが可能ですが、電源を切るとデータは消えてしまいます。
Zynqberryの書き込みについて
ZynqBerryは内蔵ROMから起動しますが、出荷時は空です
また、ZynqberryはSDカードからは起動できません。
したがって、電源を入れた状態でJTAGから最初の書き込みをしないと何もできないのですが、ZynqberryにはJTAG端子が出ていないので、Platform Cable USBなどをJTAGでつないでSPI ROMに書き込むこともできません。
Zynqberryの最初の書き込みは、Trenz社が用意したスクリプトを使用して、オンボードのUSB-JTAGを使って書き込む必要があります。このためには、XILINX Vivado、XSDK、Digilent Adept、Trenzプロジェクトの4つが必要です。
書き込み前の準備
boot.binはprebuildフォルダにありますが、program_flash_binfile.cmdをそのまま実行しても、file not foundとエラーが出て書き込めませんので、以下の手順で書き込み前の準備を行います。
- design_basic_settings.cmdを開く
- @set PARTNUMBER=3に設定する
- @set SWAPP=NAを@set SWAPP=u-bootにする
いざ書き込み
program_flash_binfile.cmdを実行すると、書き込みが行われます。
書き込まれるファイルは prebuilt/boot_images/m/u-boot/Boot.bin です。
mというのはPARTNUMBER=3によって決まるshort nameというもので(ZynqberryのTE0726-03MのM、つまりメモリが512バイト版の意味)り、u-bootはSWAPP=u-bootによって決まります。
書き込みスクリプトは、内部でXILINXのhw_serverを起動し、Trenzボード上のUSB-JTAGをdigilentのケーブルとして認識させています。hw_serverには(おそらく)XSDKの機能であるxicomから接続し、XSDK経由でフラッシュROMのEraseを行ってからProgrammingを行うような感じです。
ここでFlash Operation Successfulと出ていれば、最後でERRORと表示されても問題ありません。
(2017.1用のプロジェクトではERRORが出ることがあるが、問題ない)
ZynqBerryの再起動
Zynqberryに最初のboot.binを書き込んだら、電源を兼ねるMicro USBを抜き差ししてください。赤いLEDが点滅するはずです。この赤いLEDはUSBシリアルの通信を示しています。
COMポートを開いていたら、FSBLとU-bootが起動したのが見えるでしょう。