Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jan 2008 21:20:23 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-usb@freebsd.org
Cc:        freebsd-gnats-submit@freebsd.org, Ivan Voras <ivoras@freebsd.org>
Subject:   Re: usb/120017: CS5536 (AMD Geode) USB 2.0 quirk
Message-ID:  <200801262120.25261.hselasky@c2i.net>
In-Reply-To: <200801262003.m0QK3EtF012574@www.freebsd.org>
References:  <200801262003.m0QK3EtF012574@www.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801262120.25261.hselasky>