2012年10月20日土曜日

Zynq Android

ZynqでAndroidを動かしてみました。

XILINXからSDイメージをダウンロードしただけですが。

意外と簡単にうごくんですね。(当たり前か、、)

今後はもっと勉強して、、、コンパイルできるようにしておかないと。。。






2012年10月9日火曜日

U-BOOTのコンパイル

ARMのクロスコンパイル環境も整ったので、今度は、コンパイルです。

まずは、U-BOOTのコンパイル。 

Linuxのブートローダーになります。

まずは U-BOOTをダウンロードしてきます。
これは、gitでダウンロードできます。

Linuxでダウンロードしてください。

$ git clone git://git.xilinx.com/u-boot-xarm


ダウンロード終了したら、ディレクトリーを変更します。
$ cd u-boot-xarm

その後、コンフィグレーションの設定。。すでに、14.3のファイルになってました。

make zynq_zc70x

これが、またうまく動かないんですね。。

いろいろしらべたら、改行コードが行けないらしい。
CR+LFで、改行しているとLinux上では、うまくいきません。
LFでファイルをセーブしなおし、、、

どうしても、"-mno-unaligned-access" に関連するエラーが出るんです。

いろいろ、調べると、ARM TOOLSのバージョンが古いことが発覚。

ARM TOOLSを入れなおして、再び、


make zynq_zc70x

うまく行ったようです。
make 

ここも、うまく行ったようです。
u-boot.bin ファイルが生成されていました。





2012年10月6日土曜日

SDKをインストールしたほうが早い??

まだまだ、コンパイルで苦しんでいる状況です。

よくよく、考えてみたら、XILINXから、すでにLinux向けのSDKは、
提供されているのだから、そちらを使ったほうが早いですね。

ちょっとそちらを使ってみます。

SDKは、1.6GB程度ですし、JTAG CABLEドライバーをインストール
しなければ、ubuntuにもインストールできます。

結果は、あとで。。。

2012年10月5日金曜日

ARM GNU Toolsを手に入れる。

zynq-linux を見ながら、インストール作業を進めています。

英語なにの、何とかなっているのが不思議ですね。まともに話せないのに。。。

読んでいくと、zynq tools が必要と書いてある。
リンクを辿って行くと ARM GNU TOOLS のページに飛びます。

ここで、ARM GNU TOOLSがダウンロードできると書いてあるのですが、
XILINXの登録ページに飛ばされて、一向にダウンロード出来ない。

あれこれしているうちに、zynq-tools という題名のメールが来ていて、正しい
ダウンロードアドレスが書かれていました。

無事ダウンロードできたので、ubuntu 上で、ダウンロードしたファイルを実行。
$ ./arm-2010.09-62-arm-xilinxa9-linux-gnueabi.bin 

無事、エラーが、、、
ここまで来ると、エラー出るのが当たり前、、という状態ですね。

ただ、ご親切にエラーメッセージの中に必要なコマンドが書いてあるんです。
それを実行。
$ sudo dpkg-reconfigure -plow dash
常にDASHを使うか、、と聞いてくるので、いいえ(No)を選択すると、無事設定が終わったようです。

再び、
$ ./arm-2010.09-62-arm-xilinxa9-linux-gnueabi.bin 

途中で、CodeSourceryのG++のインストーラーが立ち上がってきます。
インストールできるように承諾、Yesを押しながら、インストール開始。


終わるまでひたすら、まちます。

終わったら環境設定。
$ export CROSS_COMPILE=arm-xilinxa9-linux-gnueabi-
を実行(バージョンによって違うかも)


その後、
$ export PATH=~/CodeSourcery/Sourcery_CodeBench_Lite/bin:$PATH

環境を作って、終了です。

ずいぶん、パスが異なっていますね。
バージョンアップするたびに直さないと行けなさそうです。。。。



2012,10月9日、訂正。

バージョンが古いことが発覚しました。
ホームページが更新されていて、ツールの新しいバージョンがダウンロードできました。
xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
です。

この設定だと、次のようにしてあげます。


$ export CROSS_COMPILE=arm-xilinx-linux-gnueabi-

$ export PATH=~/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin:$PATH

これでだいじょぶかな、、、

