From owner-freebsd-alpha Tue Apr 30 18:43:54 2002 Delivered-To: freebsd-alpha@freebsd.org Received: from alcanet.com.au (mail2.alcanet.com.au [203.62.196.17]) by hub.freebsd.org (Postfix) with ESMTP id 8234237B405 for ; Tue, 30 Apr 2002 18:43:45 -0700 (PDT) Received: from mfg1.cim.alcatel.com.au (localhost.localdomain [127.0.0.1]) by alcanet.com.au (8.12.1/8.12.1/Alcanet1.2) with ESMTP id g411heO1030687 for ; Wed, 1 May 2002 11:43:44 +1000 Received: from gsmx07.alcatel.com.au by cim.alcatel.com.au (PMDF V5.2-32 #37645) with ESMTP id <01KH7NFPF02O9S52NZ@cim.alcatel.com.au> for freebsd-alpha@freebsd.org; Wed, 1 May 2002 11:43:07 +1100 Received: (from jeremyp@localhost) by gsmx07.alcatel.com.au (8.11.6/8.11.6) id g411hDT79579 for freebsd-alpha@freebsd.org; Wed, 01 May 2002 11:43:13 +1000 Content-return: prohibited Date: Wed, 01 May 2002 11:43:13 +1000 From: Peter Jeremy Subject: AlphaServer 400 interrupt problems To: freebsd-alpha@freebsd.org Mail-Followup-To: freebsd-alpha@freebsd.org Message-id: <20020501114313.R25071@gsmx07.alcatel.com.au> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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: 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: 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: on isab0 de0: 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: 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: 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: 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