[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: patch for L-Router



竹村です。

----- Original Message -----
From: "Takao Shinohara" <shin@sm.sony.co.jp>
To: <port-hpcmips-ja@jp.netbsd.org>
Sent: Sunday, December 23, 2001 12:35 PM
Subject: patch for L-Router


> L-Router用のパッチ(暫定)です。
>
> 実装方法は適当なので、本家にmergeする前にはもっとブラッシュアップする必
> 要がありますが、取りあえずの叩き台にはなると思います。

PCIUの割り込み部分はVr4131(シグマリオンII)と共通の問題ですね。
そのほかの部分はわりと小さな(でも MI だったり)修正でしょうか。
周辺の小さい問題から個別にマージしていくのかな。。。

> 1) i82557.c.diff
>
> EEPROMのフォーマットが特殊なので、それに対応するための変更です。実行時に
> 見分ける方法を思い付かなかったので、#ifdefになっています。
>
> FlashROMに書かれているlinuxが変なMACアドレスで動いてもかまわないのであれ
> ば、EEPROMを標準的なフォーマットに書き直してしまうという手もありますが
......
>
> 2) locore.S.diff
>
> FlashROMからRAMにカーネルをコピーして実行するだけのいんちきブートローダ
> をカーネルの先頭に仕込んでみました。ブートローダの分離は検討中です。
>
> 3) lrouter.diff
>
> arch/hpcmips以下のファイルに対する変更です。
>
> conf/files.hpcmips VRC4173の有無を見分けたかったのでneed-flagを追加
> hpcmips/machdep.c bootinfoが渡されなかった場合のNULLポインタ参照対
> 策
> include/pci_machdep.h IDEコントローラがcompatibility modeに設定されて
> いるため(?)それに対応
> vr/rtc.c debug printfのフォーマット修正
> vr/rtcreg.h RTCの設定値がCEと異なるため、YBASEとEPOCHYEARを
> 変更できるように修正

このへんまではVr4131とは無関係っぽいですね。

> vr/vr.c メモリのイメージをチェックすると32MB全部がprobe
> されなかったのでイメージを無視できるように修正

これって、単純に bcmp の長さをもっと長くするとかでは回避できないの
でしょうか。

> vr/vrpciu.c VRC4173がなかったらL-Routerであると決め付けてあ
> れこれ変更(汚い)。L-Router固有の処理については
> #ifdef LROUTERも併用。L-Routerの場合はPCI memory
> spaceを無効にしている。

現在 hpcmips には一緒にコンフィグできないものとして
Vr41[11|21],TX391x,Tx392x,Vr41[22|31] の4つがあるのですが、
これはできるだけ増やさないほうがよいと思います。
L-Router だけのコンフィグが書けて L-Router 専用のカーネルが
つくれるのはうれしいのですが、L-Router と MPC303(Vr4122) 両用の
カーネルが作成できないのはうれしくありません。
probe できない部分に関しては platid でドライバ内のテーブルを検索し、
テーブルの値をもとに動作を変えるという方法をとるとよいのではないで
しょうか。
(現実には L-Router の platid を指定するためには L-Router 専用の
コンフィグを書くのでカーネルも当然専用になってしまいますが、一般的
な方向としての話。)

また、pciu の割り込みに関しては、config_hook で解決できると思います。
現在の button と btnmgr のように、pciintr というのを作って hpcio に
アタッチしするというのはどうでしょうか。
config_hook は現在の実装のままだと割り込みの度に呼び出すのは
ちょっとコストが高いので、API を追加してコストを抑えます。

config の記述例
pciintr0 at vrgiu? platform LROUTER id PCI(0,0,0) port 1
pciintr1 at vrc4173giu? platform LROUTER id PCI(0,1,0) port 15

現状では vrc4173giu は存在せず、vrc4172bcu が gpio の
面倒を見ていますが、これは独立させて Vrc4172gpio とおなじ
hpcioif を提供する hpcio にする必要があります。

ぜんぜん詳細は煮詰まっていないのですが、とりあえず割り込み関連は
こんな感じでどんなもんでしょう?

とりあえず Vr4122 のマシンもないと作業できないとおもって、L-Router
買ったのですが、どう進めていくのがいいですかね〜?
MPC303 のこともあるので、SigmarionII よりも L-Router を中心にすすめる
ほうがいいでしょうか。(SigmarionII もっているの私だけみたいだし)

Takemura