Howto

USBポートの Hi-Speed / Full-Speed 切り替え方法

Armadillo-500 CPUモジュールを利用する製品では、i.MX31のハードウェア制限によりHi-Speed対応2つのUSBポートを同時にHi-Speedで動作させることができません。必ずどちらかのポートのみをHi-Speedで動作させるようにする必要があります。

Armadillo-500開発ベースボードとArmadillo-500 FXではどのポートをHi-Speedで動作させるかはソフトウェアで設定できるようになっています。このHowtoではi.MX31のUSBポート名とArmadillo基板コネクタ名の対応を確認した上でその設定方法を紹介し、Hi-Speedで動作させるポートを切り替える手順を説明します。

i.MX31のUSBポートとArmadilloのコネクタ対応

i.MX31のUSBポートはArmadillo基板で以下のようにUSBコネクタに接続されています。

i.MX31のUSBポート Armadillo-500開発ベースボード Armadillo-500 FX
USB HOST2 CON3 (Type-Aコネクタ: 上段) CON4 (SSDコネクタ)
USB OTG CON3 (Type-Aコネクタ: 下段) CON3 (Type-Aコネクタ)

このHOST2ポートとOTGポートのどちらかのみをHi-Speedで動作させる必要があります。

カーネル設定

Armadillo-500開発ベースボードとArmadillo-500 FXのデフォルト設定ではHOST2ポートがHi-Speedで動作できるようになっています。ここでOTGポートの方に切り替えます。

Atmark Distのソースを一度ビルドした上で、make menuconfigを実行して設定画面を起動します。

[PC ~/atmark-dist]$ make menuconfig

カーネル設定画面、そしてその中のi.MX31のUSB設定画面に移動します。

Main Menu
 
Kernel/Library/Defaults Selection  --->
  [*] Customize Kernel Settings
Linux Kernel Configuration
 
Device Drivers  --->
  [*] USB support  --->
    <*>     EHCI HCD (USB 2.0) support
    [*]       Support for Freescale controller
    [...]
    Allow High Speed (on Host2 port)  --->
      (X) on Host2 port
      ( ) on OTG port

"Allow High Speed" 画面でHi-Speedで動作させるポートを選択できます。今回は "on Host2 port" の代わりに "on OTG port" を選択します。

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

カーネル設定画面で両方のポートをHi-Speedで動作させる選択肢もありますが、この設定の利用をお勧めしません。両方のポートをHi-Speedで動作させる場合、USBポートが正しく動作しない可能性があるので自己責任の上でご利用ください。

フラッシュイメージ作成

ソースをビルドしてフラッシュイメージを作成するようにmakeコマンドを実効します。

[PC ~/atmark-dist]$ make

フラッシュイメージ書き込み

Atmark Distのビルドが完了したら、出来上がったカーネルイメージファイルをフラッシュメモリに書き込みます。以下に Hermit-AtのLinuxコマンドを利用した場合の書き込む方法を示します。

[PC ~/atmark-dist]$ hermit download -i images/linux.bin.gz -r kernel

フラッシュイメージ書き込みが完了してから起動すると、OTGポートがHi-Speedで動作できるようになります。