PC EnginesのALIXを使いこなすためにNetBSD kernelを触っている。ALIXのハードウェア的には実装されているけれどNetBSD-current (4.99.42: 2007/12/20)ではまだ扱えない機能がいくつかあってとりあえずそいつらを見えるようにしよう、とこの2日間ほど作業をしてみた。
まだ扱えない機能でサポートしたいなあ、と強く思ったのは、とりあえず
- GPIO
- Watchdog timer
- I2C bus
カーネルを触るときにはまず先人達の知恵を検索してみるところから始まる。OpenBSDのグループはAMD Geode/LXシリーズに愛があるので、とりあえずその辺で動いているものが無いかと探してみると案の定src/sys/arch/i386/glxpcib.cというファイルがあるのを発見した。中身をざっとみると、ALIXで使われているAMD CS5536のPCI-ISA host bridgeのドライバで、GPIOとWatchdog timerをサポートするコードがはいっている。OpenBSDとNetBSDは比較的カーネルのコンパチビリティが高い(部分が多い)ので、とりあえずこのコードをベースに作業を進めることにした。I2Cはそれらが動いてからでいいだろう。
具体的な作業は次のエントリーで。
0 件のコメント:
コメントを投稿