Xillybus and ROS on Ubuntu14.04 on Zybo Part 1 : ハードウェアのビルド~BOOT.binの生成

<a name="Contents"></a>
##Contents
- [ハードウェアのビルド:Windows](#ハードウェアのビルドwindows)
- [u-bootのビルド:Ubuntu](#u-bootのビルドubuntu)
- [BOOT.binの生成:Windows](#bootbinの生成windows)

<a name="ハードウェアのビルドwindows"></a>
##ハードウェアのビルド:Windows

Windowsマシン上において、最初にCドライブ直下にワークスペース`C:\work_space`を作ります。  
以下、Windowsマシンにおける作業はこのワークスペースにおいて行います。  

[Xillybusのサイト](http://xillybus.com/)からzyboのベースデザイン[xillinux-eval-zybo-1.3c.zip](http://xillybus.com/downloads/xillinux-eval-zybo-1.3c.zip)(直リンク)をダウンロードしワークスペースに保存します。  

`C:\work_space\xillinux-eval-zybo-1.3c.zip`

展開すると以下のようなディレクトリ構造になっています。

```
xillinux-eval-zybo-1.3c/
|--bootfiles/
|--cores/
|--runonce/
|--system/
|--verilog/
|--vhdl/
|--vivado-essentials/
```

Vivado14.04を起動します。Vivadoを起動したら`Tools->Run Tcl Script`を選択し、  
`C:\work_space\xillinux-eval-zybo-1.3c\verilog\xillydemo-vivado.tcl`を指定します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/52e3d47f-021e-d337-3d8d-37ebcee2930f.png" width="70%">

XillybusのVivadoプロジェクトが起動します。  
プロジェクトが起動したら**Generate Bitstream**します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/d2135f15-c6bc-146b-4f50-0f4597a3da48.png" width=70%>

完了したら以下のようなダイアログが出ますが、Cancelしてください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/5f73a822-9463-c469-f221-29b674a78dda.png">

[Contentsにもどる](#Contents)

<a name="u-bootのビルドubuntu"></a>
##u-bootのビルド:Ubuntu
Ubuntuマシン上において、最初にワークスペースを作ります。  
以下、Ubuntuマシンにおける作業はこのワークスペースにおいて行います。  

```
$ mkdir ~/work_dir
$ cd ~/work_dir
```

また、Vivado14.04のセッティングをします。

```
$ source /opt/Xilinx/Vivado/2014.4/settings64.sh
```

u-bootのためのソースコードを取得します。

```
$ git clone -b master-next https://github.com/DigilentInc/u-boot-Digilent-Dev.git
$ cd u-boot-Digilent-Dev/
```

Zybo用のコンフィギュレーションをします。

```
$ make CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_zybo_config
```

ビルドします。

```
$ make CROSS_COMPILE=arm-xilinx-linux-gnueabi-
```

`~/u-boot-Digilent-Dev/`に**u-boot**が出来ていたら成功です。  
この**u-boot**をWindowsマシンの`C:\work_space`に**u-boot.elf**という名前でコピーします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/f67388d9-8681-54b8-2062-97fd621932ce.png" width="70%" >

[Contentsにもどる](#Contents)


<a name="bootbinの生成windows"></a>
##BOOT.binの生成:Windows

先ほどビルドしたVivado上のハードウェアをエクスポートします。  
`File->Export->Export Hardware`を選択してください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/66a5ed8e-ab22-c8f7-f2e4-edbb0f1156ef.png" width="70%">

以下のダイアログが出ます。**Include bitstream**にチェックをつけてOKしてください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/051413be-a041-b52c-b77f-0ce311957e26.png" width="40%">

SDKを起動します。`File->Launch SDK`を選択してください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/a861ee5e-4928-14bc-7b30-80d6cd39e4e2.png" width="60%">

以下のダイアログが出ます。OKしてください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/b80f992e-3d07-f2bf-e48d-19d5a7ee99cf.png">

SDKにおいてXillybusのプロジェクトが作成されました。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/0f710268-ff44-d884-e81a-081b13bb7ee9.png" width="70%">

SDK上において`File->New->Application Project`を選択します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/b63055e2-efcd-19f9-084f-a5c30f6ff063.png" width="70%">

以下のダイアログでProject Nameに**FSBL**と入力しNextしてください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/8ca62101-07d2-1404-8273-d4a8cf9a4d92.png" width="350">

また、Templateでは**Zynq FSBL**を選択しFinishします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/3a0663c8-b475-ca26-277d-118593dd0880.png" width="350">

自動的にFSBLのプロジェクトが生成・ビルドされ  
`C:\work_space\xillinux-eval-zybo-1.3c\verilog\vivado\xillydemo.sdk\FSBL\Debug`に**FSBL.elf**ができます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/c4499a7c-e4c9-21f0-b632-a8f1b01b1335.png" width="70%">

SDK上においてFSBLフォルダで右クリックし、メニューから**Create Boot Image**を選択してください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/85687330-56b0-4702-fb4b-ff160ab4e658.png" width="70%">

ダイアログにおいて**Add**し`C:\work_space\u-boot.elf`を選択し、OKします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/59bae67c-7711-7c1c-b4ff-dc3a498e71c1.png" width="50%">
<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/5d3317d2-2efb-a8d6-504b-2b445249aa08.png" width="50%">

最終的なファイルは以下の3つです。

- (bootloader) FSBL.elf
- xillydemo.bit
- u-boot.elf

**xillydemo.bit**が選択されていない場合は  
`C:\work_space\xillinux-eval-zybo-1.3c\verilog\vivado\xillydemo.sdk\xillydemo_hw_platform_0\xillydemo.bit`  
を**Add**してください。  

ファイルの確認ができたら**Create Image**してください。

<img src="https://qiita-image-store.s3.amazonaws.com/0/57052/2a87bcce-eb75-69df-5c24-483aa5271036.png" height="400">


`C:\work_space\xillinux-eval-zybo-1.3c\verilog\vivado\xillydemo.sdk\FSBL\bootimage`  
に**BOOT.bin**が生成されていれば成功です。  
BOOT.binはUbuntuマシンの`~/work_dir`へコピーしておきましょう。

[Contentsにもどる](#Contents)