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

[pbsd-mg2] Re: Telios cannot load kernel



 >  | あ、PR31700 では DRAM の phys addr が 0x0 でなくて、0x4400 0000 なの
 >  | か。platid でも見て場合分けするしかないかもしれません。

 > 0x44000000及び、0x04000000は使えるようです。
 > 0x04000000を使うことにして、

つまり、DRAM の開始アドレスが 0x0 ではないということですね。
開始アドレスの一覧をテーブルで持たせて、順に処理するように
して、VirtualCopy がエラーならスキップするようにすればいいで
すね。(今度やっておきます。いつもながらずいぶん先になってしまう
かも知れませんが...)

 > interrupt vectorのかわりに実行するところを、
 > startprog.c:asm_code_holder()
 >  print 'OK' を削る (linuxce-MLの方でもこのあたり話題になっていたようですが...)

消しときます。Warner さんにも指摘されています。

 >  I-cache, D-cache のフラッシュを削る(これは、R3000用に書きかえる???)

以前は flush してませんでした。flush しないと、2 回に 1 回ぐらい
起動できないことがありました。動作が不安定な場合は、ここを
疑ったほうがいいと思います。sys/arch/mips/mips/mips1_なんとか.S あたり
を探せば使えるコードを見つけることができると思います。

でも、どちらを実行するか、どうやって決定すれば良いのでしょうか。
やっぱり platid のお世話になる?
CPU の ID は VR41XX と同じ 0x0c だったりしますか?

Takemura