エンベデッドテクノロジー製 MPC104-ISOSIO4S シリアル(UART)ボードを、Armadillo-460と組み合わせて使用する方法を説明します。MPC104-ISOSIO4Sの詳しい情報は、メーカーWebサイトをご覧ください。
本Howtoでのおおまかな手順は以下のようになります。
本Howtoで使用するソフトウェアは以下の通りです。
- Linuxカーネルソース: linux-2.6.26-at15.tar.gz
- ユーザーランドイメージ: romfs-a460-1.00.img.gz
- パッチ: linux-a460-mpc104sio4.patch
1. 事前準備
1.1. MPC104-ISOSIO4Sのディップスイッチ, ジャンパー設定を行う
Howtoで使用する設定について説明します。同様の設定を行ってください。 詳しいディップスイッチ, ジャンパー設定は、HT3080のマニュアルをご覧ください。
- S1~S5 (I/Oアドレス = PORT1: 0x03F8, PORT2: 0x02F8, PORT3: 0x03E8, PORT4: 0x02E8)
スイッチ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
S1 | ON | ON | ON | ON | ON | ON | OFF | OFF |
S2 | OFF | OFF | OFF | OFF | OFF | OFF | OFF | OFF |
S3 | OFF | ON | OFF | OFF | OFF | ON | OFF | OFF |
S4 | OFF | ON | OFF | OFF | OFF | OFF | OFF | OFF |
S5 | OFF | OFF | OFF | OFF | OFF | ON | OFF | OFF |
- JP3~JP6 (IRQ設定 = PORT1: IRQ4, PORT2: IRQ3, PORT3: IRQ11, PORT4: IRQ10)
ジャンパ | JP3 | JP4 | JP5 | JP6 |
---|---|---|---|---|
設定 | 2 | 3 | 6 | 7 |
- JP1~2 (IRQ割込み: Falling-Edge)
ジャンパ | JP1 | JP2 |
---|---|---|
設定 | ショート | オープン |
2. MPC104-ISOSIO4S対応Linuxカーネルを作成
2.1. カーネルのソースコードを展開してパッチを適用する
[atde3]$ wget http://download.atmark-techno.com/armadillo-460/source/kernel/linux-2.6.26-at15.tar.gz
[atde3]$ wget http://download.atmark-techno.com/armadillo-460/linux-a460-mpc104sio4.patch
[atde3]$ tar zxvf linux-2.6.26-at15.tar.gz
[atde3]$ cd linux-2.6.26-at
[atde3]$ patch -p1 < ../linux-a460-mpc104sio4.patch
2.2. ビルド
Armadillo-460 + MPC104-SIO4用のカーネルイメージを作成します。 前項で適用したパッチには、armadillo460_mpc104sio4_defconfigが含まれているので、 それを用いて設定を行います。
[atde3]$ make armadillo460_mpc104sio4_defconfig
[atde3]$ make CROSS_COMPILE=arm-linux-gnueabi-
:(ビルドには数分かかります)
[atde3]$ gzip -c arch/arm/boot/Image > linux.bin.gz
ソフトウェアマニュアルを参照し、新しい Linux カーネルイメージ(linux.bin.gz)を Armadillo-460 に書き込んでください。
3. 動作確認
作成したLinuxカーネルイメージを書き込み後、再起動してください。 起動ログには、以下のようにMPC104-ISOSIO4Sを認識したことが表示されます。
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xb20003f8 (irq = 196) is a 16550A
serial8250.0: ttyS1 at MMIO 0xb20002f8 (irq = 195) is a 16550A
serial8250.0: ttyS2 at MMIO 0xb20003e8 (irq = 203) is a 16550A
serial8250.0: ttyS3 at MMIO 0xb20002e8 (irq = 202) is a 16550A
ログインして、"/sbin/getty -L [TTY名] 19200 vt102"を行うと該当ポートにログインプロンプトが表示されます。
ポート | PORT1 | PORT2 | PORT3 | PORT4 |
---|---|---|---|---|
TTY名 | ttyS0 | ttyS1 | ttyS2 | ttyS3 |
[root@armadillo460-0 (ttymxc1) ~]# /sbin/getty -L 19200 ttyS0 vt102