久しぶりに Amazon をのぞいてみたら非SDHCの4GSD (TS4GSDC)がついに品切れになってました。
もう手に入らないのかぁ。今となっては 2GSD じゃ物足りないしなぁ。SDHC使えるようにならないかなぁ。
Angstrom 環境(kernel-2.6)なら SDHC も使えるらしいので、純正環境(kertnel-2.4)でもドライバ次第で使えるはずなんですが、SD ドライバのソースが開示されていないので手も足も出ない状態です。
無謀にも kernel-2.6 からバックポートしようかなぁとも思ったんですが、ブロックデバイスのドライバは書いたことないし、SDHCの規格知らないし。。。
あと、うまくポーティングできたとしても、タスクトレイのアイコンと同期させるのは無理だろうし。。。
うーむ。
と、まぁ、以前からそんなことを考えてはいたのですが、ある日、SDHC のドライバを書いたことがある会社の先輩にSDHCについて何気なく聞いてみると、「SDとSDHCは初期化位しか差はないよ。あとはほとんど同じ」と言われました。
え?まじ? 初期化だけごまかせればいいってこと?
それくらいなら Binary Hack で何とかなるかも?? <- 無謀 ^^;
ということで、今月の初めくらいからtetsuさんのとこで配布されている4GSD対応SDドライバの解析を始めてみました。少しずつですが解析が進んでいるのと、ちょうど最近コメントでSDHC関係の書き込みがあったりしたので、4GSD へ ipk インストールの道シリーズのように経過を書いていこうと思います。
あ、解析の結果、ダメだったという可能性もありますので、あまり期待せず、ゆるーく見守っていただけるとありがたいです (^^;
まず、必要なものを集めます。
まずSD AssociationからSDHC の簡易仕様書がダウンロードできます。簡易仕様書ではSDHCドライバは書けないと勝手に思っていたのですが、そんなことはなく、ちゃんとすべて書いてあるようです(と前述の先輩が言ってました)。英語だからってちゃんと読んでなかったのがバレバレです。
あとは参考になりそうなのが、Angstrom の kernel 2.6 カーネルです。kernel 2.6 用ではありますが、PXA270のちゃんと動作するドライバのソースはとても貴重です。
Angstrom はカーネルだけポンと取得することができない(沢山パッチを当てて最終ツリーになる)ので、bitbake 環境を構築する必要があります。ここを参考に作業します。
カーネルツリーだけが欲しいので、最後の bitbake コマンドは以下のように linux-rp で実行します。
$ bitbake linux-rp
とりあえず、最低限ですが、情報元は準備できました。次回からはドライバを解析していきます。