Armadillo-9/200シリーズ用カーネル2.6.26(pre1)ベータリリース

Armadillo-9/200シリーズ対応のカーネル2.6.26ベータリリース版を更新しました。カーネルのバージョンはバージョン2.6.26-at4-ep93xx-port-pre1です。

フラッシュメモリのカーネルリージョンサイズが圧迫されていたため、IPv6サポートを外しています。必要な場合は、カーネルのコンフィギュレーションでIPv6を有効にしてください。

対応製品

  • Armadillo-220
  • Armadillo-230
  • Armadillo-240
  • Armadillo-9

上記以外のボードはサポートされません。

注意事項

本リリースは正式バージョン公開前のベータリリースです。動作不具合等を引き起こす可能性がありますので、ご了承、ご注意の上ご利用下さい。動作不具合を発見した場合は、メーリングリストに投稿をお願いいたします。

ダウンロード

ソースアーカイブおよびイメージファイルは以下からダウンロードすることができます。イメージファイルの作成に使用したatmark-distはv20090318です。

ソースアーカイブ

カーネル: linux-2.6.26-at4-ep93xx-port-pre1.tar.gz

Armadillo-220 フラッシュイメージ

カーネル: linux-a220-ep93xx-port-pre1.bin.gz

ユーザランド: romfs-a220-recover-ep93xx-port-pre1.img.gz

Armadillo-230 フラッシュイメージ

カーネル: linux-a230-ep93xx-port-pre1.bin.gz

ユーザランド: romfs-a230-recover-ep93xx-port-pre1.img.gz

Armadillo-240 フラッシュイメージ

カーネル: linux-a240-ep93xx-port-pre1.bin.gz

ユーザランド: romfs-a240-recover-ep93xx-port-pre1.img.gz

Armadillo-9 フラッシュイメージ

カーネル: linux-a9-ep93xx-port-pre1.bin.gz

ユーザランド: romfs-a9-ep93xx-port-pre1.img.gz

ビルド手順

開発環境およびatmark-distに変更はありません。atmark-distのビルド方法についての詳しい情報は、ダウンロードページの「Atmark Dist 開発ガイド」をごらんください。

atmark-distのコンフィギュレーションで指定するボード名(AtmarkTechno Products)には以下のいずれかを指定してください。

Armadillo-9

  • Armadillo-9

Armadillo-220

  • Armadillo-220.Base
  • Armadillo-220.Recover

Armadillo-230

  • Armadillo-230.Base
  • Armadillo-230.Recover

Armadillo-240

  • Armadillo-240.Base
  • Armadillo-240.Recover

ドライバ

いくつかのドライバが未実装または動作未検証となっています。

Armadillo-9/200シリーズ共通

ドライバ 説明
シリアル 実装済み
RTC 実装済み
LAN 実装済み
USB 動作未検証
GPIO 実装済み

Armadillo-200シリーズ専用

ドライバ 説明
NAND 実装済み
LED 実装済み
タクトスイッチ 実装済み

Armadillo-9専用

ドライバ 説明
コンパクトフラッシュ 未実装
IDE 未実装

Armadillo-9/240用

ドライバ 説明
VGA 実装済み

Armadillo-230専用

ドライバ 説明
smsc911x 動作未検証

RTCドライバ

詳しくはこちらをごらんください。デフォルトで無効になっています。

GPIOドライバ

以下の3つのドライバが実装されています。

GPIOクラス対応GPIOドライバ

GPIOクラス対応GPIOドライバに対応するカーネルのコンフィギュレーションは以下を参照してください。デフォルトで有効になっています。


Device Drivers  --->
  GPIO Support  --->
    [*] /sys/class/gpio/... (sysfs interface)

GPIOクラス対応GPIOドライバが有効になっている場合、/sys/class/gpio/以下のファイルを操作することでGPIOを制御することができます。Armadillo-9の場合は、デフォルトでsysfsがマウントされないため、以下のコマンドを実行してsysfsをマウントしてください。


[armadillo ~]# mkdir /sys
[armadillo ~]# mount -t sysfs none /sys

以下はGPIOを制御するコマンド例です。詳しくは、カーネルのソースファイルに含まれる"Documentation/gpio.txt"をごらんください。


