Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PCI issues getting ATI SB400 usb controller to work



Just picked up a emachines E4056 Pentium 4 system for free (from a skip 
[dumpster]!) and loaded the latest 5.99.55 amd64 kernel & userland. Everything 
works fine except none of the usb ports work :-( This boils down to the ATI 
SB400 usb chip(s) not being attached properly. Editted dmesg below and a 
section of the dmesg with verbose pci messages. Adding "options  
PCI_ADDR_FIXUP" to the kernel config didn't fix the problem.

If I boot linux then it detects and configures all the usb controllers fine 
and FreeBSD manages to configure at least one of them. 

Any clues as to how to work around or fix this would be appreciated...

[I thought the BIOS was meant to fix in the address blocks for the PCI devices 
at power on, and the OS uses these or configures addresses if this has not 
done. Certainly linux seems to set the addresses to 0x18100000 etc]

Cheers,
Dave

[Full dmesg can be provided if needed]

Aug 12 19:20:16 skip /netbsd: Copyright (c) 1996, 1997, 1998, 1999, 2000, 
2001, 2002, 2003, 2004, 2005,
Aug 12 19:20:16 skip /netbsd:    2006, 2007, 2008, 2009, 2010, 2011
Aug 12 19:20:16 skip /netbsd:    The NetBSD Foundation, Inc.  All rights 
reserved.
Aug 12 19:20:16 skip /netbsd: Copyright (c) 1982, 1986, 1989, 1991, 1993
Aug 12 19:20:16 skip /netbsd:    The Regents of the University of California.  
All rights reserved.
Aug 12 19:20:16 skip /netbsd: 
Aug 12 19:20:16 skip /netbsd: NetBSD 5.99.55 (DAVE) #0: Fri Aug 12 18:54:11 
BST 2011
Aug 12 19:20:16 skip /netbsd:   root@skip:/usr/obj/sys/arch/amd64/compile/DAVE
Aug 12 19:20:16 skip /netbsd: total memory = 366 MB
Aug 12 19:20:16 skip /netbsd: avail memory = 340 MB
Aug 12 19:20:16 skip /netbsd: timecounter: Timecounters tick every 10.000 msec
Aug 12 19:20:16 skip /netbsd: RTC BIOS diagnostic error 0x80<clock_battery>
Aug 12 19:20:16 skip /netbsd: timecounter: Timecounter "i8254" frequency 
1193182 Hz quality 100
Aug 12 19:20:16 skip /netbsd: EMACHINES                        E4056            
                
(                        )
Aug 12 19:20:16 skip /netbsd: mainbus0 (root)
Aug 12 19:20:16 skip /netbsd: cpu0 at mainbus0 apid 0: Intel(R) Pentium(R) 4 
CPU 3.06GHz, id 0xf49
Aug 12 19:20:16 skip /netbsd: cpu1 at mainbus0 apid 1: Intel(R) Pentium(R) 4 
CPU 3.06GHz, id 0xf49

...snip...snip...snip

Aug 11 17:29:02  /netbsd: ohci0 at pci0 dev 19 function 0: vendor 0x1002 
product 0x4374 (rev. 0x80)
Aug 11 17:29:02  /netbsd: ohci0: can't map mem space
Aug 11 17:29:02  /netbsd: ohci1 at pci0 dev 19 function 1: vendor 0x1002 
product 0x4375 (rev. 0x80)
Aug 11 17:29:02  /netbsd: ohci1: can't map mem space
Aug 11 17:29:02  /netbsd: ehci0 at pci0 dev 19 function 2: vendor 0x1002 
product 0x4373 (rev. 0x80)
Aug 11 17:29:02  /netbsd: ehci0: can't map memory space

detailed PCI info for first USB device

Aug 12 19:46:38 skip /netbsd: ATI Technologies SB400 USB Host Controller (USB 
serial bus, interface 0x10, revision 0x80) at ? dev 19 function 0 (intrswiz 0, 
intrpin 0x1, i/o o
n, mem on, no quirks): ATI Technologies SB400 USB Host Controller (rev. 0x80)
Aug 12 19:46:38 skip /netbsd: ohci0: can't map mem space
Aug 12 19:46:38 skip /netbsd: ohci1 at pci0 dev 19 function 1: PCI 
configuration registers:
Aug 12 19:46:38 skip /netbsd:  Common header:
Aug 12 19:46:38 skip /netbsd:    0x00: 0x43751002 0x02b00000 0x0c031080 
0x00004010
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:    Vendor Name: ATI Technologies (0x1002)
Aug 12 19:46:38 skip /netbsd:    Device Name: SB400 USB Host Controller 
(0x4375)
Aug 12 19:46:38 skip /netbsd:    Command register: 0x0000
Aug 12 19:46:38 skip /netbsd:      I/O space accesses: off
Aug 12 19:46:38 skip /netbsd:      Memory space accesses: off
Aug 12 19:46:38 skip /netbsd:      Bus mastering: off
Aug 12 19:46:38 skip /netbsd:      Special cycles: off
Aug 12 19:46:38 skip /netbsd:      MWI transactions: off
Aug 12 19:46:38 skip /netbsd:      Palette snooping: off
Aug 12 19:46:38 skip /netbsd:      Parity error checking: off
Aug 12 19:46:38 skip /netbsd:      Address/data stepping: off
Aug 12 19:46:38 skip /netbsd:      System error (SERR): off
Aug 12 19:46:38 skip /netbsd:      Fast back-to-back transactions: off
Aug 12 19:46:38 skip /netbsd:      Interrupt disable: off
Aug 12 19:46:38 skip /netbsd:    Status register: 0x02b0
Aug 12 19:46:38 skip /netbsd:      Interrupt status: inactive
Aug 12 19:46:38 skip /netbsd:      Capability List support: on
Aug 12 19:46:38 skip /netbsd:      66 MHz capable: on
Aug 12 19:46:38 skip /netbsd:      User Definable Features (UDF) support: off
Aug 12 19:46:38 skip /netbsd:      Fast back-to-back capable: on
Aug 12 19:46:38 skip /netbsd:      Data parity error detected: off
Aug 12 19:46:38 skip /netbsd:      DEVSEL timing: medium (0x1)
Aug 12 19:46:38 skip /netbsd:      Slave signaled Target Abort: off
Aug 12 19:46:38 skip /netbsd:      Master received Target Abort: off
Aug 12 19:46:38 skip /netbsd:      Master received Master Abort: off
Aug 12 19:46:38 skip /netbsd:      Asserted System Error (SERR): off
Aug 12 19:46:38 skip /netbsd:      Parity error detected: off
Aug 12 19:46:38 skip /netbsd:    Class Name: serial bus (0x0c)
Aug 12 19:46:38 skip /netbsd:    Subclass Name: USB (0x03)
Aug 12 19:46:38 skip /netbsd:    Interface: 0x10
Aug 12 19:46:38 skip /netbsd:    Revision ID: 0x80
Aug 12 19:46:38 skip /netbsd:    BIST: 0x00
Aug 12 19:46:38 skip /netbsd:    Header Type: 0x00 (0x00)
Aug 12 19:46:38 skip /netbsd:    Latency Timer: 0x40
Aug 12 19:46:38 skip /netbsd:    Cache Line Size: 0x10
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:  Type 0 ("normal" device) header:
Aug 12 19:46:38 skip /netbsd:    0x10: 0x00000000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0x20: 0x00000000 0x00000000 0x00000000 
0x6047107b
Aug 12 19:46:38 skip /netbsd:    0x30: 0x00000000 0x000000d0 0x00000000 
0x0000010b
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:    Base address register at 0x10
Aug 12 19:46:38 skip /netbsd:      not implemented(?)
Aug 12 19:46:38 skip /netbsd:    Base address register at 0x14
Aug 12 19:46:38 skip /netbsd:      not implemented(?)
Aug 12 19:46:38 skip /netbsd:    Base address register at 0x18
Aug 12 19:46:38 skip /netbsd:      not implemented(?)
Aug 12 19:46:38 skip /netbsd:    Base address register at 0x1c
Aug 12 19:46:38 skip /netbsd:      not implemented(?)
Aug 12 19:46:38 skip /netbsd:    Base address register at 0x20
Aug 12 19:46:38 skip /netbsd:      not implemented(?)
Aug 12 19:46:38 skip /netbsd:    Base address register at 0x24
Aug 12 19:46:38 skip /netbsd:      not implemented(?)
Aug 12 19:46:38 skip /netbsd:    Cardbus CIS Pointer: 0x00000000
Aug 12 19:46:38 skip /netbsd:    Subsystem vendor ID: 0x107b
Aug 12 19:46:38 skip /netbsd:    Subsystem ID: 0x6047
Aug 12 19:46:38 skip /netbsd:    Expansion ROM Base Address: 0x00000000
Aug 12 19:46:38 skip /netbsd:    Capability list pointer: 0xd0
Aug 12 19:46:38 skip /netbsd:    Reserved @ 0x38: 0x00000000
Aug 12 19:46:38 skip /netbsd:    Maximum Latency: 0x00
Aug 12 19:46:38 skip /netbsd:    Minimum Grant: 0x00
Aug 12 19:46:38 skip /netbsd:    Interrupt pin: 0x01 (pin A)
Aug 12 19:46:38 skip /netbsd:    Interrupt line: 0x0b
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:  Capability register at 0xdc
Aug 12 19:46:38 skip /netbsd:    type: 0x01 (Power Management, rev. 1.0)
Aug 12 19:46:38 skip /netbsd:  Capability register at 0xd0
Aug 12 19:46:38 skip /netbsd:    type: 0x05 (MSI)
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:  PCI Message Signaled Interrupt
Aug 12 19:46:38 skip /netbsd:    Message Control register: 0x0000
Aug 12 19:46:38 skip /netbsd:      MSI Enabled: no
Aug 12 19:46:38 skip /netbsd:      Multiple Message Capable: no (1 vector)
Aug 12 19:46:38 skip /netbsd:      Multiple Message Enabled: off (1 vector)
Aug 12 19:46:38 skip /netbsd:      64 Bit Address Capable: no
Aug 12 19:46:38 skip /netbsd:      Per-Vector Masking Capable: no
Aug 12 19:46:38 skip /netbsd:    Message Address register: 0x00000000
Aug 12 19:46:38 skip /netbsd:    Message Data register: 0x00000000
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:  PCI Power Management Capabilities Register
Aug 12 19:46:38 skip /netbsd:    Capabilities register: 0x7e02
Aug 12 19:46:38 skip /netbsd:      Version: 1.1
Aug 12 19:46:38 skip /netbsd:      PME# clock: off
Aug 12 19:46:38 skip /netbsd:      Device specific initialization: off
Aug 12 19:46:38 skip /netbsd:      3.3V auxiliary current: self-powered
Aug 12 19:46:38 skip /netbsd:      D1 power management state support: on
Aug 12 19:46:38 skip /netbsd:      D2 power management state support: on
Aug 12 19:46:38 skip /netbsd:      PME# support: 0x0f
Aug 12 19:46:38 skip /netbsd:    Control/status register: 0x0000
Aug 12 19:46:38 skip /netbsd:      Power state: D0
Aug 12 19:46:38 skip /netbsd:      PCI Express reserved: off
Aug 12 19:46:38 skip /netbsd:      No soft reset: off
Aug 12 19:46:38 skip /netbsd:      PME# assertion disabled
Aug 12 19:46:38 skip /netbsd:      PME# status: off
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:  Device-dependent header:
Aug 12 19:46:38 skip /netbsd:    0x40: 0x00000080 0x00000000 0x00000000 
0x00000010
Aug 12 19:46:38 skip /netbsd:    0x50: 0x00002800 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0x60: 0x00002020 0x00002000 0x00002000 
0x00002000
Aug 12 19:46:38 skip /netbsd:    0x70: 0x00002000 0x00002000 0x00002000 
0x00002000
Aug 12 19:46:38 skip /netbsd:    0x80: 0x00002000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0x90: 0x00000000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0xa0: 0x00010001 0xc0040000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0xb0: 0x00000000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0xc0: 0x00000000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0xd0: 0x00000005 0x00000000 0x00000000 
0x7e02d001
Aug 12 19:46:38 skip /netbsd:    0xe0: 0x00400000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd:    0xf0: 0x00000000 0x00000000 0x00000000 
0x00000000
Aug 12 19:46:38 skip /netbsd: 
Aug 12 19:46:38 skip /netbsd:    Don't know how to pretty-print device-
dependent header.

Linux picks the devices up as:

[    2.512796] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.512823] ehci_hcd 0000:00:13.2: enabling device (0000 -> 0002)
[    2.512831]   alloc irq_desc for 19 on node -1
[    2.512834]   alloc kstat_irqs on node -1
[    2.512842] ehci_hcd 0000:00:13.2: PCI INT A -> GSI 19 (level, low) -> IRQ 
19
[    2.512864] ehci_hcd 0000:00:13.2: EHCI Host Controller
[    2.512952] ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus 
number 1
[    2.513034] ehci_hcd 0000:00:13.2: irq 19, io mem 0x18102000
[    2.524032] ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00
[    2.524157] usb usb1: configuration #1 chosen from 1 choice
[    2.524198] hub 1-0:1.0: USB hub found
[    2.524213] hub 1-0:1.0: 8 ports detected
[    2.524321] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.524342] ohci_hcd 0000:00:13.0: enabling device (0000 -> 0002)
[    2.524350] ohci_hcd 0000:00:13.0: PCI INT A -> GSI 19 (level, low) -> IRQ 
19
[    2.524366] ohci_hcd 0000:00:13.0: OHCI Host Controller
[    2.524409] ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus 
number 2
[    2.524432] ohci_hcd 0000:00:13.0: irq 19, io mem 0x18100000
[    2.584085] usb usb2: configuration #1 chosen from 1 choice
[    2.584122] hub 2-0:1.0: USB hub found
[    2.584136] hub 2-0:1.0: 4 ports detected
[    2.584217] ohci_hcd 0000:00:13.1: enabling device (0000 -> 0002)
[    2.584225] ohci_hcd 0000:00:13.1: PCI INT A -> GSI 19 (level, low) -> IRQ 
19
[    2.584240] ohci_hcd 0000:00:13.1: OHCI Host Controller
[    2.584285] ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus 
number 3
[    2.584306] ohci_hcd 0000:00:13.1: irq 19, io mem 0x18101000
[    2.644082] usb usb3: configuration #1 chosen from 1 choice
[    2.644127] hub 3-0:1.0: USB hub found
[    2.644142] hub 3-0:1.0: 4 ports detected
[    2.644222] uhci_hcd: USB Universal Host Controller Interface driver

--  
===========================
Phone: 07805784357
Open Source O/S: http://www.netbsd.org
Caving: http://www.wirralcavinggroup.org.uk
===========================


Home | Main Index | Thread Index | Old Index