とりあえずカーネルをビルドして実行できるようにしたので、実装方針を考えて見ます。
- hintsベースで最小限を実装する
- bhndベースで実装してみる
- FDTで実装してみる
FreeBSD/mipsのBroadcomサポートは古めのチップのsibaと新目のチップのbcmaをサポートするbhndを作ったんだけど、中途半端で終っています。
現実的には1かな。。。
atheros/ar531xを雛形にしようと思う。
BCM3383(BMIPS5000)とBCM3380(BMIPS4350)で動かす事をめざし、BCM3300などの古いものは対象外。
既存コードを最大限利用する。
BCM3380やBCM3383はBCM6838に近いようだ。
GPLのソースを見てみると、BroadcomのmipsはBCM4(5),BCM6(3),BCM7の3本柱だったみたいだ。BCM33はBCM6系の亜流なので、情報が極めて少ない。
BCM3380とBCM3383はUARTのアドレスが違い、BCM3380,3383はUARTは2個なのだがBCM3384は3個とちょこちょこいじられている。UARTはソフトさんの命綱なので、あまりいじるべきではない。