前回は、Device Tree の概要について、ブログに書いた。今回は、SDKからDevice Tree を生成してみようと思う。
XilinxのDevice Tree Generator を使用する。(Ubuntu12.10上のSDK14.4を使用している)
・Device Tree Generator は、EDKのXPSプロジェクトでBSPを自動生成する際に使用するプラグインツール
・デバイスツリー(xilinx.dts) を生成する
・device-tree という名前で、git://git.xilinx.com/device-tree.git にある
それでは、実際にやってみる。
1./opt/Xilinx/14.4/ISE_DS/EDK/sw/lib/bsp ディレクトリにcd した。
2.”
git clone git://git.xilinx.com/device-tree.git device-tree_v0_00_x”を実行した。
3./opt/Xilinx/14.4/ISE_DS/EDK/sw/lib/bsp ディレクトリにdevice-tree がクローンされた。

4.”
xsdk”と入力して、SDKを起動する。(Ubuntu12.10使用)
5.ワークスペースには、HDL/ZedBoard/ZedBoard_OOB_Design/hw/xps_proj/SDK/SDK_Export を指定した。
6.SDKが立ち上がった。

7.xps_proj_hw_platform を展開して、system.xml を選択して、Xilinx Tools からReporitories を選択した。

8.Preferences ダイアログで、Loacl Repositories の New... ボタンをクリックする。

9./opt/Xilinx/14.4/ISE_DS/EDK/sw/lib/bsp/device-tree_v0_00_x ディレクトリを選択した。

10.Preferences ダイアログのLoacl Repositories に/opt/Xilinx/14.4/ISE_DS/EDK/sw/lib/bsp/device-tree_v0_00_x ディレクトリが入った。Rescan Repositories ボタンをクリックした。

11.OKボタンをクリックして、Preferences ダイアログを閉じた。
12.File -> New -> Board Support Package を選択した。

13.New Board Support Package Project ダイアログが開く。Board Support Package OS にdevice-tree が増えている。device-tree を選択して、Finishボタンをクリックした。

14.次のダイアログでは、console device に何を設定するか?迷ったが、ps7_uart_1を選択した。と言うか、Noneか、ps7_uart_1しか選択できなかった。bootargs のValue には、”console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0”を入力した。bootargs のDefault には入力することができなかった。

15.device-tree_bsp_0 が生成された。

16.Project -> Build Automatically を選択した。Buildが始まったが、エラーが出てしまった。エラー内容を下に示す。
ERROR:EDK - device-tree () - can't read "vdma_device_id": no such variable
ERROR:EDK:3416 - Error(s) while running TCL procedure generate().
make: *** [ps7_cortexa9_0/lib/libxil.a] エラー 2
make: ターゲット `all' はエラーにより再 make できませんでした.

17.検索を行った結果、
”Error while building a new Device Tree”が見つかった。最後のコメントの”
the vdma_device_id is not setup in the tcl”に解決方法が書いてあった。
18.それによると、device-tree_v2_1_0.tcl ファイルの”variable vdma_device_id”を”variable vdma_device_id 0”に書き換えてデフォルト値を入れれば良いそうだ。
19.device-tree_v2_1_0.tcl ファイルを検索すると、:/opt/Xilinx/14.4/ISE_DS/EDK/sw/lib/bsp/device-tree_v0_00_x/data ディレクトリにあった。

20.”
sudo vi device-tree_v2_1_0.tcl”で、device-tree_v2_1_0.tcl ファイルを編集することにした。

21.
/vdma_device_id/ で検索したところ見つかった。

22.”
variable vdma_device_id”を”
variable vdma_device_id 0”に書き換えた。

23.一度、device-tree_bsp_0 を完全にDelete してから、もう一度、作りなおした。オートビルドされて、コンパイルが通った。xilinx.dts が生成された。

24.xilinx.dts を見ると、自分で追加した axi_iic_mt9d111 のエントリが見えた。

これで、エラーはあったが、無事にxilinx.dts を生成することができた。
次回は、dtc でコンパイルしてみたい。
(2013/03/18:追記)Windows 7のSDKでも確かめてみたが、Ubuntu12.10 と同様に、C:\Xilinx\14.4\ISE_DS\EDK\sw\lib\bsp にdevice-tree_v0_00_x フォルダをUbuntuからコピーして、SDKでBSP をUbuntu 同様に作成したところ、xilinx.dts が生成された。
- 2013年03月11日 05:59 |
- Linux
-
| トラックバック:0
-
| コメント:0