On Fri, Jan 04, 2019 at 09:24:14AM +0000, Ye Li wrote:

> When running usb dwc3 gadget driver, we meet random USB enumeration failure 
> in fastboot.
> The root cause is a cache coherence issue. When it happens, the ctrl_req in
> gadget driver is allocated at 0xfe932f40, and the usb_composite_dev (cdev)
> is allocated at 0xfe932f60. So after we submit the setup request (cache 
> flushed) to USB
> controller, any accessing to usb_composite_dev variable will cause the cache 
> line refill, then
> when setup transfer is completed, reading the setup data in ctrl_req will 
> gets old value from
> cache not from memory.
> 
> The ctrl_req is allocated by API dma_alloc_coherent, but u-boot don't have 
> cohernet memory.
> so it still needs cache maintain operations before/after HW accessing. Since 
> the cache flush or
> invalidate bases on cache line, so when the allocated memory size is not 
> cache line aligned,
> potentially it may meet such issue.
> 
> This patch modifies the dma_alloc_coherent API to round the size to cache 
> line aligned.
> 
> Signed-off-by: Ye Li <ye...@nxp.com>
> Reviewed-by: Peng Fan <peng....@nxp.com>

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to