[U-Boot] [PATCH] smsc95xx: align buffers to cache line size
Marek Vasut
marek.vasut at gmail.com
Tue Jul 10 04:17:14 CEST 2012
Dear Ilya Yanok,
> Dear Marek,
>
> On Mon, Jul 9, 2012 at 4:45 AM, Marek Vasut <marek.vasut at gmail.com> wrote:
> > > But in practice it works without any alignment... ok, you made me read
> >
> > the
> >
> > > spec ;)
> > > page 55: "For the page 0 current offset interpretation, this field is
> > > the byte offset into the current page"
> >
> > See the thread
> > "[U-Boot] [PATCH] usb_storage: fix ehci driver max transfer size"
>
> Interesting... but that's a different issue...
>
> > So, if we compute the size over there correctly (I hope Stefan will send
> > an updated patch soon), we'll still need it to be aligned to
> > ARCH_DMA_MINALIGN so
> > we can flush it. Bah, this is getting quite crazy, the deeper we go, the
> > more
> > bugs we meet!
>
> Well, of course we need proper alignment for cache stuff (well, actually we
> can skip this alignment thing for the buffer we will flush as long as all
> buffers we are going to invalidate are properly aligned/sized... but that's
> too tricky, personally I'd prefer every DMAed buffer to be cache-line
> aligned/sized).
>
> And this patch actually adds the alignment for the smsc95xx driver's
> buffers. In your initial reply you said it will be broken on systems with
> ARCH_DMA_MINALIGN < 32, so I'm asking what makes you think so?
ALLOC_CACHE_ALIGN_BUFFER(u32, tmpbuf, 1); this stuff maybe? It'll be aligned to
16 bytes for arch with 16 byte cachelines.
> > So, what I'd like to do is to see a patch from Stefan, it was really a
> > good finding! Next up, we should finish this patchset for proper EHCI QH
> > and qTD alignment. And finally, we need generic bounce buffer to use as
> > a protection
> > against crazy people who might want to load stuff to unaligned address.
>
> Good plan.
>
> Regards, Ilya.
Best regards,
Marek Vasut
More information about the U-Boot
mailing list