Subject: Re: Trouble with laptop devices and interrupts
To: Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp>
From: Michael Graff <explorer@flame.org>
List: port-i386
Date: 12/09/2002 15:21:16
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

The patch made my audio work, at least.  That's a significant
improvement.  Thanks!

It may also have fixed my wi0 timeout issue, although it's too early
to be sure.  I was able to FTP down a 14 MB file over wi0 without
any pauses or timeout messages.  That seems to be an improvement.

Note though that there are still no interrupt mappings for the
firewire adapter, due to pin D not having a mapping, and uhci2 due to
no mapping for pin C.  I've appended the most recent dmesg output.

- --Michael

> Index: piix.c
> ===================================================================
> RCS file: /ftp/cvs/syssrc/sys/arch/i386/pci/piix.c,v
> retrieving revision 1.3
> diff -u -r1.3 piix.c
> --- piix.c      15 Nov 2001 07:03:35 -0000      1.3
> +++ piix.c      9 Dec 2002 22:29:54 -0000
> @@ -159,6 +159,16 @@
>                 return (0);
>         }
>  
> +       /* 
> +        * XXX Pattern 3: configuration register offset 1
> +        *  Some BIOS return 0x68, 0x69
> +        */
> +       if (link >= 0x68 && link <= 0x69) {
> +               *clinkp = link - 0x67;
> +               DPRINTF(("PIRQ %d (register offset 1)\n", *clinkp));
> +               return (0);
> +       }
> +
>         DPRINTF(("bogus IRQ selection source\n"));
>         return (1);
>  }

NetBSD 1.6K (GENERIC_LAPTOP) #2: Mon Dec  9 14:53:09 PST 2002
    explorer@speedy.flame.org:/sys/arch/i386/compile/GENERIC_LAPTOP
total memory = 511 MB
avail memory = 467 MB
using 6144 buffers containing 26268 KB of memory
BIOS32 rev. 0 found at 0xfd890
PCI BIOS rev. 2.1 found at 0xfd9ca
pcibios: config mechanism [1][x], special cycles [x][x], last bus 2
PCI IRQ Routing Table rev. 1.0 found at 0xfdf50, size 144 bytes (7 entries)
PCI Interrupt Router at 000:31:0 (Intel 82371FB PCI-to-ISA Bridge (PIIX))
PIR Entry 0:
	Bus: 0  Device: 30
		INTA: link 0x00 bitmap 0xdef8
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 1:
	Bus: 2  Device: 5
		INTA: link 0x69 bitmap 0x0008
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 2:
	Bus: 2  Device: 8
		INTA: link 0x68 bitmap 0x0200
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 3:
	Bus: 0  Device: 0
		INTA: link 0x00 bitmap 0xdef8
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 4:
	Bus: 0  Device: 31
		INTA: link 0x00 bitmap 0xdef8
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 5:
	Bus: 0  Device: 29
		INTA: link 0x60 bitmap 0x0200
		INTB: link 0x63 bitmap 0x0200
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 6:
	Bus: 0  Device: 1
		INTA: link 0x60 bitmap 0x0200
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
pciintr_link_fixup: PIRQ 0x00 already connected to IRQ 9
pciintr_link_fixup: PIRQ 0x01 not connected, assigning IRQ 9
pciintr_link_fixup: PIRQ 0x02 not connected, assigning IRQ 3
pciintr_link_fixup: PIRQ 0x03 already connected to IRQ 9
pciintr_link_route: route of PIRQ 0x00 -> IRQ 9 preserved BIOS setting
pciintr_link_route: route of PIRQ 0x03 -> IRQ 9 preserved BIOS setting
- ------------------------------------------
  device vendor product pin PIRQ IRQ stage
- ------------------------------------------
000:29:0 0x8086 0x2482   A  0x00   9  0    already assigned
000:29:1 0x8086 0x2484   B  0x03   9  0    already assigned
002:05:0 0x1180 0x0476   A  0x02   3  1    already assigned
002:08:0 0x8086 0x1031   A  0x01   9  1    already assigned
- ------------------------------------------
PCI fixup examining 8086:1a30
PCI fixup examining 8086:1a31
PCI fixup examining 1002:4c57
PCI bridge 0: primary 0, secondary 1, subordinate 1
PCI fixup examining 8086:2482
PCI fixup examining 8086:2484
PCI fixup examining 8086:2487
PCI fixup examining 8086:2448
PCI fixup examining 1180:476
PCI bridge 2: primary 2, secondary 3, subordinate 3
PCI fixup examining 1180:476
PCI bridge 3: primary 2, secondary 4, subordinate 4
PCI fixup examining 1180:552
PCI fixup examining 8086:1031
PCI bridge 1: primary 0, secondary 2, subordinate 4
PCI fixup examining 8086:248c
PCI fixup examining 8086:248a
PCI fixup examining 8086:2483
PCI fixup examining 8086:2485
PCI fixup examining 8086:2486
PCI bus #4 is the last bus
[System BIOS Setting]-----------------------
  device vendor product
  register space address    size
