Subject: Re: VIA chipsets still suck.
To: Peter Seebach <seebs@plethora.net>
From: John Franklin <franklin@elfie.org>
List: port-i386
Date: 10/13/2002 09:13:16
On Sat, Sep 28, 2002 at 12:36:45AM -0500, Peter Seebach wrote:
> I have access to three machines with "similar" VIA chipsets on them.
> 
> Machine #2:  Gigabyte motherboard with Athlon. auvia audio,
> uhci0 at pci0 dev 7 function 2: VIA Technologies VT83C572 USB Controller (rev.
> 0x1a)
> uhub0: VIA Technologie UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub0: 2 ports with 2 removable, self powered
> 
> Behaviors:  On boot, this machine always says
> uhub0: port error, restarting port 1
> uhub0: port error, giving up port 1
> uhub0: port error, restarting port 2
> uhub0: port error, giving up port 2
> 
> The internal ports are never usable.

I have problems with USB on a VIA based MB... but only when running a MP
NetBSD and Linux kernels.  The USB works fine with an SP kernel, works
fine with Win2k (dual-proc) and fine with a Linux SP.  Haven't tried
FreeBSD MP.

Near as I can figure, the device is generating an interrupt which isn't
being properly routed.  The USB is the only device interrupting on INTD
(the below dmesg may or may not be verbose enough to show).

ISTR someone was looking to redo much of the interrupt routing code, so
I've mentioned this before, but haven't made a big fuss about it.  I
would love to be able to use USB on this machine.


NetBSD 1.6I (DM.MP) #4: Sat Oct  5 20:32:21 EDT 2002
    franklin@deathmitten:/usr/src/sys/arch/i386/compile/DM.MP
total memory = 447 MB
avail memory = 345 MB
using 6144 buffers containing 91600 KB of memory
BIOS32 rev. 0 found at 0xfb290
PCI BIOS rev. 2.1 found at 0xfb2c0
pcibios: config mechanism [1][x], special cycles [1][x], last bus 1
PCI IRQ Routing Table rev. 1.0 found at 0xfdb50, size 160 bytes (8 entries)
PCI Interrupt Router at 000:07:0 (VIA Technologies VT82C596A (Apollo Pro) PCI-ISA Bridge)
PCI Exclusive IRQs: 5 10 11
PIR Entry 0:
	Bus: 0  Device: 15
		INTA: link 0x05 bitmap 0xdeb8
		INTB: link 0x01 bitmap 0xdeb8
		INTC: link 0x02 bitmap 0xdeb8
		INTD: link 0x03 bitmap 0xdeb8
PIR Entry 1:
	Bus: 0  Device: 16
		INTA: link 0x01 bitmap 0xdeb8
		INTB: link 0x02 bitmap 0xdeb8
		INTC: link 0x03 bitmap 0xdeb8
		INTD: link 0x05 bitmap 0xdeb8
PIR Entry 2:
	Bus: 0  Device: 17
		INTA: link 0x02 bitmap 0xdeb8
		INTB: link 0x03 bitmap 0xdeb8
		INTC: link 0x05 bitmap 0xdeb8
		INTD: link 0x01 bitmap 0xdeb8
PIR Entry 3:
	Bus: 0  Device: 18
		INTA: link 0x03 bitmap 0xdeb8
		INTB: link 0x05 bitmap 0xdeb8
		INTC: link 0x01 bitmap 0xdeb8
		INTD: link 0x02 bitmap 0xdeb8
PIR Entry 4:
	Bus: 0  Device: 19
		INTA: link 0x05 bitmap 0xdeb8
		INTB: link 0x01 bitmap 0xdeb8
		INTC: link 0x02 bitmap 0xdeb8
		INTD: link 0x03 bitmap 0xdeb8
PIR Entry 5:
	Bus: 0  Device: 20
		INTA: link 0x01 bitmap 0xdeb8
		INTB: link 0x02 bitmap 0xdeb8
		INTC: link 0x03 bitmap 0xdeb8
		INTD: link 0x05 bitmap 0xdeb8
PIR Entry 6:
	Bus: 0  Device: 1
		INTA: link 0x01 bitmap 0xdeb8
		INTB: link 0x02 bitmap 0xdeb8
		INTC: link 0x03 bitmap 0xdeb8
		INTD: link 0x05 bitmap 0xdeb8
PIR Entry 7:
	Bus: 0  Device: 7
		INTA: link 0x00 bitmap 0xdeb8
		INTB: link 0x00 bitmap 0xdeb8
		INTC: link 0x03 bitmap 0xdeb8
		INTD: link 0x05 bitmap 0xdeb8
pci_intr_fixup: no compatible PCI ICU found: ICU vendor 0x1106 product 0x0596
Warning: unable to fix up PCI interrupt routing
PCI fixup examining 1106:691
PCI fixup examining 1106:8598
PCI fixup examining 121a:03
PCI bridge 0: primary 0, secondary 1, subordinate 1
PCI fixup examining 1106:596
PCI fixup examining 1106:571
PCI fixup examining 1106:3038
PCI fixup examining 1106:3050
PCI fixup examining 10b7:9050
PCI fixup examining 1274:5880
PCI bus #1 is the last bus
[System BIOS Setting]-----------------------
  device vendor product
  register space address    size
