Subject: kern/37050: EHCI USB port disabled if hub plugged in at boot
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Andreas Gustafsson <gson@gson.org>
List: netbsd-bugs
Date: 10/01/2007 14:30:00
>Number:         37050
>Category:       kern
>Synopsis:       EHCI USB port disabled if hub plugged in at boot
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 01 14:30:00 +0000 2007
>Originator:     Andreas Gustafsson
>Release:        NetBSD 4.99.30
>Organization:
>Environment:
System: NetBSD guru.araneus.fi 4.99.30 NetBSD 4.99.30 (GURU) #0: Wed Sep 12 11:15:15 EEST 2007 root@current.araneus.fi:/usr/src/sys/arch/i386/compile/GURU i386
Architecture: i386
Machine: i386
>Description:

My D-Link DUB-H7 USB hub doesn't work if it is plugged into one of the
machine's USB port at boot time.  Furthermore, if I then disconnect
and reconnect the hub, it still doesn't work.  The only way I can
regain use of the USB port is to reboot.

If I boot without the hub and then connect it, it works.  I can
disconnect and reconnect it, and it still works.

Here's the dmesg from booting with the hub plugged in.  Note the
message "uhub4: device problem, disabling port 4".

  Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
      2006, 2007
      The NetBSD Foundation, Inc.  All rights reserved.
  Copyright (c) 1982, 1986, 1989, 1991, 1993
      The Regents of the University of California.  All rights reserved.

  NetBSD 4.99.30 (GURU) #0: Wed Sep 12 11:15:15 EEST 2007
	  root@current.araneus.fi:/usr/src/sys/arch/i386/compile/GURU
  total memory = 2047 MB
  rbus: rbus_min_start set to 0x80000000
  avail memory = 1997 MB
  timecounter: Timecounters tick every 10.000 msec
  timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
  BIOS32 rev. 0 found at 0xf0010
  mainbus0 (root)
  cpu0 at mainbus0 apid 0: (boot processor)
  cpu0: AMD Athlon 64 or Sempron (686-class), 2202.94 MHz, id 0x20ff2
  cpu0: features e7dbfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
  cpu0: features e7dbfbff<PGE,MCA,CMOV,PAT,PSE36,MPC,NOX,MMXX,MMX>
  cpu0: features e7dbfbff<FXSR,SSE,SSE2,LONG,3DNOW2,3DNOW>
  cpu0: features2 1<SSE3>
  cpu0: "AMD Athlon(tm) 64 Processor 3500+"
  cpu0: I-cache 64 KB 64B/line 2-way, D-cache 64 KB 64B/line 2-way
  cpu0: L2 cache 512 KB 64B/line 16-way
  cpu0: ITLB 32 4 KB entries fully associative, 8 4 MB entries fully associative
  cpu0: DTLB 32 4 KB entries fully associative, 8 4 MB entries fully associative
  cpu0: AMD Power Management features: 3f<STC,TM,TTP,VID,FID,TS>
  cpu0: WARNING: AMD errata present, BIOS upgrade may be
  cpu0: WARNING: necessary to ensure reliable operation
  cpu0: calibrating local timer
  cpu0: apic clock running at 200 MHz
  cpu0: 8 page colors
  ioapic0 at mainbus0 apid 1
  ioapic0: pa 0xfec00000, version 3, 24 pins
  acpi0 at mainbus0: Advanced Configuration and Power Interface
  acpi0: using Intel ACPI CA subsystem version 20060217
  acpi0: X/RSDT: OemId <A M I ,OEMXSDT ,11000503>, AslId <MSFT,00000097>
  acpi0: SCI interrupting at int 9
  acpi0: fixed-feature power button present
  timecounter: Timecounter "ACPI-Safe" frequency 3579545 Hz quality 900
  ACPI-Safe 24-bit timer
  CPU1 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
  CPU2 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
  PCI0 (PNP0A03) [PCI/PCI-X Host Bridge] at acpi0 not configured
  PIC (PNP0000) [AT Interrupt Controller] at acpi0 not configured
  DMAD (PNP0200) [AT DMA Controller] at acpi0 not configured
  attimer1 at acpi0 (TMR, PNP0100): AT Timer
  attimer1: io 0x40-0x43 irq 0
  RTC0 (PNP0B00) [AT Real-Time Clock] at acpi0 not configured
  pckbc1 at acpi0 (PS2K, PNP0303): kbd port
  pckbc1: io 0x60,0x64 irq 1
  pckbc2 at acpi0 (PS2M, PNP0F03): aux port
  pckbc2: irq 12
  pcppi1 at acpi0 (SPKR, PNP0800)
  pcppi1: io 0x61
  midi0 at pcppi1: PC speaker (CPU-intensive output)
  sysbeep0 at pcppi1
  npx1 at acpi0 (COPR, PNP0C04)
  npx1: io 0xf0-0xff irq 13
  npx1: reported by CPUID; using exception 16
  lpt3 at acpi0 (LPTE, PNP0400-1)
  lpt3: io 0x378-0x37f irq 7
  SIOR (PNP0C02) [Plug and Play motherboard register resources] at acpi0 not configured
  RMSC (PNP0C02) [Plug and Play motherboard register resources] at acpi0 not configured
  OMSC (PNP0C02) [Plug and Play motherboard register resources] at acpi0 not configured
  com3 at acpi0 (UAR1, PNP0501-1)
  com3: io 0x3f8-0x3ff irq 4
  com3: ns16550a, working fifo
  RMEM (PNP0C01) [System Board] at acpi0 not configured
  acpibut0 at acpi0 (PWRB, PNP0C0C-170): ACPI Power Button
  LNKA (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
  LNKB (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
  LNKC (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
  LNKD (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
  acpibut1 at acpi0 (SLPB, PNP0C0E): ACPI Sleep Button
  apm0 at acpi0: Power Management spec V1.2
  pckbd0 at pckbc1 (kbd slot)
  pckbc1: using irq 1 for kbd slot
  wskbd0 at pckbd0: console keyboard
  pms0 at pckbc1 (aux slot)
  pckbc1: using irq 12 for aux slot
  wsmouse0 at pms0 mux 0
  pcppi1: attached to attimer1
  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 K8HTB Host (rev. 0x00)
  agp0 at pchb0 (v3): aperture at 0xc0000000, size 0x10000000
  pchb1 at pci0 dev 0 function 1
  pchb1: VIA Technologies product 0x1282 (rev. 0x00)
  pchb2 at pci0 dev 0 function 2
  pchb2: VIA Technologies product 0x2282 (rev. 0x00)
  pchb3 at pci0 dev 0 function 3
  pchb3: VIA Technologies product 0x3282 (rev. 0x00)
  pchb4 at pci0 dev 0 function 4
  pchb4: VIA Technologies product 0x4282 (rev. 0x00)
  pchb5 at pci0 dev 0 function 7
  pchb5: VIA Technologies product 0x7282 (rev. 0x00)
  ppb0 at pci0 dev 1 function 0: VIA Technologies K8HTB AGP (rev. 0x00)
  pci1 at ppb0 bus 1
  pci1: i/o space, memory space enabled
  vga1 at pci1 dev 0 function 0: NVIDIA product 0x0221 (rev. 0xa1)
  wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
  wsmux1: connecting to wsdisplay0
  direct rendering for vga1 unsupported
  ahc1 at pci0 dev 9 function 0: Adaptec 2940 Ultra SCSI adapter
  ahc1: interrupting at ioapic0 pin 16 (irq 11)
  ahc1: aic7880: Ultra Single Channel A, SCSI Id=7, 16/253 SCBs
  scsibus0 at ahc1: 8 targets, 8 luns per target
  skc0 at pci0 dev 10 function 0: ioapic0 pin 17 (irq 10)
  skc0: interrupt moderation is 0 us
  skc0: Marvell Yukon Lite Gigabit Ethernet rev. (0x9)
  sk0 at skc0 port A: Ethernet address 00:17:31:16:dd:fa
  makphy0 at sk0 phy 0: Marvell 88E1011 Gigabit PHY, rev. 5
  makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
  Matrox MGA Millennium 2064W ("Storm") (VGA display, revision 0x01) at pci0 dev 12 function 0 not configured
  tlp0 at pci0 dev 14 function 0: DECchip 21040 Ethernet, pass 2.3
  tlp0: interrupting at ioapic0 pin 19 (irq 3)
  tlp0: SMC 8432BT, Ethernet address 00:00:c0:9b:47:0e
  tlp0: 10baseT, 10baseT-FDX, 10base5, manual
  viaide0 at pci0 dev 15 function 0
  viaide0: VIA Technologies VT8237 SATA Controller (rev. 0x80)
  viaide0: bus-master DMA support present
  viaide0: primary channel wired to native-PCI mode
  viaide0: using ioapic0 pin 20 (irq 10) for native-PCI interrupt
  atabus0 at viaide0 channel 0
  viaide0: secondary channel wired to native-PCI mode
  atabus1 at viaide0 channel 1
  viaide1 at pci0 dev 15 function 1
  viaide1: VIA Technologies VT8237 ATA133 controller
  viaide1: bus-master DMA support present
  viaide1: primary channel configured to compatibility mode
  viaide1: primary channel interrupting at ioapic0 pin 14 (irq 14)
  atabus2 at viaide1 channel 0
  viaide1: secondary channel configured to compatibility mode
  viaide1: secondary channel interrupting at ioapic0 pin 15 (irq 15)
  atabus3 at viaide1 channel 1
  uhci0 at pci0 dev 16 function 0: VIA Technologies VT83C572 USB Controller (rev. 0x81)
  uhci0: interrupting at ioapic0 pin 21 (irq 11)
  usb0 at uhci0: USB revision 1.0
  uhub0 at usb0
  uhub0: VIA Technologies 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 16 function 1: VIA Technologies VT83C572 USB Controller (rev. 0x81)
  uhci1: interrupting at ioapic0 pin 21 (irq 11)
  usb1 at uhci1: USB revision 1.0
  uhub1 at usb1
  uhub1: VIA Technologies 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 16 function 2: VIA Technologies VT83C572 USB Controller (rev. 0x81)
  uhci2: interrupting at ioapic0 pin 21 (irq 10)
  usb2 at uhci2: USB revision 1.0
  uhub2 at usb2
  uhub2: VIA Technologies UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
  uhub2: 2 ports with 2 removable, self powered
  uhci3 at pci0 dev 16 function 3: VIA Technologies VT83C572 USB Controller (rev. 0x81)
  uhci3: interrupting at ioapic0 pin 21 (irq 10)
  usb3 at uhci3: USB revision 1.0
  uhub3 at usb3
  uhub3: VIA Technologies UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
  uhub3: 2 ports with 2 removable, self powered
  ehci0 at pci0 dev 16 function 4: VIA Technologies VT8237 EHCI USB Controller (rev. 0x86)
  ehci0: interrupting at ioapic0 pin 21 (irq 5)
  ehci0: dropped intr workaround enabled
  ehci0: BIOS refuses to give up ownership, using force
  ehci0: EHCI version 1.0
  ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2 uhci3
  usb4 at ehci0: USB revision 2.0
  uhub4 at usb4
  uhub4: VIA Technologies EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
  uhub4: 8 ports with 8 removable, self powered
  pcib0 at pci0 dev 17 function 0
  pcib0: VIA Technologies VT8237 (Apollo KT600) PCI-ISA Bridge (rev. 0x00)
  auvia0 at pci0 dev 17 function 5: VIA Technologies VT8237 AC'97 Audio (rev 0x60)
  auvia0: interrupting at ioapic0 pin 22 (irq 5)
  auvia0: ac97: Avance Logic ALC850 codec; no 3D stereo
  auvia0: ac97: ext id 9c6<AC97_23,LDAC,SDAC,CDAC,SPDIF,DRA>
  audio0 at auvia0: full duplex, independent
  pchb6 at pci0 dev 24 function 0
  pchb6: Advanced Micro Devices K8 AMD64 HyperTransport configuration (rev. 0x00)
  pchb7 at pci0 dev 24 function 1
  pchb7: Advanced Micro Devices K8 AMD64 Address Map configuration (rev. 0x00)
  pchb8 at pci0 dev 24 function 2
  pchb8: Advanced Micro Devices K8 AMD64 DRAM configuration (rev. 0x00)
  pchb9 at pci0 dev 24 function 3
  pchb9: Advanced Micro Devices K8 AMD64 Miscellaneous configuration (rev. 0x00)
  isa0 at pcib0
  isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
  isapnp0: no ISA Plug 'n Play devices found
  timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
  raidattach: Asked for 8 units
  Kernelized RAIDframe activated
  scsibus0: waiting 2 seconds for devices to settle...
  wd0 at atabus2 drive 0: <ST3200826A>
  wd0: quirks 2<FORCE_LBA48>
  wd0: drive supports 16-sector PIO transfers, LBA48 addressing
  wd0: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
  wd0: 32-bit data port
  wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
  wd0(viaide1:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
  atapibus0 at atabus3: 2 targets
  cd0 at atapibus0 drive 0: <HL-DT-ST DVDRAM GSA-4167B, F970EAFE7239, DL11> cdrom removable
  cd0: 32-bit data port
  cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
  cd0(viaide1:1:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
  uhub4: device problem, disabling port 4
  Searching for RAID components...
  boot device: wd0
  root on wd0a dumps on wd0b
  mountroot: trying lfs...
  mountroot: trying ffs...
  root file system type: ffs
  WARNING: clock gained 9 days
  WARNING: CHECK AND RESET THE DATE!
  init: copying out path `/sbin/init' 11
  skc0: interrupt moderation is 1000 us

And here are diffs comparing the above to the dmesg from first booting
the machine and then plugging in the hub:

  17c17
  < cpu0: AMD Athlon 64 or Sempron (686-class), 2202.94 MHz, id 0x20ff2
  ---
  > cpu0: AMD Athlon 64 or Sempron (686-class), 2203.02 MHz, id 0x20ff2
  165c165
  < ehci0: BIOS refuses to give up ownership, using force
  ---
  > ehci0: BIOS has given up ownership
  206d205
  < uhub4: device problem, disabling port 4
  213,214d211
  < WARNING: clock gained 9 days
  < WARNING: CHECK AND RESET THE DATE!
  216a214,217
  > uhub5 at uhub4 port 4
  > uhub5: D-Link product 0xf103, class 9/0, rev 2.00/1.00, addr 2
  > uhub5: single transaction translator
  > uhub5: 7 ports with 0 removable, self powered

>How-To-Repeat:

See above.

>Fix:

Please.