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

[pbsd-mg2] Re: GIU-ISA bridge



 | それ以外のアドレスのどこでも、socket A only の pcic があるように
 | 見えてしまいます。pcic_vrgiu.c に判定を厳しくした ident_ok ルーチンが
 | あるのはこれを防ぐためです。
[...]
 | isa bus を attach するさいの platid の check を行なう必要もあるので、
 | MI ISA のコードを使うのはどのみち無理かも。

 これは、MI ISAをattachする前にgiubusを入れて、そこでplatform IDでふり
わけてやればOKです。ここでふりわけるなら、変なものをprobeにさせずに済
むので上の問題も発生しないです。

#
# MC-R
#
giubus0 at vrgiu? platform NEC_MCR
isa0	at giubus0
pcic0	at isa0 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x00090003
#
# Freestyle
#
giubus1 at vrgiu? platform EVEREX_FREESTYLE isaportoffset 0x1000000
isa1	at giubus1
pcic0	at isa1 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x00170003
#
# あたらしい機種
#
giubus2 at vrgiu? platform あたらしい機種
isa2	at giubus2
pcic0	at isa2 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x0090003
pcic1	at isa2 port 0x3e0 iomem 0x70000 iosiz 0x4000 irq 0x00a0004
という感じで、あらわせます。でもioportoffsetはlocatorじゃなくてflagsか...

ftp://f77.nop.or.jp/users/uch/NetBSD/hpcmips/GIU/hpcmips-GIUisa-bridge990726.tar.gz
は、こういう感じにふりわけれるようにしてみたものです。

 + vr/vrgiu.c ... Vr41x1のGIUだけを実装。Vr41x1 basedならplatform非依存になることを目的。
 + isa/isa_machdep.c ... giubus。MC-R300,Freestyleであれば
configurationだけで対応可能なので、こういう実装になっているが、どうし
ても別に対応せざるを得ない機種があるなら、giubusだけを変える。Vr41x1の
インターフェースはvrgiu.cをそのまま使う。今は下位側(ISAバス)だけ考えて
るので、isa_machdep.cの中に入っているが、上位側(今でいうと、comのGIU
port14)のインターフェースをつけようとすると、MC-RとFreestyleでも分離す
る必要があるかも。

一応、MC-R300とFreestyleで同じkernelでブートします。(boot message中のISA bus_spaceの表示狂ってます)

 | ところで、内山さんは hpcmips の cvs のアカウントを申請していますか?
 | committer になって開発していただけるとうれしいです。

ぬぅ、申請してません。どこに申請するんでしょう?
---
UCHIYAMA Yasushi
uch@nop.or.jp 


[ MC-R300の例 ]

NetBSD 1.3I (GIUISAB) #0: Mon Jul 26 04:17:08 JST 1999
    uch@anko:/work/netbsd/hpcmips/sys/arch/hpcmips/compile/GIUISAB
NEC VR4111 rev0.0
real mem  = 8388608
avail mem = 6057984
using 204 buffers containing 835584 bytes of memory
../../../../arch/hpcmips/vr/vr.c(134): vr_bus_reset() not implemented.
mainbus0 (root)
cpu0 at mainbus0: cpu0: NEC VR4100 CPU Rev. 5.0 with software emulated floating point Rev. 0.0
cpu0: L1 cache: 16kb/16b Instruction, 8kb/16b Data, direct mapped
cpu0: No L2 cache
vrip0 at mainbus0
com0 at vrip0 addr 0xc000000-0xc000007 intr 9base0 offs14 addrab000104
: ns16550a, working fifo
com0: console
vrrtc0 at vrip0 addr 0xb0000c0-0xb0000df intr 2
vrgiu0 at vrip0 addr 0xb000100-0xb00011f intr 8vrbcu0 at vrip0 addr 0xb000000-0xb00001f
vrkiu0 at vrip0 addr 0xb000180-0xb00019f intr 7serial line (8, 0): console

giubus0 at vrgiu0:ISA port 0xc0001914-0x14000000 mem 0x18000000-0x10000000
isa0 at giubus0
pcic0 at isa0 port 0x3e0-0x3e1 iomem 0x70000-0x73fff irq 589827
pcic0: controller 0 (Intel 82365SL Revision 1) has sockets A and B
pcic0: controller 1 (Intel 82365SL Revision 1) has socket A only
ISA IRQ 3 -> GPIO port 9
 level high through
