usb/79722: wrong alignments in ehci.h

Hans Petter Selasky hselasky at c2i.net
Sat Apr 9 11:50:11 PDT 2005


>Number:         79722
>Category:       usb
>Synopsis:       wrong alignments in ehci.h
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Apr 09 18:50:10 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     HPS
>Release:        FreeBSD 6.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD 6.0-CURRENT FreeBSD 6.0-CURRENT #45: Mon Mar 21 15:40:17 CET 
2005 root@:/usr/obj/usr/src/sys/custom i386

>Description:
>How-To-Repeat:

The EHCI driver currently uses 32-byte alignment for all QH's and TD's. 
This is what the manual says, but the hardware will malfunction if
the structures are not aligned so that it can index without 
performing addition. For example ITD must be aligned to 128-bytes (including 
64-bit extensions) and not 32-bytes.

#define EHCI_ITD_ALIGN 128 /* bytes */
#define EHCI_SITD_ALIGN 64 /* bytes */
#define EHCI_QTD_ALIGN 64 /* bytes */
#define EHCI_QH_ALIGN 128 /* bytes */
#define EHCI_FSTN_ALIGN 32 /* bytes */

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-usb mailing list