Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 May 2002 11:43:13 +1000
From:      Peter Jeremy <peter.jeremy@alcatel.com.au>
To:        freebsd-alpha@freebsd.org
Subject:   AlphaServer 400 interrupt problems
Message-ID:  <20020501114313.R25071@gsmx07.alcatel.com.au>

next in thread | raw e-mail | index | archive | help
I recently tried a KZPCM-DA card in an AlphaServer 400 and ran into
a few problems with the interrupts.  The KZPCM-DA is a dual-SCSI
(dual Symbios 53C875's), fast Ethernet (DEC/Intel 21140) card using
an DEC/Intel 21152 PCI-PCI bridge chip.

My AS400 has a DE435 (DEC 21040 Ethernet) in PCI slot 1.  When I
plugged the KZPCM-DA into slot 2, the card and all its functions were
found, but not configured because it claimed that the interrupts
clashed.  Removing the DE435 and moving the KZPCM-DA into slot 1
improved things a bit - the first SCSI controller was now attached,
but the 2nd SCSI and ethernet were rejected due to claimed interrupt
clashes.  In both cases, there are also "weird slot" messages from
dec_2100_a50_intr_map() - which doesn't appear capable of handling
PCI-PCI bridges.  I presume this is the underlying problem.

How should the interrupt mapping function detect and handle PCI-PCI
bridges?

A secondary problem is that all interrupts are treated as non-sharable
ISA interrupts.  I don't believe this is valid.  Whilst the AS400
interrupt routing uses the standard 8259 pair and interrupts from
ISA cards can't be shared, I don't see why the kernel doesn't permit
PCI interrupts to be shared.  The AS400 technical documentation
definitely indicates that interrupts can be shared.

Relevant dmesg output:

FreeBSD 4.5-STABLE #1: Thu Apr 25 21:21:20 EST 2002
    root@asv400.alcatel.com.au:/usr/obj/usr/src/sys/asv400
AlphaStation 200/400 ("Avanti")
AlphaServer 400 4/233, 233MHz
8192 byte page size, 1 processor.
CPU: EV45 (21064A) major=6 minor=0
OSF PAL rev: 0x100000002012e
real memory  = 165724160 (161840K bytes)
Physical memory chunk(s):
0x0061c000 - 0x09ff5fff, 161325056 bytes (19693 pages)
avail memory = 156434432 (152768K bytes)
Preloaded elf kernel "kernel" at 0xfffffc0000600000.
found->	vendor=0x1000, dev=0x0001, revid=0x01
	class=00-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=11
	map[10]: type 1, range 32, base 00011000, size  8
	map[14]: type 1, range 32, base 82100000, size  8
found->	vendor=0x8086, dev=0x0484, revid=0x43
	class=00-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
found->	vendor=0x1011, dev=0x0002, revid=0x24
	class=02-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=5
	map[10]: type 1, range 32, base 00011100, size  7
	map[14]: type 1, range 32, base 82100100, size  7
found->	vendor=0x1011, dev=0x0024, revid=0x03
	class=06-04-00, hdrtype=0x01, mfdev=0
	subordinatebus=0 	secondarybus=1
pci0: <PCI bus> on pcib0
sym0: <810> port 0x11000-0x110ff mem 0x82100000-0x821000ff irq 11 at device 6.0 on pci0
sym0: No NVRAM, ID 7, Fast-10, SE, parity checking
sym0: open drain IRQ line driver
sym0: using NCR-generic firmware.
sym0: initial SCNTL3/DMODE/DCNTL/CTEST3/4/5 = (hex) 00/00/00/00/00/00
sym0: final   SCNTL3/DMODE/DCNTL/CTEST3/4/5 = (hex) 03/c8/00/00/08/00
sym0: Delay (GEN=11): 261 msec, 34054 KHz
sym0: Delay (GEN=11): 280 msec, 31744 KHz
sym0: Delay (GEN=11): 280 msec, 31744 KHz
sym0: interrupting at ISA irq 11
isab0: <Intel 82378IB PCI to ISA bridge> at device 7.0 on pci0
	Bus Modes: Bus Park, Resource Lock,
	IDE controller: Secondary (170h-177h,376h,377h)
	Floppy controller: 370h,371h 
	Floppy controller: 372h-377h 
	Keyboard controller: 60h,62h,64h,66h
	RTC: 70h-77h
	Configuration RAM: 0C00h,0800h-08FFh
	Port 92: enabled
isa0: <ISA bus> on isab0
de0: <Digital 21040 Ethernet> port 0x11100-0x1117f mem 0x82100100-0x8210017f irq 5 at device 11.0 on pci0
de0: interrupting at ISA irq 5
de0: DEC 21040 [10Mb/s] pass 2.4
de0: address 00:00:f8:22:e2:1b
bpf: de0 attached
pcib1: <DEC 21152 PCI-PCI bridge> at device 12.0 on pci0
dec_2100_a50_intr_map: weird slot 0
found->	vendor=0x1000, dev=0x000f, revid=0x04
	class=01-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=5
	map[10]: type 1, range 32, base 00000000, size  8
	map[14]: type 1, range 32, base 82062100, size  8
	map[18]: type 1, range 32, base 82061000, size 12
dec_2100_a50_intr_map: weird slot 1
found->	vendor=0x1000, dev=0x000f, revid=0x04
	class=01-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=5
	map[10]: type 1, range 32, base 00010000, size  8
	map[14]: type 1, range 32, base 82062000, size  8
	map[18]: type 1, range 32, base 82060000, size 12
dec_2100_a50_intr_map: weird slot 2
found->	vendor=0x1011, dev=0x0009, revid=0x22
	class=02-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=5
	map[10]: type 1, range 32, base 00000000, size  7
	map[14]: type 1, range 32, base 82062200, size  7
pci1: <PCI bus> on pcib1
sym1: <875> port 0-0xff mem 0x82061000-0x82061fff,0x82062100-0x820621ff irq 5 at device 0.0 on pci1
sym1: failed to allocate IRQ resource
device_probe_and_attach: sym1 attach returned 6
sym1: <875> port 0x10000-0x100ff mem 0x82060000-0x82060fff,0x82062000-0x820620ff irq 5 at device 1.0 on pci1
sym1: failed to allocate IRQ resource
device_probe_and_attach: sym1 attach returned 6
de1: <Digital 21140A Fast Ethernet> port 0-0x7f mem 0x82062200-0x8206227f irq 5 at device 2.0 on pci1
de1: couldn't map interrupt
device_probe_and_attach: de1 attach returned 6

Peter

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020501114313.R25071>