PERFORCE change 154573 for review

Sam Leffler sam at freebsd.org
Sat Dec 13 12:14:36 PST 2008


Hans Petter Selasky wrote:
> On Saturday 13 December 2008, Sam Leffler wrote:
>   
>> http://perforce.freebsd.org/chv.cgi?CH=154573
>>
>> Change 154573 by sam at sam_ebb on 2008/12/12 23:25:40
>>
>> 	Checkpoint cambria/ixp435 ehci support: add EHCI_SCFLG_BIGEDESC
>> 	flag to force descriptor contents to be left in big-endian byte
>> 	order intead of little-endian; this is required by the ixp435
>> 	builtin controllers.
>>     
>
> I would prefer if you could implement this using ifdefs.
>
> ehcireg.h:
>
> #ifdef HOST_ENDIAN_BUILD
> #undef htole32
> #define htole32 htobe32
> ...
> #define EXTERNAL(name) name##_be
> #else
> #define EXTERNAL(name) name##_le
> #endif
>   

I intend to add a global #define to control inclusion of this feature 
before I push it to the tree.

> ehci_wrap.c: (new file)
>
> void
> ehci_init(ehci_sc_t *sc)
> {
> 	if (force use bigendian)
> 		ehci_init_be(sc);
> 	else
> 		ehci_init_le(sc);
> 	return;
> }
>
> And the same for all other globally exported functions from ehci.c which are 
> not so many!
>
> ehci.c:
>
> void
> EXTERNAL(ehci_init)(ehci_sc_t *sc)
> {
> 	... same like before ...
> }
>
> ehci_be.c:
> #define HOST_ENDIAN_BUILD
> #include <sys/dev/usb/ehci.c>
>   

Er, that's about as bad a coding practice as computed goto's.  I haven't 
decided whether to make the initial ehci controller attach logic generic 
or leave it buried in the bus space ops as currently done.

>   
>> 	Operations now go through the controller 
>> 	and are returned but always w/ an error; still working on why.
>>
>>     
>
> Maybe a cache sync issue.
>
>   
No.  But if you are interested in helping debug the problem I'm happy to 
send you debug output.  The controller rejects all cmds setting the 
ERRINT status bit.  The qTD contents and xfer contents look fine but I 
haven't been able to identify the cause given the overlay qTD contents.  
I'm in the process of collecting comparative traces from linux where usb 
works.

    Sam



More information about the p4-projects mailing list