# USB 3.0 drives not being recognised with xhci_hcd module

## carbinefreak

Just finished loading Gentoo on a HP Folio13 and the last thing i cant get working is the USB 3.0 support. The kernel has been compiled with the xhci_hcd module and it is active on the controller but there aren't any messages in dmesg whenever i plug in a 3.0 device. One other thing i read about was that legacy mode needed to be enabled for usb3.0 support but this laptop doesn't have any bios options for this, anyone got any ideas? 

```

gentoo-folio13 linux # cat .config | grep -i xhci

CONFIG_USB_XHCI_HCD=y

CONFIG_USB_XHCI_PCI=y

gentoo-folio13 linux # dmesg | grep -i xhci

[    0.549553] xhci_hcd 0000:09:00.0: xHCI Host Controller

[    0.549566] xhci_hcd 0000:09:00.0: new USB bus registered, assigned bus number 1

[    0.549980] xhci_hcd 0000:09:00.0: irq 26 for MSI/MSI-X

[    0.549985] xhci_hcd 0000:09:00.0: irq 27 for MSI/MSI-X

[    0.549989] xhci_hcd 0000:09:00.0: irq 28 for MSI/MSI-X

[    0.549995] xhci_hcd 0000:09:00.0: irq 29 for MSI/MSI-X

[    0.549999] xhci_hcd 0000:09:00.0: irq 30 for MSI/MSI-X

[    0.550725] xhci_hcd 0000:09:00.0: xHCI Host Controller

[    0.550731] xhci_hcd 0000:09:00.0: new USB bus registered, assigned bus number 2

gentoo-folio13 linux # lsusb

Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 003 Device 004: ID 8086:0189 Intel Corp. 

Bus 003 Device 003: ID 1bcf:2c07 Sunplus Innovation Technology Inc. 

Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

gentoo-folio13 linux # lspci -k | grep -i usb

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)

09:00.0 USB controller: Fresco Logic FL1009 USB 3.0 Host Controller (rev 02)

gentoo-folio13 linux # lspci -k | grep -a2 -i usb

00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)

        Subsystem: Hewlett-Packard Company Device 1899

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)

        Subsystem: Hewlett-Packard Company Device 1899

        Kernel driver in use: ehci-pci

--

00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)

        Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)

        Subsystem: Hewlett-Packard Company Device 1899

        Kernel driver in use: ehci-pci

--

        Kernel driver in use: rtsx_pci

        Kernel modules: rtsx_pci

09:00.0 USB controller: Fresco Logic FL1009 USB 3.0 Host Controller (rev 02)

        Subsystem: Hewlett-Packard Company Device 1899

        Kernel driver in use: xhci_hcd

gentoo-folio13 linux # 

gentoo-folio13 linux # uname -r

3.18.7-gentoo

gentoo-folio13 linux # 

```

----------

## carbinefreak

Bump, nobody has seen this before?

----------

## penetrode

Did you ever get this sorted out?

I just installed a Renesas-based 3.0 ExpressCard:

```
# lspci -v

...

05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02) (prog-if 30 [XHCI])

        Flags: fast devsel, IRQ 19

        Memory at f4300000 (64-bit, non-prefetchable) [disabled] [size=8K]

        Capabilities: [50] Power Management version 3

        Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+

        Capabilities: [90] MSI-X: Enable- Count=8 Masked-

        Capabilities: [a0] Express Endpoint, MSI 00

        Capabilities: [100] Advanced Error Reporting

        Capabilities: [150] Latency Tolerance Reporting

        Kernel driver in use: xhci_hcd

...

```

To activate this, I enabled these kernel options:

```
Renesas USBHS controller (USB_RENESAS_USBHS)

CONFIG_USB_RENESAS_USBHS:

Renesas USBHS is a discrete USB host and peripheral controller chip

that supports both full and high speed USB 2.0 data transfers.

It has nine or more configurable endpoints, and endpoint zero.

Say "y" to link the driver statically, or "m" to build a

dynamically linked module called "renesas_usbhs"

Symbol: USB_RENESAS_USBHS [=y]

Type : tristate

Prompt: Renesas USBHS controller

Location:

-> Device Drivers

-> USB support (USB_SUPPORT [=y])

-> Support for Host-side USB (USB [=y])

Defined at drivers/usb/renesas_usbhs/Kconfig:5

Depends on: USB_SUPPORT [=y] && USB [=y] && USB_GADGET [=y] && (ARCH_SHMOBILE || SUPERH || COMPILE_TEST [=y])

Renesas USBHS HCD support (USB_RENESAS_USBHS_HCD)

CONFIG_USB_RENESAS_USBHS_HCD:

The Renesas USBHS is a USB 2.0 host and peripheral controller.

Enable this option if your board has this chip, and you want

to use it as a host controller. If unsure, say N.

To compile this driver as a module, choose M here: the

module will be called renesas-usbhs.

Symbol: USB_RENESAS_USBHS_HCD [=y]

Type : tristate

Prompt: Renesas USBHS HCD support

Location:

-> Device Drivers

-> USB support (USB_SUPPORT [=y])

-> Support for Host-side USB (USB [=y])

Defined at drivers/usb/host/Kconfig:709

Depends on: USB_SUPPORT [=y] && USB [=y] && USB_RENESAS_USBHS [=y]

Renesas USBHS controller (USB_RENESAS_USBHS_UDC)

CONFIG_USB_RENESAS_USBHS_UDC:

Renesas USBHS is a discrete USB host and peripheral controller chip

that supports both full and high speed USB 2.0 data transfers.

It has nine or more configurable endpoints, and endpoint zero.

Say "y" to link the driver statically, or "m" to build a

dynamically linked module called "renesas_usbhs" and force all

gadget drivers to also be dynamically linked.

Symbol: USB_RENESAS_USBHS_UDC [=y]

Type : tristate

Prompt: Renesas USBHS controller

Location:

-> Device Drivers

-> USB support (USB_SUPPORT [=y])

-> USB Gadget Support (USB_GADGET [=y])

-> USB Peripheral Controller

Defined at drivers/usb/gadget/udc/Kconfig:164

Depends on: USB_SUPPORT [=y] && USB_GADGET [=y] && USB_RENESAS_USBHS [=y] && HAS_DMA [=y]

```

Plus the XHCI driver, of course. These are all statically compiled into the kernel.

I have a couple of observations:

When I attach a USB 3.0 external hard disk, it detects it as a USB mass storage device, but doesn't assign a SCSI device to it.

Hotplugging the ExpressCard does not really work. After reinsertion the card is detected but the kernel no longer shows a response when a device is attached. I can see the ExpressCard in lspci output and the hard disk in lsusb output, but there is no activity in the syslog.

Any ideas?

----------

