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が起動したのが見えるでしょう。