--------------------------------------------
000:00:0 0x1106 0x0691 
	10h mem  0xd0000000 0x04000000
		[OK]
000:01:0 0x1106 0x8598 
		[OK]
000:07:0 0x1106 0x0596 
		[OK]
000:07:1 0x1106 0x0571 
	20h port 0x0000e000 0x00000010
		[OK]
000:07:2 0x1106 0x3038 
	20h port 0x0000e400 0x00000020
		[OK]
000:07:3 0x1106 0x3050 
		[OK]
000:17:0 0x10b7 0x9050 
	10h port 0x0000e800 0x00000040
		[OK]
000:20:0 0x1274 0x5880 
	10h port 0x0000ec00 0x00000040
		[OK]
001:00:0 0x121a 0x0003 
	10h mem  0xd4000000 0x02000000
	14h mem  0xd8000000 0x02000000
	18h port 0x0000d000 0x00000100
		[OK]
--------------------------[  0 devices bogus]
 Physical memory end: 0x1bfec000
 PCI memory mapped I/O space start: 0x1c000000
mainbus0 (root)
mainbus0: Intel MP Specification (Version 1.4) (OEM00000 PROD00000000)
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel Pentium II (Klamath) (686-class), 267.30 MHz
cpu0: features 80fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 80fbff<PGE,MCA,CMOV,MMX>
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu0: L2 cache 512 KB 32b/line 4-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: calibrating local timer
cpu0: apic clock running at 66 MHz
cpu0: 32 page colors
cpu1 at mainbus0: apid 1 (application processor)
cpu1: starting
cpu1: Intel Pentium II (Klamath) (686-class), 267.47 MHz
cpu1: features 80fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu1: features 80fbff<PGE,MCA,CMOV,MMX>
cpu1: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu1: L2 cache 512 KB 32b/line 4-way
cpu1: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu1: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
mpbios: bus 0 is type PCI   
mpbios: bus 1 is type PCI   
mpbios: bus 2 is type ISA   
ioapic0 at mainbus0 apid 2 (I/O APIC)
ioapic0: pa 0xfec00000, version 11, 24 pins
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: VIA Technologies VT82C691 (Apollo Pro) Host-PCI (rev. 0xc4)
agp0 at pchb0: aperture at 0xd0000000, size 0x10000000
ppb0 at pci0 dev 1 function 0: VIA Technologies VT82C598 (Apollo MVP3) CPU-AGP Bridge (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga0 at pci1 dev 0 function 0: 3Dfx Interactive Banshee (rev. 0x03)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
pcib0 at pci0 dev 7 function 0
pcib0: VIA Technologies VT82C596A (Apollo Pro) PCI-ISA Bridge (rev. 0x23)
pciide0 at pci0 dev 7 function 1: VIA Technologies VT82C596A (Apollo Pro) ATA66 controller
pciide0: bus-master DMA support present
pciide0: primary channel configured to compatibility mode
wd0 at pciide0 channel 0 drive 0: <QUANTUM FIREBALLlct10 15>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 14324 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 29336832 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 4 (Ultra/66) (using DMA data transfers)
pciide0: secondary channel configured to compatibility mode
atapibus0 at pciide0 channel 1: 2 targets
cd0 at atapibus0 drive 0: <PCRW804, 4VO2026DG02855, 1.1> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2
pciide0: secondary channel interrupting at irq 15
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2 (using DMA data transfers)
uhci0 at pci0 dev 7 function 2: VIA Technologies VT83C572 USB Controller (rev. 0x11)
uhci0: interrupting at apic 2 int 19 (irq 5)
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: VIA Technologie UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
pchb1 at pci0 dev 7 function 3
pchb1: VIA Technologies product 0x3050 (rev. 0x30)
ex0 at pci0 dev 17 function 0: 3Com 3c905-TX 10/100 Ethernet (rev. 0x0)
ex0: interrupting at apic 2 int 17 (irq 11)
ex0: MAC address 00:60:97:6e:ab:e6
exphy0 at ex0 phy 24: 3Com internal media interface
exphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
eap0 at pci0 dev 20 function 0: Ensoniq CT5880 CT5880C (rev. 0x02)
eap0: interrupting at apic 2 int 16 (irq 10)
eap0: SigmaTel STAC9721/23 codec; 18 bit DAC, 18 bit ADC, SigmaTel 3D
audio0 at eap0: full duplex, mmap, independent
midi0 at eap0: AudioPCI MIDI UART
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: 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
midi1 at pcppi0: PC speaker
spkr0 at pcppi0
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
isapnp0: no ISA Plug 'n Play devices found
biomask 0 netmask 0 ttymask 0
ioapic0: enabling
usbd_new_device: addr=2, getting first desc failed
uhub_explore: usb_new_device failed, error=TIMEOUT
uhub0: device problem, disabling port 2
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
cpu1: CPU 1 running
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)

jf
-- 
John Franklin
franklin@elfie.org
ICBM: 35°43'56"N 78°53'27"W