[armadillo ~]# cd /sys/class/gpio
[armadillo ~]# ls
export      gpiochip16@ gpiochip32@ gpiochip48@ gpiochip8@
gpiochip0@  gpiochip24@ gpiochip40@ gpiochip56@ unexport
[armadillo ~]# echo 4 > export      # GPIO0をエクスポート
[armadillo ~]# ls
export      gpiochip0@  gpiochip24@ gpiochip40@ gpiochip56@ unexport
gpio4@      gpiochip16@ gpiochip32@ gpiochip48@ gpiochip8@
[armadillo ~]# ls gpio4
direction  edge       subsystem@ uevent     value
[armadillo ~]# cat gpio4/direction  # directionを確認
out
[armadillo ~]# cat gpio4/value      # 値を確認
0
[armadillo ~]# echo 1 > gpio4/value # 値を1(high)に設定
[armadillo ~]# echo in > gpio4/direction  # directionをinputに設定
[armadillo ~]# cat gpio4/edge       # 割り込みタイプを確認
none
[armadillo ~]# echo rising >  gpio4/edge  # 割り込みタイプを確認
[armadillo ~]# echo 4 > unexport      # 割り込みタイプをrisingに設定
[armadillo ~]# ls
export      gpiochip16@ gpiochip32@ gpiochip48@ gpiochip8@
gpiochip0@  gpiochip24@ gpiochip40@ gpiochip56@ unexport
[armadillo ~]# cat gpiochip0/label  # gpiochip0のラベルを確認
A                   # gpiochip0がPort Aであることを確認できる
[armadillo ~]# cat gpiochip0/base   # gpiochip0のベース番号を確認
0                   # Port A:0のGPIO番号が0であることを確認できる
[armadillo ~]# cat gpiochip0/ngpio  # gpiochip0のGPIO数を確認
8

export/unexportに渡すGPIO番号は、以下の表を参照してください。

Armadillo-200シリーズのGPIO番号

GPIO番号 ハードウェアマニュアルのGPIO名
4 GPIO_0(Port A:4)
5 GPIO_1(Port A:5)
6 GPIO_2(Port A:6)
7 GPIO_3(Port A:7)
8 GPIO_4(Port B:0)
9 GPIO_5(Port B:1)
10 GPIO_6(Port B:2)
11 GPIO_7(Port B:3)
24 GPIO_8(Port D:0)
25 GPIO_9(Port D:1)
26 GPIO_10(Port D:2)
27 GPIO_11(Port D:3)
40 GPIO_12(Port C:0)
41 GPIO_13(Port C:1)
42 GPIO_14(Port C:2)
43 GPIO_15(Port C:3)

Armadillo-9のGPIO番号

GPIO番号 ハードウェアマニュアルのGPIO名
4 GPIO_0(Port A:4)
5 GPIO_1(Port A:5)
6 GPIO_2(Port A:6)
7 GPIO_3(Port A:7)
8 GPIO_4(Port B:0)
9 GPIO_5(Port B:1)
10 GPIO_6(Port B:2)
11 GPIO_7(Port B:3)
28 GPIO_8(Port D:4)
29 GPIO_9(Port D:5)
30 GPIO_10(Port D:6)
31 GPIO_11(Port D:7)

gpioX/edgeにnone以外を指定した場合には、指定した割り込みが入るまでgpioX/valueをpoll/select等でポーリングすることができます。ポーリングを開始する前に一度gpioX/valueをreadしておく必要があります。再度ポーリングを行ないたい場合は、gpioX/valueを一旦closeしてから再度openする必要があります。以下はgpio4/valueをポーリングするサンプルコードです。


int main(int argc, char *argv[])
{
    int fd;
    int i;
    fd_set fds;
    char buf;

    for (i = 0; i < 5; i++) {
        fd = open("/sys/class/gpio/gpio4/value", O_RDONLY);

        read(fd, &buf, 1);

        FD_ZERO(&fds);
        FD_SET(fd, &fds);
        ret = select(fd + 1, &fds, NULL, NULL, NULL);

        close(fd);
    }

    return 0;
}

sysfs対応GPIOドライバ

詳しくはこちらをごらんください。デフォルトで無効になっています。

キャラクタデバイス版GPIOドライバ

詳しくはこちらをごらんください。デフォルトで有効になっています。

キャラクタデバイス版GPIOドライバが有効になっている場合、atmark-distに含まれるgpioctrlを使用できるようになります。

NANDドライバ

詳しくはこちらをごらんください。デフォルトでは無効になっています。

LEDドライバ

以下の2つのドライバが実装されています。

LEDクラス対応LEDドライバ

詳しくはこちらをごらんください。デフォルトでは有効になっています。

キャラクタデバイス版LEDドライバ

詳しくはこちらをごらんください。デフォルトでは有効になっています。

インプットレイヤ対応タクトスイッチドライバが有効になっている場合、atmark-distに含まれるledctrlを使用できるようになります。

タクトスイッチドライバ

以下の2つのドライバが実装されています。

インプットレイヤ対応タクトスイッチドライバ

詳しくはこちらをごらんください。デフォルトでは有効になっています。

インプットレイヤ対応タクトスイッチドライバが有効になっている場合、atmark-distに含まれるswmgrを使用できるようになります。

キャラクタデバイス版タクトスイッチドライバ

詳しくはこちらをごらんください。デフォルトでは無効になっています。