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

[pbsd-mg2] GIU-ISA bridge



 GIU-ISAブリッジのコードをcommitしました。キーボードまわりは使えるてい
どに必要最小限のパッチをあててあります。

 arch/hpcmips/vr/rtc_vrip.c
 arch/hpcmips/vr/rtcvar.h
 arch/hpcmips/vr/vrgiu_vrip.c
を削除しました。
 arch/hpcmips/vr/pcic_vrgiu.c
 arch/hpcmips/vr/pcic_vrip.c
は使われてませんが、参照用に残しています。

MC-R300とFreestyleでブートし、MC-R300で、カーネルのコンパイルしブート
までテストしました。(セルフコンパイルにはoptions
HPCMIPS_FLUSHCACHE_XXXをつけました。)

 MCCS用と、MC-R5XX, MC-R700のコンフィグも動くことを期待して入れました
が、実機がないのでテストできてません。

NULLCONFが調査に必要な最小のkernel用です。これの使いかたは、

 1) COMを使えるようにするGPIO port # (MC-R300の例)

まず、そのままコンソールで立ちあげる
Output-port:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..|..||...||...|....||..........
とでます。
次にpbsdbootでPause before bootをチェックして、ブートの前にWindowsCEがホスト
シンとの通信を始めるようにしてブートします。
Output-port:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..|..||...||...|.|..||..........
上との違いをみて
gpbus0 at vrgiu? platform NEC_MCR_3XX comctrl 14
とします。

 2) ボタンとPCICの割り込み

コンソールでNULLCONFを立ちあげます。
autoconfigurationが終わった後で、ボタンを押してみるとどのGPIOに割り込みが
あがってくるかわかります。ボタンは今のとこ
gpbus0 at vrgiu? platform NEC_MCR_3XX comctrl 14 button1 4 button2 6
のように指定します。
(これは、GPIO#4と#6につながっていた。シリアルの電源は#14につながっている。)

PCICの割りこみは、CFを抜くと、CSCの割り込みがあがるのでわかると思います。
PCICの割り込みは
pcic0	at isa0 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x00090003
で、(GPIO# <<16)|3で指定。(これも仮)

 3) PCICのポート

arch/hpcmips/isa/isa_machdep.cで#define DEBUG_FIND_PCICで有効になるルーチンです。
[MC-R300]
ブートメッセージ
Finding PCIC. Trying ISA port 0x14000000-0x18000000 step 0x1000000
0x14000000
found 1 socket at 0x140003e0 (base from 0x3e0)
 -> コンフィグ
vrisab0 at vrgiu? platform NEC_MCR
isa0	at vrisab0
pcic0	at isa0 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x00090003

[Freestyle]
ブートメッセージ
vrisab2 at vrgiu0
Finding PCIC. Trying ISA port 0x14000000-0x18000000 step 0x1000000
0x15000000
 -> コンフィグ
vrisab1 at vrgiu? platform EVEREX_FREESTYLE isaportoffset 0x1000000
isa1	at vrisab1
pcic0	at isa1 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x00170003

 調査するstepは、isa_machdep.cで調整してみてください。
---
UCHIYAMA Yasushi
uch@nop.or.jp