Linux 2.6 on Xilinx ML403 Reference Board
手元のPowerPC搭載のFPGAでLinuxを動かして色々と開発中のスイッチの制御を行わせたいのだが、ML-403に対応した売り物のミノMontaなんとかLinuxとかいくつか値段を聞いて鼻血を出すのであった.500万とか300万とかこんなんに払えるかっ。
とりあえず、ML-403でLinuxを動かした。
まだ自分のハードウェアデザインでできていないので第一歩というところ。
色々な動かし方があるようだけど、xilinxのlinuxカーネルとuclinuxというのでルートファイルシステムを作った。とにかく情報があんまり無いので、色々なやり方を試行錯誤してみたが、これしか動かなかった。
やったことのメモ
★powepc用クロスコンパイル環境構築
作るのめんどいのでsuzakuが公開しているvmware環境を利用。
★カーネルビルド
- xilinxからlinux kernelをダウンロード。最近gitとかbkとか色々ソフトウェアがあってよく分からん。なんか知らないうちに世界が変わってるなー。
kernelソースのダウンロード
% git clone git://git.xilinx.com/linux-2.6-xlnx.git
arch/ppc/configs/ml403_defconfigを元にカーネルビルド
% cd linux-2.6-xlnx
% cp arch/ppc/configs/ml403_defconfig .config
- MakefileのARCHはppc,CROSS_COMPILEはpowerpc-linux-gnu-に変更。
% make
オプションは適当に答えておく。どっかでzImage.elfを作るように指定できるはず。
CFにるーとファイルシステムを置く場合は,CONFIG_XILINX_SYSACE=yとする。
boot optionは,"console=ttyS0,38400 root=/dev/xsa3".
xsa1はFAT16でないとだめ。ブート用ファイルtop.aceだけ置く.
xsa2はlinux swap.xsa3はext2でフォーマットした.これはext3でも
オッケーなはず。
コンパイルにしくる場合は,エラーメッセージを見て,必要ないものを.config
から削除する.そのうちうまくいく.
★ルートファイルシステムを構築
新しめのbuildrootを持ってくる.一番新しい奴はコンパイルできなかった。
古めのはfakerootのソースを落とすときにURL指定先に存在しなくて途中で止まる.
中がでかすぎていじって対応する気が失せるので、適当なのを探す。
多分buildroot-20080123か0120を使った.
展開.
% cd buildroot
% make menuconfig
powerpc/405を選択。
パッケージは好きなものを適当に選択する。
% make
cfに展開するときは,busyboxのs-bitが落ちる,デバイスファイルがしっかり作られていないので、作り直す必要がある.
% su -
# cd <buildroot>
# cd project_build_powerpc/uclibc/root
# tar cpf - * | (cd /mnt/compactflash; tar xvpf - )
# cd /mnt/compactflash
(もしかして# chown -R 0.0 * したかも。ls -lしてみるべし)
# cd bin
# chmod u+s busybox
# cd ../dev
# /dev/MAKEDEV generic <- 親linux上でMAKEDEVしてやる。途中で止まったら^Cして止める。必要なものはほとんどできているので先に進む。
% cd ../etc
% vi inittab
#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
を
::respawn:/sbin/getty -L ttyS0 38400 vt100
% vi fstab
次の2行を追加。(rootfsの行は削除)
/dev/xsa3 / ext2 defaults.errors=remount-ro 0 1
/dev/xsa2 none swap sw 0 0
とりあえずこんなもの。
★カーネルからtop.aceファイルの作成
ml_403_emb_ref_ppcをダウンロード。
http://japan.xilinx.com/support/documentation/ml403-edk.htm
あたりにあるけど、ready_for_download/download.bitだとまだ動いてない。
http://www.xilinx.com/products/boards/ml403/files/ml403_emb_ref_ppc_81.zipのimplementation/download.bitで動いた。8.1は結構古いのでEDK9.2iだと新しいフォーマットにコンバートしまくる。で、コンパイルにしくる。分からんなー。
解凍。compileしたzImage.elfをarch/ppc/boot/images/からもってくる。
% xmd -tcl genace.tcl -jprog -board ml403 -hw implementation/download.bit -elf zImage.elf -ace top.ace
cfの1つめのFATにtop.ace入れて起動。
動いた動いた。
★これからやる事
0. referenceデザインをコンパイルしてbitファイルを生成するまで成功させる。
-> これが結構大変風。
1. 自分で作ったFPGA回路をPowerPCへのバスへ接続させる
2. ハードウェアビットストリームを書き込む
3. linuxのデバイスドライバを作成
はっきり言って、0,1,2はさっぱり分かりません。これからベンキョーベンキョー。
いつまでにできるかなー。
トラックバック(0)
このブログ記事を参照しているブログ一覧: Linux 2.6 on Xilinx ML403 Reference Board
このブログ記事に対するトラックバックURL: http://www.imaq.net/cgi-bin/mt/mt-tb.cgi/585

ml403_emb_ref_ppc_81をベースに以下の情報を参照して、修正したらコンパイル成功した。8.1から8.2へのアップデート
http://japan.xilinx.com/support/answers/23993.htm
uClibc buildrootをコンパイルする時、LD_LIBRARY_PATHに"."が入ってるとシクる。
vga patch
http://patchwork.ozlabs.org/linuxppc-embedded/patch?id=10854