Linuxのインストール

まず、Windows7にLinuxを入れます。

まず、Windowsについている、Virtual PCでは、うまく行かなかったので、、、
違う方法で。。。

Linuxのイメージは、ubuntuで、まとめられています。
http://www.ubuntulinux.jp/download

ここから、CDイメージをダウンロード します。

仮想環境はOracleのVirtual BOX を選びました。
ここのダウンロードのページから、Windows Hostを選び、ダウンロード。

このあとは、Virtul BoXをたちあげて、仮想CDにLinuxイメージをくっつけて、
起動させます。

何回か失敗の後(何回か再起動のあと)インストールできました。

参考になったのは、こちらのホームページです。

コマンドベースでLinuxは何回か、使ったことがあるのですが、
GUIベースはまだ、慣れていないですね。

戸惑いながら、ubuntuを動かしています。

次は、コンパイル環境。



カーネルソースをダウンロード

Linuxをはじめる前に、クロスコンパイル環境を作らないと行けないようです。
役に立つページが XILLINX Wiki です。

ここに、Open Linuxのソースと、その他必要なものがすべて揃っています。

その前に、gitのツールがないので、ダウンロードしないといけません。

http://git-scm.com/downloads からダウンロードできます。

gitは、開発者のためのファイル管理システム、、ですね。
バラバラになっているソースをまとめて、ダウンロードできるので、いいです。


さて、Gitをダウンロード、インストールすると、プログラムが実行できます。

gitを実行すると、MINGW32が立ち上がりました。

そこから、必要なファイルのダウンロードです。

カーネルはhttp://git.xilinx.com/にあります。

ここから、コマンドで、git clone git://git.xilinx.com/linux-xlnx.git をすればダウンロード開始です。

数時間後?(途中で寝てた)、無事ダウンロード終了です。checkoutまでしてくれるんですね。

その後、ディレクトリを、linux-xlnxに移し、 make ARCH=arm xilinx_zynq_defconfig をしたのですが、、
動かない。

cygwin で同じことを試したけど、動かない。。。

やっぱり、Windows環境ではダメですね。

仮想ディスクトップにLinux環境入れるところから、やりなおしです。。。。

Zynqの開発環境

Zynqの開発環境を書いておきます。(2012年10月4日現在)


まず、パソコン。Windowsなら、Windows7がいいです。一応、XPでも動作します。
(というかXPでは試してないのでよくわからないです。)

Linuxは、Red Hat Enterprise Workstation 5 または6 、SUSE Linux Enterprise 11がサポート範囲です。


開発ツールはXILINXのISEツールを使います。無料版のWebPackから、zynqは開発できます。
ツール及びインストールガイドはこちら。PDFファイルです。

ツールはXILINXのホームページからダウンロードして使います。
Vivadoo および ISE Design Suites - 2012.2 Full Product Installation を使用してください。

最近のツールはとても大きいです。8GBとか、6GBとか。
これを解凍後、Xsetup.exeを実行すれば、インストール開始します。(Windowsの場合)

開発ツールのうち、使用するのは、
PlanAhead
EDK(XPS)
SDK
です。
場合によったら他のツールも、使いますが。

だんだんツールも複雑になっていますね。

デバイスは、今のところ、Z7020しか、供給されていません。デバイスは代理店に問い合わせれば、購入できるようです。いまのところ、ES品なので、安定供給を狙いたい方は、CS品まで、待ったほうが、望ましいです。まあ、2013年の早い時期には出てくると思います。

それまでは、開発ボードがすでに出ているので、それを使うのが、望ましいです。
XILINXの ZC702 か ZedBoardが手に入りやすい状態です。



うーん、ホームページに書くときはもっと整理しないと。。。

追加:2012年10月6日
Linuxカーネルの作成はLinux上でないとダメみたいです。


2012年10月4日木曜日

中規模な、目標。

まず、zynqに何をやらせるか、、、中規模的な目標です。

最終目標は、夢の様な感じで、どうやって実現すればいいか、まだまだわからないことが多いのですが、その前にZynqの実力を試すためにも、今後1年以内に実現可能な技術をベースに、どのようにZynqを動かすか、リストアップしていきたいと思います。

