第11章 USB

この章では、Armadillo-500 FX 液晶モデル固有のUSB2.0ホストドライバ仕様や、各種設定方法ついて説明します。

11.1. 概要

USB2.0ホストドライバーは以下の機能を有します。

  • EHCI 準拠

  • OTG非サポート

  • USB High Speed ホスト × 2

  • USB Full Speed ホスト × 1

USBインターフェースとUSBポートの対応を表11.1「USBインターフェースとUSBポートの対応」に示します。

表11.1 USBインターフェースとUSBポートの対応

インターフェースポートコネクタ最大データ転送モード

USBインターフェース1

USBOTG

CON3(Armadillo-500 FX)

High Speed

USBインターフェース2

USBHOST2

CON4(Armadillo-500 FX)

High Speed

USBインターフェース3

USBHOST1

CON1(インターフェースボード)

Full Speed


11.2. 設定

Armadillo-500 FX 液晶モデル固有のUSB2.0ホストドライバの各種設定方法ついて説明します。

11.2.1. High Speedで動作させるポートを変更する

ここでは、High Speedで動作させるUSBポートを変更する方法を説明します。Armadillo-500 FX 液晶モデルのデフォルトソフトウェアではUSBインターフェース1がFull Speed、USBインターフェース2がHigh Speedに設定されています。

[警告]

i.MX31のハードウェア制限により、USBインターフェース1とUSBインターフェース2を同時にHigh Speedで動作させることができません。一方をHigh Speedに設定した場合は、もう一方は必ずFull Speedで動作させる必要があります。

High Speedで動作させるポートの変更に関連するカーネルコンフィギュレーションのデフォルト設定を図11.1「High Speedポートのデフォルト設定」に示します。

Device Drivers  --->
    [*] USB support  --->
        <*>     EHCI HCD (USB 2.0) support
        [*]       Support for Freescale controller
            Allow High Speed (on Host2 port)  --->

図11.1 High Speedポートのデフォルト設定


"Allow High Speed"でHigh Speedで動作させるUSBポートを設定することができます。"Allow High Speed"の設定と最大データ転送モードの対応を表11.2「Allow High Speedの設定」に示します。

表11.2 Allow High Speedの設定

設定最大データ転送モード
USBインターフェース1USBインターフェース2

on Host2 port

Full Speed

High Speed

on OTG port

High Speed

Full Speed

on Host2 and OTG (not recommended)[a]

High Speed

High Speed

[a] データ転送エラーが発生する可能性があるため、推奨されない設定です。


11.2.2. USBポートの初期化方法を変更する

ここでは、USBポートの初期化方法を変更する方法を説明します。USBポートの初期化方法は、以下の2つから選択することができます。

  • カーネル起動時に初期化する

  • ユーザランドでsysfsファイルを使用して初期化する

Armadillo-500 FX 液晶モデルのデフォルトソフトウェアでは、USBインターフェース2のみカーネル起動時に初期化しています。USBインターフェース1とUSBインターフェース3はユーザランドでsysfsファイルを使用して初期化しています。

[ティップ]

USBインターフェース2以外のUSBポートをユーザランドで初期化している理由は、USBインターフェース2に接続されているUSB接続SSDのデバイスノードを固定するためです。

SSDにルートファイルシステムを構築した場合は、ルートファイルシステムの場所をデバイスノードで指定します。そのため、USBストレージ等を接続している場合でもSSDのデバイスノードは固定されている必要があります。

[ティップ]

atmark-distや、「Armadillo-500 FX 液晶モデル ソフトウェアマニュアル」に記載のあるDebian GNU/Linuxを使用している場合は、起動スクリプトで以下のようにUSBインターフェース1とUSBインターフェース3を初期化しています。

if [ -f /sys/devices/platform/fsl-ehci.1/delayed_probe ]; then
  echo 1 > /sys/devices/platform/fsl-ehci.1/delayed_probe
fi
if [ -f /sys/devices/platform/fsl-ehci.2/delayed_probe ]; then
  echo 1 > /sys/devices/platform/fsl-ehci.2/delayed_probe
fi

USBポートの初期化方法の変更に関連するカーネルコンフィギュレーションのデフォルト設定を図11.2「初期化方法のデフォルト設定」に示します。

Device Drivers  --->
    [*] USB support  --->
        <*>     EHCI HCD (USB 2.0) support
        [*]       Support for Freescale controller
        [*]         Support for Host1 port on Freescale controller
        [*]           Delay probe of Host1 port
        [*]         Support for Host2 port on Freescale controller
        [ ]           Delay probe of Host2 port
        [*]         Support for OTG host port on Freescale controller
        [*]           Delay probe of OTG port

図11.2 初期化方法のデフォルト設定


"Delay probe"で始まる設定を有効にした場合は、ユーザランドでsysfsファイルを使用して初期化する必要があります。無効にした場合は、カーネル起動時に初期化します。設定を有効にした場合の挙動を表11.3「Delay probeの設定」に示します。

表11.3 Delay probeの設定

設定説明

Delay probe of Host1 port

USBインターフェース3をカーネル起動時に初期化しません。

Delay probe of Host2 port

USBインターフェース2をカーネル起動時に初期化しません。

Delay probe of OTG port

USBインターフェース1をカーネル起動時に初期化しません。