PERFORCE change 154573 for review

Hans Petter Selasky hselasky at c2i.net
Sat Dec 13 01:03:21 PST 2008


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

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>

> 	Operations now go through the controller 
> 	and are returned but always w/ an error; still working on why.
>

Maybe a cache sync issue.

--HPS


More information about the p4-projects mailing list