[U-Boot] [PATCH 3/4 V2] USB: Drop cache flush bloat in EHCI-HCD

Marek Vasut marex at denx.de
Thu May 24 15:21:30 CEST 2012


Dear Anatolij Gustschin,

> Hi Marek,
> 
> On Mon,  9 Apr 2012 06:47:31 +0200
> 
> Marek Vasut <marex at denx.de> wrote:
> > Discard the creepy cache flushing mechanisms in ehci-hcd.c and replace
> > them with more straightforward flushing. In the new approach, the
> > flushing takes place directly in ehci_submit_async() call instead of
> > going through the QH list and flushing all members and buffers. This
> > discards a lot of weird bit operations on the members of QH and qTD
> > structures.
> > 
> > NOTE: Certainly, this flushes even qTDs which are possibly unused in some
> > transactions, though the overhead of the previous code was much higher
> > than is the overhead of flushing two more cache lines (which most
> > probably aren't even cached).
> > 
> > Signed-off-by: Marek Vasut <marex at denx.de>
> > Cc: Puneet Saxena <puneets at nvidia.com>
> > ---
> > 
> >  drivers/usb/host/ehci-hcd.c |  127
> >  +++++++++---------------------------------- 1 files changed, 27
> >  insertions(+), 100 deletions(-)
> 
> Unfortunately this patch breaks compiling for many powerpc boards, mpc512x,
> mpc83xx, mpc85xx and QorIQ Px based with USB support enabled.

Because they have broken cache implementation, right? I mean, they have their 
own snooping methods, so they don't need the cache flushing at all, but then, if 
they don't, these methods (dcache_flush() etc) should be optimized to empty 
functions. Maybe we should implement them for these CPUs then? btw. I thought 
these compiled before, hm...

> Thanks,
> Anatolij

Best regards,
Marek Vasut


More information about the U-Boot mailing list