環境
- host OS: Linux/amd64 (Ubuntu Intrepid)
- host Kernel: 2.6.27-7-server
- Target Kernel: DENX 2.6.26.7
ソースコード
MPC8349Eで使えそうなlinux kernelはいくつかあるようです。
- オリジナルのkernel.orgのカーネル
- freescaleのカーネル
http://opensource.freescale.com/git (最近あまり更新されていない?)
- DENXのカーネル
http://git.denx.de/linux-2.6-denx.git/
DENXのカーネルが比較的安定しているらしいのでこれを使うことにします。
以下のようにカーネルのソースを取得します。
$ git-clone git://www.denx.de/git/linux-2.6-denx.git linux-2.6-denx
$ cd linux-2.6-denx
$ git-pull (git-cloneした直後であれば不要, 一度git-cloneしたものはgit-pull以下を実行)
$ git-tag -l |grep DENX
.
.
DENX-v2.6.26.4
DENX-v2.6.26.5
DENX-v2.6.26.6
DENX-v2.6.26.7
$ git-archive --format=tar --prefix=linux-2.6.26.7-denx/ DENX-v2.6.26.7 | bzip2 > ../linux-2.6.26.7-denx.tar.bz2
$ cd ..
これを展開します。
$ tar jxf linux-2.6.26.7-denx.tar.bz2
$ cd linux-2.6.26.7-denx
RTCが正常に動作するためにはカーネルのソースに対して以下のパッチを適用します。
diff -ur linux-2.6.26.5-denx.orig/arch/powerpc/boot/dts/mpc8349emitx.dts linux-2.6.26.5-denx/arch/powerpc/boot/dts/mpc8349emitx.dts
--- linux-2.6.26.5-denx/arch/powerpc/boot/dts/mpc8349emitx.dts 2008-09-09 19:54:43.000000000 +0900
+++ linux-2.6.26.5-denx/arch/powerpc/boot/dts/mpc8349emitx.dts 2008-10-07 11:49:43.000000000 +0900
@@ -82,6 +82,11 @@
interrupts = <15 0x8>;
interrupt-parent = <&ipic>;
dfsrr;
+
+ rtc@68 {
+ compatible = "dallas,ds1337";
+ reg = <0x68>;
+ };
};
spi@7000 {
$ cd linux-2.6.26.7-denx
$ make ARCH=powerpc CROSS_COMPILE=/usr/bin/powerpc-linux-gnu- menuconfig
Kernel options>High memory supportを有効にする <--1GB memoryを有効にするため
Device Drivers>DMA Engine support> Freescale MPC85xx/MPC83xx DMA supportを有効にする
Device Drivers>Serial ATA ... > ATA SFF support>Generic platform device PATA supportを無効にする
$ make ARCH=powerpc CROSS_COMPILE=/usr/bin/powerpc-linux-gnu- zImage
.
.
できあがった、arch/powerpc/boot/cuImage.mpc8349emitx をtftpで読み込めるように設定してMPC8349E-mITXを起動すれば完成です。