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

[pbsd-mg2] Re: GIU-ISA bridge



 | 目的のデバイスから IRQ ラインが何本出ているか、
 | それが GIU のポートに何本接続されているか、でいろいろな
 | 場合が考えられます。
[...]
 なるほど。ちょっとわかりました。

 | pcic_vrgiu.c 内で platform ID で場合分けして、hard cording し
 | ようと考えていました。
 | 今のところ、Everex も MC-R も irq=3 で済んでいるみたいなので
 | (irq=3 は通常 pcic の何本かある irq のうち、最も番号が小さいもの)
 | ISA-bus で pcic_isa.c でももいいような気もしますが、
 | この先、へんな奴が出てくると破綻するような気がします。

 へんな奴が、Vr本来のISAバスを逸脱する(原理的にISAバスにつくPCICでない)
のであれば、それはvrip、あるいはvrgiuにつけるのがいいと思います。
で、IRQと、GPIOのマップは、これは、vrgiuバスで、そのマップ表(hard cording)
を切りかえればOKでは?

 | # pcic_isa.c って、 同じ irq=3 にいくつも handler を establish 
 | #できますか?

 pcic_isa.cは、isa_intr_allocと、isa_intr_establishに丸投げなので、
isa_intr_establishで共有します。VrのISAバスの構造上isa_intr_establish
のトリガタイプは、無視して全てLevel triggerでとるような感じ。ここら辺
は、PlatformのISAバスの実装でふりわければいいと思います。
 bus_spaceも、VrのISA space用にbus_space_tagを作って、bus_space_alloc
を作ってやればいいはず。(そんな感じでテストしてるんですが。)

 と、vrgiubusなしに、いきなりisaにつなげるんじゃ、locatorとして
platformを入れる場所がないですね。書いててきづきました。

 vrgiubusにはなってないんですが、ちょっと僕のテストカーネルのソースを
あげときます。一応ブートするものですが、ソースだけ見るだけのものです。
雰囲気的にこんな感じ...だめかな???
ftp://f77.nop.or.jp/users/uch/NetBSD/hpcmips/GIU/
---
UCHIYAMA Yasushi
uch@nop.or.jp