[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