- --------------------------------------------
000:00:0 0x8086 0x1a30 
	10h mem  0xec000000 0x04000000
		[OK]
000:01:0 0x8086 0x1a31 
		[OK]
000:29:0 0x8086 0x2482 
	20h port 0x00001800 0x00000020
		[OK]
000:29:1 0x8086 0x2484 
	20h port 0x00001820 0x00000020
		[OK]
000:29:2 0x8086 0x2487 
	20h port 0x00001840 0x00000020
		[OK]
000:30:0 0x8086 0x2448 
		[OK]
000:31:0 0x8086 0x248c 
		[OK]
000:31:1 0x8086 0x248a 
	10h port 0x000001f0 0x00000008
	14h port 0x000003f4 0x00000004
	18h port 0x00000170 0x00000008
	1ch port 0x00000374 0x00000004
	20h port 0x00001860 0x00000010
	24h mem  0xe8000000 0x00000400
		[OK]
000:31:3 0x8086 0x2483 
	20h port 0x00001880 0x00000020
		[OK]
000:31:5 0x8086 0x2485 
	10h port 0x00001c00 0x00000100
	14h port 0x000018c0 0x00000040
		[OK]
000:31:6 0x8086 0x2486 
	10h port 0x00002400 0x00000100
	14h port 0x00002000 0x00000080
		[OK]
001:00:0 0x1002 0x4c57 
	10h mem  0xf0000000 0x08000000
	14h port 0x00003000 0x00000100
	18h mem  0xe8100000 0x00010000
		[OK]
002:05:0 0x1180 0x0476 
	10h mem  0x00000000 0x00001000
		[NG]
002:05:1 0x1180 0x0476 
	10h mem  0x00000000 0x00001000
		[NG]
002:05:2 0x1180 0x0552 
	10h mem  0xe8201000 0x00000800
		[OK]
002:08:0 0x8086 0x1031 
	10h mem  0xe8200000 0x00001000
	14h port 0x00004000 0x00000040
		[OK]
- --------------------------[  2 devices bogus]
 Physical memory end: 0x1ff7c000
 PCI memory mapped I/O space start: 0x20000000
[PCIBIOS fixup stage]-----------------------
  device vendor product
  register space address    size
- --------------------------------------------
000:00:0 0x8086 0x1a30 
	10h mem  0xec000000 0x04000000
		[OK]
000:01:0 0x8086 0x1a31 
		[OK]
000:29:0 0x8086 0x2482 
	20h port 0x00001800 0x00000020
		[OK]
000:29:1 0x8086 0x2484 
	20h port 0x00001820 0x00000020
		[OK]
000:29:2 0x8086 0x2487 
	20h port 0x00001840 0x00000020
		[OK]
000:30:0 0x8086 0x2448 
		[OK]
000:31:0 0x8086 0x248c 
		[OK]
000:31:1 0x8086 0x248a 
	10h port 0x000001f0 0x00000008
	14h port 0x000003f4 0x00000004
	18h port 0x00000170 0x00000008
	1ch port 0x00000374 0x00000004
	20h port 0x00001860 0x00000010
	24h mem  0xe8000000 0x00000400
		[OK]
000:31:3 0x8086 0x2483 
	20h port 0x00001880 0x00000020
		[OK]
000:31:5 0x8086 0x2485 
	10h port 0x00001c00 0x00000100
	14h port 0x000018c0 0x00000040
		[OK]
000:31:6 0x8086 0x2486 
	10h port 0x00002400 0x00000100
	14h port 0x00002000 0x00000080
		[OK]
001:00:0 0x1002 0x4c57 
	10h mem  0xf0000000 0x08000000
	14h port 0x00003000 0x00000100
	18h mem  0xe8100000 0x00010000
		[OK]
002:05:0 0x1180 0x0476 
	10h mem  0x20000000 0x00001000
		[OK]
002:05:1 0x1180 0x0476 
	10h mem  0x20001000 0x00001000
		[OK]
002:05:2 0x1180 0x0552 
	10h mem  0xe8201000 0x00000800
		[OK]
