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

Reply via email to