SuperH Linux

ルネサスの評価ボードの続き。

Linux kernel

RTS7751R2DまたはR0P751RLC0011RLで使える2.6系カーネルで、以下を試してみた。

バージョンごとの比較

version CF Video USB Host
linux-2.6.14.4-R2D+
linux-2.6.23.17 ×
linux-2.6.24.7 ×
linux-2.6.25.17
linux-2.6.26.5

RTS7751R2DとR0P751RLC0011RLの違い

  • 主要チップは同じ。
  • PCIスロットの数(2→1)やEthernetのコネクタ数(2→5)が異なる。
  • それぞれでboard revision 1.0と1.1がある。
  • board revision=FPGA revision
  • RTS7751R2Dのrevision 1.1はR2D-1、R0P751RLC0011RLはR2D+(R2D-Plus)と呼ばれているようだ。
  • R2D-1はFGPAにバグがあり割り込みを正しくハンドリングできないらしく、CFにポーリングでアクセスする。

SM501のビデオ出力について

SM501はドットクロックとして、マスタークロックを分周したクロックしか生成できない(任意のクロックを生成できない)。まともに表示できるタイミングは試行錯誤するしかないが、XGA以上になると誤差が大きい。チップのスペックとしてはSXGAまで出せることになっているが、実用上の限界はSVGAだと思ったほうが良い。SM502では任意のクロックを生成できるようになっているらしい。

linux-2.6.14.4-R2D+_20060906

http://www.superh-linux.org/platforms/index.html からダウンロード可能。
SuperH Linuxの成果をまとめたもの。RTS7751R2D用だがR0P751RLC0011RLでも動作する。
CF(Compact Flash)はIDEとして認識する。
SM501のビデオ出力については必要最小限のデバイスドライバが用意されている。起動時はVGA表示となる。解像度や色数などモードを変更するにはioctl経由でレジスタを操作する必要がある。(データシートを読まないといけないのでめんどい)
SM501のUSBホスト機能が使用可能。

linux-2.6.23.17

R2D-1かR2D+かの判別方法が妥当でないため、パッチを当てないとCFが使えない。arch/sh/boards/renesas/rts7751r2d/setup.cではボードの種別ではなくFPGAバージョンを判別しているようで、rev 1.1のR0P751RLC0011RLでは動作しないので該当部分をコメントアウトする。
CFはSerial ATAとして認識する。
ビデオ出力はfbを普通に使えるが、タイミングなどは自前で指定してやる必要がある。

linux-2.6.24.7

CFアクセスは修正されており、R2D-1用のカーネルを生成するとポーリングするようになっている。
USB Host機能は、コードは一部入っているものの、全く機能しない。

linux-2.6.25.17

USB Host機能は入っているが、Mass storageで試したところ動作はしなかった。

linux-2.6.26.5

一通り動く。すばらしい。
今のところlinux-2.6.14.4-R2D+か、linux-2.6.26.5がお勧め。

余談

R0P751RLC0011RLでは表面がPCカードスロット、裏面がCFスロットという配置になっている。
最初CFスロットの存在に気がつかず、CF→Type2アダプタで変換して挿し、「反応ないなあ…」という間抜けなことをやっていた。

CFはUSBのカードリーダなどで接続