002:08:0 0x8086 0x1031 
	10h mem  0xe8200000 0x00001000
	14h port 0x00004000 0x00000040
		[OK]
- --------------------------[  0 devices bogus]
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Pentium 4 (686-class), 1590.94 MHz
cpu0: features 3febf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR>
cpu0: features 3febf9ff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX>
cpu0: features 3febf9ff<FXSR,SSE,SSE2,SS,HTT,TM>
cpu0: I-cache 12K uOp cache 8-way, D-cache 8 KB 64b/line 4-way
cpu0: L2 cache 512 KB 64b/line 8-way
cpu0: ITLB 4K/4M: 64 entries
cpu0: DTLB 4K/4M: 64 entries
cpu0: 16 page colors
pnpbios0 at mainbus0: nodes 18, max len 317
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82845 Host (rev. 0x04)
pchb0: random number generator enabled
agp at pchb0 not configured
ppb0 at pci0 dev 1 function 0: Intel 82845 AGP (rev. 0x04)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga1 at pci1 dev 0 function 0: ATI Technologies product 0x4c57 (rev. 0x00)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
uhci0 at pci0 dev 29 function 0: Intel 82801CA/CAM USB Controller (rev. 0x02)
uhci0: interrupting at irq 9
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 29 function 1: Intel 82801CA/CAM USB Controller (rev. 0x02)
uhci1: interrupting at irq 9
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 29 function 2: Intel 82801CA/CAM USB Controller (rev. 0x02)
pci_intr_map: no mapping for pin C (line=ff)
uhci2: couldn't map interrupt
ppb1 at pci0 dev 30 function 0: Intel 82801BAM Hub-to-PCI Bridge (rev. 0x42)
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled
cbb0 at pci2 dev 5 function 0: Ricoh 5C476 PCI-CardBus bridge (rev. 0xa8)
cbb1 at pci2 dev 5 function 1: Ricoh 5C476 PCI-CardBus bridge (rev. 0xa8)
cbb1: NOT USED because of unconfigured interrupt
fwohci0 at pci2 dev 5 function 2: Ricoh 5C552 PCI-CardBus bridge/Firewire (rev. 0x00)
pci_intr_map: no mapping for pin D (line=ff)
fwohci0: couldn't map interrupt
fxp0 at pci2 dev 8 function 0: Intel PRO/100 VE Network Controller, rev 66
fxp0: interrupting at irq 9
fxp0: Ethernet address 08:00:46:63:d1:71
ukphy0 at fxp0 phy 1: Generic IEEE 802.3u media interface
ukphy0: i82562ET 10/100 media interface (OUI 0x005500, model 0x0033), rev. 0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
cbb0: interrupting at irq 3
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 3 device 0
pcmcia0 at cardslot0
pcib0 at pci0 dev 31 function 0
pcib0: Intel 82801CAM LPC Interface (rev. 0x02)
pciide0 at pci0 dev 31 function 1: Intel 82801CA IDE Controller (rev. 0x02)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <TOSHIBA MK4018GAS>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 38154 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 78140160 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
pciide0: disabling secondary channel (no drives)
Intel 82801CA/CAM SMBus Controller (SMBus serial bus, revision 0x02) at pci0 dev 31 function 3 not configured
auich0 at pci0 dev 31 function 5: i82801CA (ICH3) AC-97 Audio
auich0: interrupting at irq 9
auich0: Yamaha YMF753-S codec; 18 bit DAC, no 3D stereo
auich0: S/PDIF
audio0 at auich0: full duplex, independent
Intel 82801CA/CAM Modem (modem communications, revision 0x02) at pci0 dev 31 function 6 not configured
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
isapnp0: no ISA Plug 'n Play devices found
apm0 at mainbus0: Power Management spec V1.2
IPsec: Initialized Security Association Processing.
wi0 at pcmcia0 function 0: Avaya Communication, Avaya Wireless PC Card, Version 01.01
wi0: 802.11 address 00:02:2d:21:bd:93
wi0: using Lucent Technologies, WaveLAN/IEEE
wi0: Lucent Firmware: Station (8.10.1)
wi0: supported rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (NetBSD)
Comment: See http://www.flame.org/~explorer/pgp for my keys

iD8DBQE99SVsl6Nz7kJWYWYRAt6mAJ98vzep6ZcF/3jnUuftb1ZS5AORtwCdH6VR
hCKc4N6sovf8cv3ETIuthbg=
=Gx4S
-----END PGP SIGNATURE-----