[U-Boot] [PATCH] usb: dwc2: Align size of invalidating dcache before starting DMA

Seung-Woo Kim sw0312.kim at samsung.com
Thu Aug 31 07:43:19 UTC 2017


Hello,

This patch was tested with Exynos4412 Odroid-U3 board for THOR usb gadget driver.

Best Regards,
- Seung-Woo Kim

> -----Original Message-----
> From: Seung-Woo Kim [mailto:sw0312.kim at samsung.com]
> Sent: Monday, July 31, 2017 6:08 PM
> To: u-boot at lists.denx.de; lukma at denx.de; marex at denx.de
> Cc: sw0312.kim at samsung.com; xzy.xu at rock-chips.com; jh80.chung at samsung.com
> Subject: [PATCH] usb: dwc2: Align size of invalidating dcache before starting DMA
> 
> During using dwc2 usb gadget, if usb message size is too small,
> following cache misaligned warning is shown:
> 
>    CACHE: Misaligned operation at range [bfdbcb00, bfdbcb04]
> 
> Align size of invalidating dcache before starting DMA to remove the
> warning.
> 
> Signed-off-by: Seung-Woo Kim <sw0312.kim at samsung.com>
> ---
>  drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
> index 0d6d2fb..b6164af 100644
> --- a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
> +++ b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c
> @@ -111,7 +111,8 @@ static int setdma_rx(struct dwc2_ep *ep, struct dwc2_request *req)
>  	ctrl =  readl(&reg->out_endp[ep_num].doepctl);
> 
>  	invalidate_dcache_range((unsigned long) ep->dma_buf,
> -				(unsigned long) ep->dma_buf + ep->len);
> +				(unsigned long) ep->dma_buf +
> +				ROUND(ep->len, CONFIG_SYS_CACHELINE_SIZE));
> 
>  	writel((unsigned int) ep->dma_buf, &reg->out_endp[ep_num].doepdma);
>  	writel(DOEPT_SIZ_PKT_CNT(pktcnt) | DOEPT_SIZ_XFER_SIZE(length),
> --
> 1.7.9.5




More information about the U-Boot mailing list