pcmcia0 at pcic0 controller 0 socket 0
pcmcia1 at pcic0 controller 0 socket 1
wdc0 at pcmcia1 function 0 port 0x14000330-0x1400033f
isa_intr_alloc:............................|...
 level high through
pcmcia1: card irq 3
wd0 at wdc0 channel 0 drive 0: <Hitachi CV 6.1.2>
wd0: drive supports 1-sector pio transfers, lba addressing
wd0: 61MB, 984 cyl, 4 head, 32 sec, 512 bytes/sect x 125952 sectors

pcmcia2 at pcic0 controller 1 socket 0
../../../../arch/hpcmips/vr/vr.c(134): vr_bus_reset() not implemented.
autconfiguration done, spl back to 0x0
boot device: wd0
root on wd0a dumps on wd0b
isa_intr_alloc:............................|...
 level high through
pcmcia1: card irq 3
WARNING: old BSD partition ID!
isa_intr_alloc:............................|...
 level high through
pcmcia1: card irq 3
WARNING: preposterous clock chip time
 -- CHECK AND RESET THE DATE!
root file system type: ffs
Enter pathname of shell or RETURN for sh: 

[ Freestyleの例 ]

Copyright (c) 1996, 1997, 1998, 1999
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 1.3I (GIUISAB) #0: Mon Jul 26 04:17:08 JST 1999
    uch@anko:/work/netbsd/hpcmips/sys/arch/hpcmips/compile/GIUISAB
NEC VR4111 rev0.0
real mem  = 8388608
avail mem = 6057984
using 204 buffers containing 835584 bytes of memory
../../../../arch/hpcmips/vr/vr.c(134): vr_bus_reset() not implemented.
mainbus0 (root)
cpu0 at mainbus0: cpu0: NEC VR4100 CPU Rev. 5.0 with software emulated floating point Rev. 0.0
cpu0: L1 cache: 16kb/16b Instruction, 8kb/16b Data, direct mapped
cpu0: No L2 cache
vrip0 at mainbus0
com0 at vrip0 addr 0xc000000-0xc000007 intr 9: ns16550a, working fifo
com0: console
vrrtc0 at vrip0 addr 0xb0000c0-0xb0000df intr 2
vrgiu0 at vrip0 addr 0xb000100-0xb00011f intr 8vrbcu0 at vrip0 addr 0xb000000-0xb00001f
vrkiu0 at vrip0 addr 0xb000180-0xb00019f intr 7serial line (8, 0): console

giubus1 at vrgiu0:ISA port 0xc0001914-0x15000000 mem 0x18000000-0x10000000
isa1 at giubus1
pcic0 at isa1 port 0x3e0-0x3e1 iomem 0x70000-0x73fff irq 1507331
pcic0: controller 0 (Intel 82365SL Revision 1) has sockets A and B
pcic0: controller 1 (Intel 82365SL Revision 1) has sockets A and B
ISA IRQ 3 -> GPIO port 23
 level high through
pcmcia0 at pcic0 controller 0 socket 0
wdc0 at pcmcia0 function 0 port 0x15000330-0x1500033f
isa_intr_alloc:............................|...
 level high through
pcmcia0: card irq 3
wd0 at wdc0 channel 0 drive 0: <DT KoCpr:.CTN_::ET3634::46bMtiT:>
wd0: drive supports 1-sector pio transfers, lba addressing
wd0: 7MB, 250 cyl, 4 head, 16 sec, 512 bytes/sect x 16000 sectors

pcmcia1 at pcic0 controller 0 socket 1
pcmcia2 at pcic0 controller 1 socket 0
pcmcia3 at pcic0 controller 1 socket 1
../../../../arch/hpcmips/vr/vr.c(134): vr_bus_reset() not implemented.
autconfiguration done, spl back to 0x0
boot device: wd0
root on wd0a dumps on wd0b
isa_intr_alloc:............................|...
 level high through
pcmcia0: card irq 3
wd0: no disk label
isa_intr_alloc:............................|...
 level high through
pcmcia0: card irq 3
no file system for wd0 (dev 0x0)
cannot mount root, error = 79
root device (default wd0a):