工場出荷状態のフラッシュメモリに書き込まれているLinuxカーネルイメージには、デフォルトコンフィギュレーションが適用されています。 Armadillo-Box WS1用のデフォルトコンフィギュレーションが記載されているファイルは、Linux カーネルソースファイル(linux-3.14-at[VERSION].tar.gz)に含まれるarch/arm/configs/armadillo-box-ws1_defconfig
です。
armadillo-box-ws1_defconfig
で有効になっている主要な設定を表8.1「Linuxカーネル主要設定」に示します。
表8.1 Linuxカーネル主要設定
コンフィグ | 説明 |
---|
NO_HZ | Tickless System (Dynamic Ticks) |
HIGH_RES_TIMERS | High Resolution Timer Support |
PREEMPT | Preemptible Kernel |
AEABI | Use the ARM EABI to compile the kernel |
COMPACTION | Allow for memory compaction |
BINFMT_ELF | Kernel support for ELF binaries |
Armadillo-Box WS1 で利用することができるデバイスドライバについて説明します。
各ドライバで利用しているソースコードの内主要なファイルのパスや、コンフィギュレーションに必要な情報、及びデバイスファイルなどについて記載します。
Armadillo-Box WS1 の初期化手順やハードウェアの構成情報、ピンマルチプレクスの情報などが定義されています。
- 関連するソースコード
arch/arm/mach-imx/mach-armadillo-box-ws1.c |
Armadillo-Box WS1 では、フラッシュメモリを制御するソフトウェアとして MTD(Memory Technology Device) を利用しています。MTDのキャラクタデバイスまたはブロックデバイスを経由して、ユーザーランドからアクセスすることができます。
- 関連するソースコード
drivers/mtd/cmdlinepart.c |
drivers/mtd/maps/physmap.c |
drivers/mtd/mtd_blkdevs.c |
drivers/mtd/mtdblock.c |
drivers/mtd/mtdchar.c |
drivers/mtd/mtdconcat.c |
drivers/mtd/mtdcore.c |
drivers/mtd/mtdpart.c |
drivers/mtd/mtdsuper.c |
drivers/mtd/chips/cfi_cmdset_0001.c |
drivers/mtd/chips/cfi_probe.c |
drivers/mtd/chips/cfi_util.c |
drivers/mtd/chips/chipreg.c |
drivers/mtd/chips/gen_probe.c |
Armadillo-Box WS1 のシリアルは、i.MX257 の UART(Universal Asynchronous Receiver/Transmitter) を利用しています。
i.MX25 プロセッサは UART1 から UART5 までの 5 つの UART モジュールを内蔵しています。Armadillo-Box WS1 では、UART2をコンソールとして利用しています。
- フォーマット
データビット長: 7 or 8ビット |
ストップビット長: 1 or 2ビット |
パリティ: 偶数 or 奇数 or なし |
フロー制御: CTS/RTS or XON/XOFF or なし |
最大ボーレート: 4Mbps |
| |
---|
高速なボーレート(1Mbps以上など)を設定して大量のデータを受信した場合、TTYバッファ(サイズ: 64kByte)が枯渇してユーザーランドからデータが取得できない場合があります。この場合、ユーザーランドでZMODEMのように確認応答と再送制御に対応したプロトコルを利用するなどの対策を行う必要があります。
|
- 関連するソースコード
drivers/tty/n_tty.c |
drivers/tty/tty_buffer.c |
drivers/tty/tty_io.c |
drivers/tty/tty_ioctl.c |
drivers/tty/tty_ldisc.c |
drivers/tty/tty_ldsem.c |
drivers/tty/tty_mutex.c |
drivers/tty/tty_port.c |
drivers/tty/serial/serial_core.c |
drivers/tty/serial/imx.c |
Armadillo-Box WS1 のEthernet(LAN)は、i.MX257 の FEC(Fast Ethernet Controller)を利用しています。
- 機能
通信速度: 100Mbps(100BASE-TX), 10Mbps(10BASE-T) |
通信モード: Full-Duplex(全二重), Half-Duplex(半二重) |
Auto Negotiationサポート |
キャリア検知サポート |
リンク検出サポート |
- 関連するソースコード
drivers/net/Space.c |
drivers/net/loopback.c |
drivers/net/mii.c |
drivers/net/ethernet/freescale/fec_main.c |
drivers/net/ethernet/freescale/fec_ptp.c |
drivers/net/phy/mdio_bus.c |
drivers/net/phy/phy.c |
drivers/net/phy/phy_device.c |
Armadillo-Box WS1 のSDホストは、i.MX257 の eSDHC(Enhanced Secured Digital Host Controller)を利用しています。
Armadillo-Box WS1 では、eSDHC1のみを利用することができます。
- 機能
カードタイプ: microSD/microSDHC/microSDXC |
バス幅: 4bit |
スピードモード: Default Speed(24MHz), High Speed(48MHz) |
カードディテクトサポートなし |
ライトプロテクトサポートなし |
- デバイスファイル
メモリカードの場合は、カードを認識した順番で/dev/mmcblkN (Nは'0'からの連番)となります。 |
I/Oカードの場合は、ファンクションに応じたデバイスファイルとなります。 |
- 関連するソースコード
drivers/mmc/card/block.c |
drivers/mmc/card/queue.c |
drivers/mmc/core/ |
drivers/mmc/host/sdhci-esdhc-imx.c |
drivers/mmc/host/sdhci-pltfm.c |
drivers/mmc/host/sdhci.c |
Armadillo-Box WS1 のUSBホストは、i.MX257 の UTMI-USB-PHY および USBOH(Universal Serial Bus OTG and Host) を利用しています。
Armadillo-Box WS1 では、USB ホストインターフェース下段のOTGポートおよびUSB ホストインターフェース上段のHOSTポートを利用することができます。
- 機能
Universal Serial Bus Specification Revision 2.0 準拠 |
Enhanced Host Controller Interface (EHCI)準拠 |
転送レート(OTG): USB2.0 High-Speed (480Mbps), Full-Speed (12Mbps), Low-Speed (1.5Mbps) |
転送レート(Host): USB2.0 Full-Speed (12Mbps), Low-Speed (1.5Mbps) |
- デバイスファイル
メモリデバイスの場合は、デバイスを認識した順番で/dev/sdN (Nは'a'からの連番)となります。 |
- 関連するソースコード
drivers/usb/chipidea/ci_hdrc_imx.c |
drivers/usb/chipidea/ci_hdrc_msm.c |
drivers/usb/chipidea/ci_hdrc_zevio.c |
drivers/usb/chipidea/core.c |
drivers/usb/chipidea/host.c |
drivers/usb/chipidea/otg.c |
drivers/usb/chipidea/usbmisc_imx.c |
drivers/usb/host/ehci-hcd.c |
drivers/usb/host/ehci-hub.c |
drivers/usb/phy/phy-generic.c |
Armadillo-Box WS1 には、セイコーインスツル(SII)製 S-35390Aが搭載されています。
S-35390Aは、I2C2 (I2C ノード: 1-0030) に接続されています。
| |
---|
RTCには、linux-3.14-at4以降のカーネルで対応しています。
|
- 関連するソースコード
drivers/rtc/class.c |
drivers/rtc/hctosys.c |
drivers/rtc/interface.c |
drivers/rtc/rtc-dev.c |
drivers/rtc/rtc-lib.c |
drivers/rtc/rtc-proc.c |
drivers/rtc/rtc-s35390a.c |
drivers/rtc/rtc-sysfs.c |
drivers/rtc/systohc.c |
| |
---|
Armadillo-Box WS1のハードウェアは、S-35390Aが持つアラーム割り込み機能をサポートしていません。
|
| |
---|
Armadillo-Box WS1にRTCが搭載されていない場合、起動ログに以下のようなエラーが出ます。
rtc-s35390a 1-0030: error resetting chip
rtc-s35390a: probe of 1-0030 failed with error -5
このエラーはカーネルコンフィギュレーションでS-35390Aのドライバを無効化する事で抑制できます。
Device Drivers --->
<*> Real Time Clock --->
*** I2C RTC drivers ***
< > Seiko Instruments S-35390A 無効化 |
Armadillo-Box WS1 に搭載されているソフトウェア制御可能なLEDには、GPIOが接続されています。Linuxでは、GPIO接続用LEDドライバ(leds-gpio)で制御することができます。
Linuxカーネルでは、実装されたLEDを色の名前を命名して区別しています。
LEDクラスディレクトリとLEDの対応については、表6.5「LEDクラスディレクトリとLEDの対応」を参照してください。
- sysfs LEDクラスディレクトリ
/sys/class/leds/red |
/sys/class/leds/green |
/sys/class/leds/yellow |
- 関連するソースコード
drivers/leds/led-class.c |
drivers/leds/led-core.c |
drivers/leds/led-triggers.c |
drivers/leds/leds-gpio-register.c |
drivers/leds/leds-gpio.c |
drivers/leds/trigger/ledtrig-default-on.c |
drivers/leds/trigger/ledtrig-heartbeat.c |
drivers/leds/trigger/ledtrig-timer.c |
Armadillo-Box WS1 に搭載されているユーザースイッチには、GPIOが接続されています。GPIOが接続されユーザー空間でイベント(Press/Release)を検出することができます。Linuxでは、GPIO接続用キーボードドライバ(gpio-keys)で制御することができます。
ユーザースイッチには、次に示すキーコードが割り当てられています。
表8.3 キーコード
ユーザースイッチ | キーコード | イベントコード |
---|
SW1 | KEY_1 | 2 |
ユーザースイッチを制御する GPIO接続用キーボードドライバは次の通りです。
表8.4 GPIO接続用キーボードドライバ
ユーザースイッチ | GPIO接続用キーボードドライバ |
---|
SW1 | gpio-keys |
- 関連するソースコード
drivers/input/evdev.c |
drivers/input/ff-core.c |
drivers/input/input-compat.c |
drivers/input/input-mt.c |
drivers/input/input-polldev.c |
drivers/input/input.c |
drivers/input/keyboard/gpio_keys.c |
drivers/input/keyboard/gpio_keys_polled.c |
Armadillo-Box WS1 のウォッチドッグタイマーは、i.MX257 の WDOG(Watchdog Timer) を利用します。
ウォッチドッグタイマーは、Hermit-Atブートローダーによって有効化されます。標準状態でタイムアウト時間は10秒に設定されます。Linuxカーネルでは、ウォッチドッグタイマードライバの初期化時に このタイムアウト時間を上書きします。カーネルタイマーを利用して定期的にウォッチドッグタイマーをキックします。
カーネルが上書きするウォッチドックタイマーのタイムアウト時間は、カーネルバージョンによって異なります。標準のタイムアウト時間は次の通りです。
表8.5 ウォッチドッグタイマーのタイムアウト時間
カーネルバージョン | タイムアウト時間 |
---|
linux-3.14-at3以前 | 60秒 |
linux-3.14-at4以降 | 10秒 |
何らかの要因でウォッチドッグタイマーのキックができなくなりタイムアウトすると、システムリセットが発生します。
- 関連するソースコード
drivers/watchdog/imx2_wdt.c |
| |
---|
i.MX257 の WDOG は、一度有効化すると無効化することができません。そのため、halt コマンドなどを実行してLinux カーネルを停止した場合は、ウォッチドッグタイマーのキックができなくなるためシステムリセットが発生します。
WDOGドライバーの終了処理では、タイムアウト時間をWDOGの最大値である128秒に設定します。
|