Apparantly this didn't get thru since my mailer was blocked due to dialup-blacklists (never observed this bevor on l-k!) so I try to resend it. Martin ---------- Forwarded message ---------- Date: Mon, 29 Jan 2001 18:22:43 +0100 (CET) From: Martin Diehl <[EMAIL PROTECTED]> To: Jeff Garzik <[EMAIL PROTECTED]> Cc: Linus Torvalds <[EMAIL PROTECTED]>, Robert Siemer <[EMAIL PROTECTED]>, [EMAIL PROTECTED] Subject: Re: PCI IRQ routing problem in 2.4.0 On Mon, 29 Jan 2001, Jeff Garzik wrote: > And what what we're seeing in this thread, it looks like there are > two different types of SiS link values from two different BIOSen; > or perhaps one BIOS is using some of the link value bits for other > purposes. Right, seems the 0x41/0x01 thing. I have the 0x01 case with SiS 85C503 router rev. 01. Hopefully the 0x41 boards have a different revision. My fear however is, this is due to BIOS implementation of the routing table. Using the docs of the 85C503 function from the SiS5595 southbridge datasheet I've written a patch to get things right - at least for the 0x01 case. The mapping on my box appears as follows: link/pirq value config-reg function 0x01/0x02/0x03/0x04 0x41/0x42/0x43/0x44 PCI INTA..D 0x61 0x61 5513 onboard IDE 0x62 0x62 onboard USB (OHCI) 0x6a 0x6a onboard ACPI 0x7e 0x7e onboard data acquisition The patch below deals with the PCI INT and USB case and works fine on my box. It will fail (printk) on the 0x41 case. So please, everyone with SiS chipset (seems all of them using the same router function): Test it - regardless whether having problems or not. Probably we'll need a kernel parameter to specify which mapping to use. More details as commented in the code. Attached: dmesg/lspci/dump_pirq output with BIOS-setting PNP OS=yes and USB (enabled, auto-irq) to see the router at work (PCI-DEBUG). BTW: I was wondering, why we did not update the PCI_INTERRUPT_LINE in config space when we re-route dev->irq. Well, documentation/pci.txt says we should trust on dev->irq over config space, however stopping lspci and friends to confuse us would be too bad either. So I've included a one-liner to fix this. ------ --- linux-2.4.0/arch/i386/kernel/pci-irq.c.orig Mon Jan 8 14:45:35 2001 +++ linux-2.4.0/arch/i386/kernel/pci-irq.c Mon Jan 29 17:23:25 2001 @@ -234,22 +234,114 @@ return 1; } +/* + * PIRQ routing for SiS 85C503 router used in several SiS chipsets + * According to the SiS 5595 datasheet (preliminary V1.0, 12/24/1997) + * the related registers work as follows: + * + * general: one byte per re-routable IRQ, + * bit 7 IRQ mapping enabled (0) or disabled (1) + * bits [6:4] reserved + * bits [3:0] IRQ to map to + * allowed: 3-7, 9-12, 14-15 + * reserved: 0, 1, 2, 8, 13 + * + * individual registers in device config space: + * + * 0x41/0x42/0x43/0x44: PCI INT A/B/C/D - bits as in general case + * + * 0x61: IDEIRQ: bits as in general case - but: + * bits [6:5] must be written 01 + * bit 4 channel-select primary (0), secondary (1) + * + * 0x62: USBIRQ: bits as in general case - but: + * bit 4 OHCI function disabled (0), enabled (1) + * + * 0x6a: ACPI/SCI IRQ - bits as in general case + * + * 0x7e: Data Acq. Module IRQ - bits as in general case + * + * Tested using SiS 5595 southbridge (vendor:device:rev=1039:0008:01) + * Testbox: + * BIOS Vendor: Award Software, Inc. + * BIOS Version: #401A0-0103xl-7 + * BIOS Release: 06/12/98 + * System Vendor: System Manufacturer. + * Product Name: System Name. + * Version System Version. + * Serial Number SYS-1234567890. + * Board Vendor: ASUSTeK Computer INC.. + * Board Name: SP98AGP-X. + * Board Version: REV 1.XX. + * Asset Tag: Asset-1234567890. + * + * BIOS routing table uses link 0x01-0x04 for PCI IRQ A-D, but register + * offsets like 0x62 as link values for USBIRQ e.g. So there is no simple + * "register = offset + pirq" relation. To make things even more confusing, + * reading USB OHCI's PCI_INTERRUPT_PIN config register (at 0x3d) returns 1 + * suggesting the USB OHCI were connected to PCI INTA, which is not the case. + * One can map USBIRQ to a value that differs from all PCI INTA..D! + * Same holds for the other onboard chipset IRQ's (IDE/ACPI/DAQ). + * The latter are currently unsupported (left untouched as set by BIOS). + */ + static int pirq_sis_get(struct pci_dev *router, struct pci_dev *dev, int pirq) { u8 x; - int reg = 0x41 + (pirq - 'A') ; + int reg = pirq; - pci_read_config_byte(router, reg, &x); + switch(pirq) { + case 0x01: + case 0x02: + case 0x03: + case 0x04: + reg += 0x40; + case 0x62: + pci_read_config_byte(router, reg, &x); + if (reg != 0x62) + break; + if (!(x & 0x40)) + return 0; + break; + case 0x61: + case 0x6a: + case 0x7e: + printk("SiS pirq: advanced IDE/ACPI/DAQ mapping not yet +implemented\n"); + return 0; + default: + printk("SiS router pirq escape (%d)\n", pirq); + return 0; + } return (x & 0x80) ? 0 : (x & 0x0f); } static int pirq_sis_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) { u8 x; - int reg = 0x41 + (pirq - 'A') ; + int reg = pirq; - pci_read_config_byte(router, reg, &x); - x = (pirq & 0x20) ? 0 : (irq & 0x0f); + switch(pirq) { + case 0x01: + case 0x02: + case 0x03: + case 0x04: + reg += 0x40; + case 0x62: + x = (irq&0x0f) ? (irq&0x0f) : 0x80; + if (reg != 0x62) + break; + /* always mark OHCI enabled, as nothing else knows about this +*/ + x |= 0x40; + break; + case 0x61: + case 0x6a: + case 0x7e: + printk("advanced SiS pirq mapping not yet implemented\n"); + return 0; + default: + printk("SiS router pirq escape (%d)\n", pirq); + return 0; + } pci_write_config_byte(router, reg, x); return 1; @@ -505,6 +597,7 @@ continue; if (info->irq[pin].link == pirq) { dev2->irq = irq; + pci_write_config_byte(dev2, PCI_INTERRUPT_LINE, irq); pirq_penalty[irq]++; if (dev != dev2) printk("PCI: The same IRQ used for device %s\n", dev2->slot_name);
Linux version 2.4.0 ([EMAIL PROTECTED]) (gcc version 2.95.3 19991030 (prerelease)) #9 Mon Jan 29 16:42:27 CET 2001 BIOS-provided physical RAM map: BIOS-e820: 000000000009fc00 @ 0000000000000000 (usable) BIOS-e820: 0000000000000400 @ 000000000009fc00 (reserved) BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved) BIOS-e820: 000000000bf00000 @ 0000000000100000 (usable) BIOS-e820: 0000000000010000 @ 00000000ffff0000 (reserved) On node 0 totalpages: 49152 zone(0): 4096 pages. zone(1): 45056 pages. zone(2): 0 pages. Kernel command line: BOOT_IMAGE=linux.24 ro root=302 video=atyfb:1280x1024-8@76,font:SUN12x22 Initializing CPU#0 Detected 299.998 MHz processor. Console: colour dummy device 80x25 Calibrating delay loop... 598.01 BogoMIPS Memory: 191504k/196608k available (747k kernel code, 4716k reserved, 278k data, 196k init, 0k highmem) Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes) Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes) Page-cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 16384 (order: 5, 131072 bytes) VFS: Diskquotas version dquot_6.4.0 initialized CPU: Before vendor init, caps: 008001bf 808009bf 00000000, vendor = 2 CPU: L1 I Cache: 32K (32 bytes/line), D cache 32K (32 bytes/line) CPU: After vendor init, caps: 008001bf 808009bf 00000000 00000000 CPU: After generic, caps: 008001bf 808009bf 00000000 00000000 CPU: Common caps: 008001bf 808009bf 00000000 00000000 CPU: AMD-K6(tm) 3D processor stepping 00 Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX PCI: BIOS32 Service Directory structure at 0xc00f99e0 PCI: BIOS32 Service Directory entry at 0xf0490 PCI: BIOS probe returned s=00 hw=11 ver=02.10 l=01 PCI: PCI BIOS revision 2.10 entry at 0xf04c0, last bus=1 PCI: Using configuration type 1 PCI: Probing PCI hardware PCI: IDE base address trash cleared for 00:00.1 PCI: IDE base address fixup for 00:00.1 PCI: Scanning for ghost devices on bus 0 PCI: Scanning for ghost devices on bus 1 Unknown bridge resource 0: assuming transparent Unknown bridge resource 1: assuming transparent Unknown bridge resource 2: assuming transparent PCI: IRQ init PCI: Interrupt Routing Table found at 0xc00f0a40 00:0c slot=01 0:01/1eb8 1:02/1eb8 2:03/1eb8 3:04/1eb8 00:0b slot=02 0:02/1eb8 1:03/1eb8 2:04/1eb8 3:01/1eb8 00:0a slot=03 0:03/1eb8 1:04/1eb8 2:01/1eb8 3:02/1eb8 00:01 slot=00 0:62/1eb8 1:00/0000 2:00/0000 3:00/0000 00:02 slot=00 0:01/1eb8 1:02/1eb8 2:03/1eb8 3:04/1eb8 PCI: Using IRQ router SIS [1039/0008] at 00:01.0 PCI: IRQ fixup 00:0a.0: ignoring bogus IRQ 255 00:0c.0: ignoring bogus IRQ 255 IRQ for 00:01.2:0 -> PIRQ 62, mask 1eb8, excl 0000 -> newirq=0 ... failed IRQ for 00:0a.0:0 -> PIRQ 03, mask 1eb8, excl 0000 -> newirq=0 ... failed IRQ for 00:0c.0:0 -> PIRQ 01, mask 1eb8, excl 0000 -> newirq=0 ... failed PCI: Allocating resources PCI: Resource d0000000-dfffffff (f=200, d=0, p=0) PCI: Resource 0000d000-0000d00f (f=101, d=0, p=0) PCI: Resource cf800000-cf800fff (f=200, d=0, p=0) PCI: Resource e7800000-e7800fff (f=1208, d=0, p=0) PCI: Resource e6000000-e6ffffff (f=1208, d=0, p=0) PCI: Resource 0000b800-0000b8ff (f=101, d=0, p=0) PCI: Resource cf000000-cf000fff (f=200, d=0, p=0) PCI: Resource 0000b400-0000b41f (f=101, d=0, p=0) PCI: Sorting device list... isapnp: Scanning for Pnp cards... isapnp: Card 'PnP Sound Chip' isapnp: 1 Plug & Play card detected total Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 DMI 2.0 present. 31 structures occupying 973 bytes. DMI table at 0x000F51DA. BIOS Vendor: Award Software, Inc. BIOS Version: #401A0-0103xl-7 BIOS Release: 06/12/98 System Vendor: System Manufacturer. Product Name: System Name. Version System Version. Serial Number SYS-1234567890. Board Vendor: ASUSTeK Computer INC.. Board Name: SP98AGP-X. Board Version: REV 1.XX. Asset Tag: Asset-1234567890. apm: BIOS version 1.2 Flags 0x0b (Driver version 1.14) Starting kswapd v1.8 atyfb: 3D RAGE PRO (PQFP, PCI) [0x4750 rev 0x7c] 8M SGRAM, 14.31818 MHz XTAL, 230 MHz PLL, 100 Mhz MCLK Console: switching to colour frame buffer device 106x46 fb0: ATY Mach64 frame buffer device on PCI pty: 256 Unix98 ptys configured Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx SIS5513: IDE controller on PCI bus 00 dev 01 IRQ for 00:00.1:0 -> not found in routing table SIS5513: chipset revision 208 SIS5513: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:DMA, hdd:DMA hda: IBM-DTLA-305020, ATA DISK drive hdb: LTN403, ATAPI CDROM drive hdc: IBM-DHEA-36480, ATA DISK drive hdd: CR-2801TE, ATAPI CDROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15 hda: 40188960 sectors (20577 MB) w/380KiB Cache, CHS=39870/16/63 hdc: 12692736 sectors (6499 MB) w/476KiB Cache, CHS=12592/16/63 Partition check: hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 hda13 hda14 hda15 > hdc: [PTBL] [790/255/63] hdc1 hdc2 < hdc5 hdc6 > Serial driver version 5.02 (2000-08-09) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS01 at 0x02f8 (irq = 3) is a 16550A NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 2048 buckets, 16Kbytes TCP: Hash tables configured (established 16384 bind 16384) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 196k freed Adding Swap: 511520k swap-space (priority -1) Linux video capture interface: v1.00 i2c-core.o: i2c core module i2c-algo-bit.o: i2c bit algorithm module bttv: driver version 0.7.50 loaded bttv: using 2 buffers with 2080k (4160k total) for capture bttv: Bt8xx card found (0). IRQ for 00:0a.0:0 -> PIRQ 03, mask 1eb8, excl 0000 -> newirq=10 -> assigning IRQ 10 -> edge ... OK PCI: Assigned IRQ 10 for device 00:0a.0 bttv0: Bt848 (rev 18) at 00:0a.0, irq: 0, latency: 64, memory: 0xe7800000 bttv0: model: BT848A( *** UNKNOWN *** ) [autodetected] bttv0: IRQ 0 busy, change your PnP config in BIOS Linux video capture interface: v1.00 i2c-core.o: i2c core module i2c-algo-bit.o: i2c bit algorithm module bttv: driver version 0.7.50 loaded bttv: using 2 buffers with 2080k (4160k total) for capture bttv: Bt8xx card found (0). IRQ for 00:0a.0:0 -> PIRQ 03, mask 1eb8, excl 0000 -> newirq=10 -> got IRQ 10 PCI: Found IRQ 10 for device 00:0a.0 bttv0: Bt848 (rev 18) at 00:0a.0, irq: 10, latency: 64, memory: 0xe7800000 bttv0: model: BT848A( *** UNKNOWN *** ) [autodetected] i2c-core.o: adapter bt848 #0 registered as adapter 0. bttv0: i2c: checking for MSP34xx @ 0x80... not found bttv0: i2c: checking for TDA9875 @ 0xb0... not found bttv0: i2c: checking for TDA7432 @ 0x8a... not found i2c-core.o: driver i2c TV tuner driver registered. tuner: chip found @ 0x60 bttv0: i2c attach [(unset)] i2c-core.o: client [(unset)] registered to adapter [bt848 #0](pos. 0). ne2k-pci.c:v1.02 10/19/2000 D. Becker/P. Gortmaker http://www.scyld.com/network/ne2k-pci.html IRQ for 00:0c.0:0 -> PIRQ 01, mask 1eb8, excl 0000 -> newirq=11 -> assigning IRQ 11 -> edge ... OK PCI: Assigned IRQ 11 for device 00:0c.0 eth0: RealTek RTL-8029 found at 0xb400, IRQ 0, 00:00:B4:5E:66:7E. usb.c: registered new driver usbdevfs usb.c: registered new driver hub IRQ for 00:01.2:0 -> PIRQ 62, mask 1eb8, excl 0000 -> newirq=11 -> assigning IRQ 11 ... OK PCI: Assigned IRQ 11 for device 00:01.2 usb-ohci.c: USB OHCI at membase 0xcd058000, IRQ 11 usb-ohci.c: usb-00:01.2, Silicon Integrated Systems [SiS] 7001 usb.c: new USB bus registered, assigned bus number 1 usb.c: kmalloc IF cbfc1e80, numif 1 usb.c: new device strings: Mfr=0, Product=2, SerialNumber=1 usb.c: USB device number 1 default language ID 0x0 Product: USB OHCI Root Hub SerialNumber: cd058000 hub.c: USB hub found hub.c: 2 ports detected hub.c: standalone hub hub.c: ganged power switching hub.c: global over-current protection hub.c: power on to power good time: 2ms hub.c: hub controller current requirement: 0mA hub.c: port removable status: RR hub.c: local power source is good hub.c: no over-current condition exists hub.c: enabling power on all ports usb.c: hub driver claimed interface cbfc1e80 usb.c: kusbd: /sbin/hotplug add 1 usb.c: kusbd policy returned 0xfffffffe hub.c: port 1 connection change hub.c: port 1, portstatus 301, change 1, 1.5 Mb/s hub.c: port 1, portstatus 303, change 10, 1.5 Mb/s hub.c: USB new device connect on bus1/1, assigned device number 2 usb.c: kmalloc IF cbfc1f20, numif 1 usb.c: skipped 1 class/vendor specific interface descriptors usb.c: new device strings: Mfr=1, Product=2, SerialNumber=0 usb.c: USB device number 2 default language ID 0x409 Manufacturer: Logitech Product: USB Mouse usb.c: unhandled interfaces on device usb.c: USB device 2 (vend/prod 0x46d/0xc001) is not claimed by any active driver. Length = 18 DescriptorType = 01 USB version = 1.10 Vendor:Product = 046d:c001 MaxPacketSize0 = 8 NumConfigurations = 1 Device version = 4.00 Device Class:SubClass:Protocol = 00:00:00 Per-interface classes Configuration: bLength = 9 bDescriptorType = 02 wTotalLength = 0022 bNumInterfaces = 01 bConfigurationValue = 01 iConfiguration = 00 bmAttributes = a0 MaxPower = 50mA Interface: 0 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 00 bAlternateSetting = 00 bNumEndpoints = 01 bInterface Class:SubClass:Protocol = 03:01:02 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 81 (in) bmAttributes = 03 (Interrupt) wMaxPacketSize = 0008 bInterval = 0a usb.c: kusbd: /sbin/hotplug add 2 usb.c: kusbd policy returned 0xfffffffe hub.c: port 2 connection change hub.c: port 2, portstatus 101, change 1, 12 Mb/s hub.c: port 2, portstatus 103, change 10, 12 Mb/s hub.c: USB new device connect on bus1/2, assigned device number 3 usb.c: kmalloc IF cbfc1fa0, numif 1 usb.c: new device strings: Mfr=0, Product=0, SerialNumber=0 usb.c: unhandled interfaces on device usb.c: USB device 3 (vend/prod 0x4f9/0x7) is not claimed by any active driver. Length = 18 DescriptorType = 01 USB version = 1.00 Vendor:Product = 04f9:0007 MaxPacketSize0 = 8 NumConfigurations = 1 Device version = 1.00 Device Class:SubClass:Protocol = 00:00:00 Per-interface classes Configuration: bLength = 9 bDescriptorType = 02 wTotalLength = 0020 bNumInterfaces = 01 bConfigurationValue = 01 iConfiguration = 00 bmAttributes = 40 MaxPower = 0mA Interface: 0 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 00 bAlternateSetting = 00 bNumEndpoints = 02 bInterface Class:SubClass:Protocol = 07:01:02 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 01 (out) bmAttributes = 02 (Bulk) wMaxPacketSize = 0040 bInterval = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 82 (in) bmAttributes = 02 (Bulk) wMaxPacketSize = 0010 bInterval = 00 usb.c: kusbd: /sbin/hotplug add 3 usb.c: kusbd policy returned 0xfffffffe usb.c: registered new driver usb_mouse input0: Logitech USB Mouse on usb1:2.0 usb.c: usb_mouse driver claimed interface cbfc1f20 mouse0: PS/2 mouse device for input0 mice: PS/2 mouse device common for all mice usb.c: registered new driver usblp printer.c: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 usb.c: usblp driver claimed interface cbfc1fa0 ne2k-pci.c:v1.02 10/19/2000 D. Becker/P. Gortmaker http://www.scyld.com/network/ne2k-pci.html IRQ for 00:0c.0:0 -> PIRQ 01, mask 1eb8, excl 0000 -> newirq=11 -> got IRQ 11 PCI: Found IRQ 11 for device 00:0c.0 eth0: RealTek RTL-8029 found at 0xb400, IRQ 11, 00:00:B4:5E:66:7E.
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 5591/5592 Host (rev 02) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- Latency: 32 Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=256M] Capabilities: [c0] AGP version 1.0 Status: RQ=31 SBA+ 64bit- FW- Rate=x1,x2 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none> 00: 39 10 91 55 07 01 10 22 02 00 00 06 00 20 80 00 10: 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: c0 ea 40 00 e0 07 30 00 5a 50 03 00 00 12 80 00 60: ca e2 00 03 00 00 00 00 80 00 00 00 00 00 00 00 70: cc 00 00 00 88 88 88 00 00 00 00 00 00 00 00 00 80: 08 c0 0e 1b 60 00 03 44 10 00 f0 ff c0 00 00 00 90: 00 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 0b 30 80 30 20 30 18 30 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 02 00 10 00 03 02 00 1f 00 00 00 00 00 00 00 00 d0: 00 00 00 00 60 60 aa 06 a0 00 40 00 00 00 00 00 e0: 00 40 0c 0b 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0) (prog-if 8a [Master SecP PriP]) Subsystem: Silicon Integrated Systems [SiS] SiS5513 EIDE Controller (A,B step) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 Interrupt: pin A routed to IRQ 14 Region 0: I/O ports at <ignored> Region 1: I/O ports at <ignored> Region 2: I/O ports at <ignored> Region 3: I/O ports at <ignored> Region 4: I/O ports at d000 [size=16] 00: 39 10 13 55 07 00 00 00 d0 8a 01 01 00 20 80 00 10: 01 e4 00 00 01 e0 00 00 01 d8 00 00 01 d4 00 00 20: 01 d0 00 00 00 00 00 00 00 00 00 00 39 10 13 55 30: 00 00 00 00 00 00 00 00 00 00 00 00 0e 01 00 00 40: 01 a3 01 a3 01 a3 02 04 00 07 e7 55 00 02 00 02 50: 00 01 07 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 (rev 01) Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 00: 39 10 08 00 0f 00 00 02 01 00 01 06 00 00 80 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: fa 0b 80 0a 80 64 f8 42 ff ff 10 0f 11 20 04 01 50: 11 28 02 01 60 0b 66 0b 9c 2e 12 00 36 06 00 00 60: 00 a0 4b 00 35 c1 40 04 90 02 80 00 20 1d 00 00 70: 5e 00 00 00 80 b5 cd cd ff 00 00 80 0e 00 80 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 ec 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:01.1 Class ff00: Silicon Integrated Systems [SiS] ACPI Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- 00: 39 10 09 00 00 00 00 02 00 00 00 ff 00 00 80 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: 00 00 00 fc 80 00 f0 00 00 00 00 00 00 00 00 00 50: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 10 38 e1 f1 03 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 08 00 00 00 00 40 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:01.2 USB Controller: Silicon Integrated Systems [SiS] 7001 (rev 11) (prog-if 10 [OHCI]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (20000ns max), cache line size 08 Interrupt: pin A routed to IRQ 11 Region 0: Memory at cf800000 (32-bit, non-prefetchable) [size=4K] 00: 39 10 01 70 17 00 80 02 11 10 03 0c 08 40 80 00 10: 00 00 80 cf 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 50 40: 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:02.0 PCI bridge: Silicon Integrated Systems [SiS] 5591/5592 AGP (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 I/O behind bridge: 0000c000-0000bfff Memory behind bridge: cf800000-cf7fffff Prefetchable memory behind bridge: e8000000-e7ffffff BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- 00: 39 10 01 00 07 00 00 00 00 00 04 06 00 00 01 00 10: 00 00 00 00 00 00 00 00 00 01 01 40 c0 b0 00 20 20: 80 cf 70 cf 00 e8 f0 e7 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0a.0 Multimedia video controller: Brooktree Corporation Bt848 TV with DMA push (rev 12) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (4000ns min, 10000ns max) Interrupt: pin A routed to IRQ 10 Region 0: Memory at e7800000 (32-bit, prefetchable) [size=4K] 00: 9e 10 50 03 06 00 80 02 12 00 00 04 00 40 00 00 10: 08 00 80 e7 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 10 28 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0b.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro 215GP (rev 5c) (prog-if 00 [VGA]) Subsystem: ATI Technologies Inc 3D Rage Pro 215GP Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (2000ns min), cache line size 08 Region 0: Memory at e6000000 (32-bit, prefetchable) [size=16M] Region 1: I/O ports at b800 [size=256] Region 2: Memory at cf000000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at <unassigned> [disabled] [size=128K] 00: 02 10 50 47 87 00 80 02 5c 00 00 03 08 40 00 00 10: 08 00 00 e6 01 b8 00 00 00 00 00 cf 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 02 10 50 47 30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 08 00 40: 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 02 00 10 00 01 00 00 ff 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS) Subsystem: Realtek Semiconductor Co., Ltd. RT8029(AS) Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at b400 [size=32] 00: ec 10 29 80 03 00 00 02 00 00 00 02 00 00 00 00 10: 01 b4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 ec 10 29 80 30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Interrupt routing table found at address 0xf0a40: Version 1.0, size 0x0070 Interrupt router is device 00:01.0 PCI exclusive interrupt mask: 0x0000 [] Compatible router: vendor 0x1039 device 0x0008 Device 00:0c.0 (slot 1): INTA: link 0x01, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTB: link 0x02, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTC: link 0x03, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTD: link 0x04, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] Device 00:0b.0 (slot 2): INTA: link 0x02, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTB: link 0x03, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTC: link 0x04, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTD: link 0x01, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] Device 00:0a.0 (slot 3): INTA: link 0x03, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTB: link 0x04, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTC: link 0x01, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTD: link 0x02, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] Device 00:01.0 (slot 0): INTA: link 0x62, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] Device 00:02.0 (slot 0): INTA: link 0x01, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTB: link 0x02, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTC: link 0x03, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] INTD: link 0x04, irq mask 0x1eb8 [3,4,5,7,9,10,11,12] Interrupt router at 00:01.0: SiS 85C503 PCI-to-ISA bridge INTA (link 0x41): irq 11 INTB (link 0x42): unrouted INTC (link 0x43): irq 10 INTD (link 0x44): unrouted