usb/120017: CS5536 (AMD Geode) USB 2.0 quirk
Hans Petter Selasky
hselasky at c2i.net
Sat Jan 26 12:19:36 PST 2008
On Saturday 26 January 2008, Ivan Voras wrote:
> >Number: 120017
> >Category: usb
> >Synopsis: CS5536 (AMD Geode) USB 2.0 quirk
> >Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: freebsd-usb
> >State: open
> >Quarter:
> >Keywords:
> >Date-Required:
> >Class: sw-bug
> >Submitter-Id: current-users
> >Arrival-Date: Sat Jan 26 20:10:02 UTC 2008
> >Closed-Date:
> >Last-Modified:
> >Originator: Ivan Voras
> >Release: 7-STABLE
> >Organization:
> >Environment:
>
> FreeBSD ursaminor.cosmos 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #3: Fri Jan
> 25 00:20:32 CET 2008
> ivoras at ursaminor.cosmos:/usr/obj/usr/src/sys/URSAMINOR i386
>
> >Description:
>
> A quirk has to be made so USB 2.0 (EHCI) works on CS5536 (embedded AMD
> Geode companion chip) controller.
>
> >How-To-Repeat:
>
> Boot FreeBSD 7 or 8 on a suitable machine (e.g. fit-pc), observe the
> message "ehci0: pre-2.0 USB rev".
>
> >Fix:
>
> Patch supplied.
>
> Patch attached with submission follows:
>
> --- patch.txt begins here ---
> --- usb_/ehci_pci.c 2008-01-26 18:42:11.000000000 +0100
> +++ usb/ehci_pci.c 2008-01-26 18:50:20.000000000 +0100
> @@ -99,6 +99,8 @@
> /* AMD */
> #define PCI_EHCI_DEVICEID_8111 0x10227463
> static const char *ehci_device_8111 = "AMD 8111 USB 2.0 controller";
> +#define PCI_EHCI_DEVICEID_CS5536 0x20951022
> +static const char *ehci_device_cs5536 = "AMD CS5536 (Geode) USB 2.0
> controller";
>
> /* ATI */
> #define PCI_EHCI_DEVICEID_SB200 0x43451002
> @@ -214,6 +216,8 @@
> return (ehci_device_m5239);
> case PCI_EHCI_DEVICEID_8111:
> return (ehci_device_8111);
> + case PCI_EHCI_DEVICEID_CS5536:
> + return (ehci_device_cs5536);
> case PCI_EHCI_DEVICEID_SB200:
> return (ehci_device_sb200);
> case PCI_EHCI_DEVICEID_SB400:
> @@ -293,6 +297,10 @@
> case PCI_USBREV_1_1:
> sc->sc_bus.usbrev = USBREV_UNKNOWN;
> device_printf(self, "pre-2.0 USB rev\n");
> + if (pci_get_devid(self) == PCI_EHCI_DEVICEID_CS5536) {
> + device_printf(self, "Quirk for CS5536 USB 2.0 enabled\n");
> + break;
> + }
> return ENXIO;
> case PCI_USBREV_2_0:
> sc->sc_bus.usbrev = USBREV_2_0;
>
> --- patch.txt ends here ---
>
Hi,
Do you know if the EHCI chip used is compliant to USBREV_2_0 ?
--HPS
More information about the freebsd-usb
mailing list