まず、Zynqですが、CortexーA9と、7シリーズのFPGAが乗った1チップデバイスです。
EPP(Extensible Processing Platform)として、紹介されています。

実際に今後どの名称が落ち着くか、わからない状況です。
zynq は商品名。
EPPは、一般的名称になるのか?
SOC FPGAという言い方もあります。
MixSignal FPGAという言い方もあります(ちょっと、製品構成がことなりますが)

まあ、どれかに落ち着くでしょう。そのうち。

では、zynqでここ1年で、できそうなことです。

Linux 
現在、Open Linuxが公開されていますので、そのカーネル作りから始めたいと思います。
その後は、Linuxのカスタムドライバー作りですね。

Android OS
Androidも興味あります。日本アンドロイドの会神戸支部に顔を出していることもありますが、Androidを載せてみようと思っています。

C言語設計
Vivado HLSという、C言語からFPGAのロジック部を論理合成できるツールがでてきました。これらも使って試したいですね。

AXI4のマスター、スレーブIP
Zynqを使いこなそうと思ったら、AXI4バスの理解は必須です。そのためのIPを作成、アプリケーションとの連携を試してみたいと思います。

Zynqボードの設計。
すでに、業務での案件は考えているので、そちらでおこなうかもしれませんが、その他にピンヘッダーが出ているzynqボードの設計、製造も考えています。手頃に使える、zynqがほしいな、、と思っているので。ただ、すでに他のところで、作っているという、情報もありますので、そちらに任せるかもしれません。

パーシャルコンフィグレーション。
FPGA部分を動作させながら、部分的FPGAを書き換える機能です。すでに、ツールとしては用意されているのですが、どこまで動くか、試してみたいと思います。


いまのところ、これらをこのブログか、新しくつくるホームページに公開できたらと思っています。

まあ、おいおい、やっていきます。




Zynqに対する夢。

せっかくなので、Zynqに対する夢を書いておきたいと思います。

ハードウェアOS、ハードウェアAPIの実現です。
特に、僕自身はJAVAのAPIを、ハードウェア化することを考えています。

今までの、ずっと考えてきたことで、FPGA(Spartan6)で実現できないか、考えていたのですが、
その前にデバイスの進化がはやすぎて、?どうせ実現するなら、、新しいデバイスを使ったほうが、望ましそうなので、方向転換しました。

まず、Zynqにとってのキラーアプリケーションとなることを、目指して取り組んでいきたいと思います。

ただ、時間はかかるでしょうし、正直言って、初代Zynqでは、できるかどうかはわからない状態です。
まだ、機能不足なんですよね。初代Zynqでは。

2012年現在、初代zynqは、28nmというプロセスで、製造されています。世界の半導体の状況を見ると、20nmが、2012年から2013年、14nmが、2013年~2015年に登場すると見られています。
10nm以下も2020年には実用化の道が見えてくるでしょう。

14nmで、今のzynqの4倍の性能、10nmになってくると、10倍の性能も見込まれます。

プロセスの進化だけではなくて、3D ICも追い風になってくると思います。

そうなると、今までできないと、思ってきたことが、実現可能になって来ます。

まだまだ、時間はかかると思うのですが、、、一歩一歩進めていきたいとおもいます。







Zynqのページ スタート

「あらゆる英知をチップののせて」

Zynqという、デバイスがあります。
Xilinxから出ている、ARM Coterx-A9と、FPGAが一緒になったデバイスです。

そのためのホームページを作成したい、、と考えているのですが、
なにせ、準備不足!!。 

やりたことが多いので、その前に整理を兼ねて、ブログをスタートします。

そのうち、整理して、ホームページ化を考えてのブログスタートです。

最初に、キーワードを決めてしまいました。

「あらゆる英知をチップにのせて」

初代zynqが、世の中に出てきて、1チップSOCでいろんなことができる可能性が更に広がって来ました。
また、ここ数年で、zynqも更に機能アップされるでしょう。

作成するホームページのオープニングページには、今ある、最新の技術をZynqに取り込むようなイメージで作成し始めています。
時間掛かりそうですが。

その前に、分かる範囲で、このブログで情報を提供していきたいと思います。
自分の勉強も兼ねてですが。