Howto

Armadillo-460でPC/104接続シリアルボード(エンベデッドテクノロジー MPC104-ISOSIO4S)を使用する

エンベデッドテクノロジー製 MPC104-ISOSIO4S シリアル(UART)ボードを、Armadillo-460と組み合わせて使用する方法を説明します。MPC104-ISOSIO4Sの詳しい情報は、メーカーWebサイトをご覧ください。

本Howtoでのおおまかな手順は以下のようになります。

  1. 事前準備
  2. MPC104-SIO4対応Linuxカーネルを作成
  3. 動作確認

本Howtoで使用するソフトウェアは以下の通りです。

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