2015/02/09

Xilinx SDKでDevice Treeを生成する

はじめに

FPGAの部屋を読んでいると,Xilinx SDKでDeviece Tree Source (DTS)を生成できることがわかりました. 下記の記事が参考になりましたが,開発環境が異なるほか,ファイルの取得方法が変わっていましたので,私の作業メモを残しておきます.

Xilinx Wikiの該当ページは下記のとおりです.
開発環境

DTSの生成に使用するXilinx SDK 2014.4は,Windowsにインストールしています.

OS Microsoft Windows 7 Professional x64 Service Pack 1
SDK Xilinx SDK 2014.4

ファイル取得に使用するgitクライアントやDTSからDevice Tree Blob (DTB)を生成する環境は,VMware Player上のUbuntuにインストールしています. Windowsとのファイル共有には,WinSCPを使用しています.

OS Ubuntu 14.04 LTS 32bit
Device Tree Generatorのセットアップ

Ubuntu環境でDevice Tree Generatorのgitリポジトリを取得しました. その後,ディレクトリごとWindows環境の「C:\work」にコピーしました. これにより,「C:\work\device-tree-xlnx」ができたことになります.

1
~$ git clone git://github.com/Xilinx/device-tree-xlnx.git

Vivadoでプロジェクトを開き,「File」 - 「Launch SDK」からXilinx SDKを起動しました. Xilinx SDKのツールバーから「Xilinx Tools」 - 「Repositories」をクリックし,「Preferences」ウィンドウを開きました. 「Local Repositories」に,「C:\work\device-tree-xlnx」を追加しました.


Preferences
DTSの生成

Xilinx SDKの「File」 - 「New」 - 「Board Support Package」をクリックしました. 「New Board Support Package Project」ウィンドウが開きましたので,「Board Support Package OS」を「device-tree」に変更して「Finish」しました.


Board Support Package

「Board Support Package Settings」ウィンドウが開きましたので,「bootargs」の「Value」に下記を入力しました. これは一例ですので,各自の環境に合わせる必要があります.

1
console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=1


Board Support Package Settings

「Board Support Package Settings」ウィンドウを「OK」で閉じると,自動的に「device-tree_bsp_0」プロジェクトのビルドが開始され,DTSが生成されました.


device-tree_bsp_0
DTBの生成

「device-tree_bsp_0」ディレクトリごとUbuntu環境にコピーし,DTBを作成しました. ほとんどGUI操作だけでdevicetree.dtbが生成でき,タイプミス起因のエラーを回避できるのは良さそうですね.

1
2
~$ cd zybo_bsd_linux/device_tree_bsp_0/
~/zybo_bsd_linux/device_tree_bsp_0$ ../Linux-Digilent-Dev/scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb ./system.dts

0 件のコメント:

コメントを投稿