FC2カウンター FPGAの部屋 SDKでDevice Treeを生成する2(SDKでxilinx.dtsを生成)
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

SDKでDevice Treeを生成する2(SDKでxilinx.dtsを生成)

前回は、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 がクローンされた。
ISE_for_Linux_89_130311.png

4.”xsdk”と入力して、SDKを起動する。(Ubuntu12.10使用)

5.ワークスペースには、HDL/ZedBoard/ZedBoard_OOB_Design/hw/xps_proj/SDK/SDK_Export を指定した。

6.SDKが立ち上がった。
ISE_for_Linux_90_130311.png

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

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

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

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

11.OKボタンをクリックして、Preferences ダイアログを閉じた。

12.File -> New -> Board Support Package を選択した。
ISE_for_Linux_91_130311.png

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

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 には入力することができなかった。
ISE_for_Linux_93_130311.png

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

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 できませんでした.


ISE_for_Linux_95_130312.png

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 ディレクトリにあった。
ISE_for_Linux_100_130313.png

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

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

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

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

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

これで、エラーはあったが、無事に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 が生成された。
ISE_for_Linux_120_130318.png
  1. 2013年03月11日 05:59 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/2410-74f00f5c
この記事にトラックバックする(FC2ブログユーザー)