Hi David,
David Brownell wrote:
> I cleaned it up a bunch ... can you verify this still works on your hardware?
> Sanity tested on x86_64.
>
I've made the similar work to support big endian dma descriptors in EHCI
since I have the board based on IXP4XX processor configured in BE mode
and on-chip EHCI HCD that has BE descriptors. My patch is mostly close
to this one except changes related to ehci cpufreq patch and
constant_cpu_to_le32 conversations.
I confirm that these patch works fine with my BE h/w (IXP4XX) and also
I've tested it with LE h/w (mips based board with LE on-SoC usb) in
2.6.21-rc4.
But I would like to post a minor comments:
> The guts of the patch are to introduce the hc32 type and change all
> references from le32 to hc32. All access routines are converted from
> cpu_to_le32(...) to cpu_to_hc32(ehci, ...) and similar for the other
> "direction". (This is the same approach used with OHCI.)
>
To be more close to OHCI approach we should add some additional Kconfig
rules to
avoid run-time endianness checking for pure BE case (when MMIO and DESC
have the same endianness).
I agree, now this is OK for pure LE and mixed (USB controller MMIO and
DESC with differend endianness -
the related h/w is PPC PS3) cases.
This is safe for pure LE case via CONFIG_USB_EHCI_BIG_ENDIAN_{DESC,MMIO}
options but is not for
pure BE case (the related h/w are AMCC PPC440EPx SoC and Intel IXP4XX
processor).
> +#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_DESC
> +typedef __u32 __bitwise __hc32;
> +typedef __u16 __bitwise __hc16;
> +#else
> +#define __hc32 __le32
> +#define __hc16 __le16
> +#endif
>
__hc16 is useless for EHCI. This just provide a mess.
> +/*
> + * The AMCC 440EPx not only implements its EHCI registers in big-endian
> + * format, but also its DMA data structures (descriptors).
> + *
> + * EHCI controllers accessed through PCI work normally (little-endian
> + * everywhere), so we won't bother supporting a BE-only mode for now.
> + */
>
Why not for now? :)
There are already 2 platforms that support BE-only mode.
It's simple to render the OHCI logic for EHCI. Also this will keep the
identity. If you want I can prepare a patch over this one for your review.
Best regards,
Vladimir
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel