lkml.org 
[lkml]   [2020]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRE: [PATCH v11 12/12] dmaengine: imx-sdma: add uart rom script
Date
On 2020/08/10 15:33 Frieder Schrempf <frieder.schrempf@kontron.de> wrote:
> Hi Robin,
>
> This patch seems to break UART DMA in case the ROM firmware is used. In that
> case sdma->script_number is set to SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1, so
> the ROM scripts at uart_2_mcu_addr and uartsh_2_mcu_addr will never be
> added in sdma_add_scripts() as they are now moved beyond the V1 max index.
>
> Reverting this patch fixes UART DMA with ROM firmware.
> Can you please find a way to fix this or just drop this change?
>
Hi Frieder,
Thanks for your report, could you try with the additional below patch?
If that works, I'll merge it into next version.

diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 5900e32..4db55b9 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -1754,6 +1754,19 @@ static void sdma_add_scripts(struct sdma_engine *sdma,
for (i = 0; i < sdma->script_number; i++)
if (addr_arr[i] > 0)
saddr_arr[i] = addr_arr[i];
+
+ /*
+ * get uart_2_mcu_addr/uartsh_2_mcu_addr rom script specially because
+ * they are now replaced by uart_2_mcu_ram_addr/uartsh_2_mcu_ram_addr
+ * to be compatible with legacy freescal/nxp sdma firmware, and they
+ * are located in the bottom part of sdma_script_start_addrs which are
+ * beyond the SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1.
+ */
+ if (addr->uart_2_mcu_addr)
+ sdma->script_addrs->uart_2_mcu_addr = addr->uart_2_mcu_addr;
+ if (addr->uartsh_2_mcu_addr)
+ sdma->script_addrs->uartsh_2_mcu_addr = addr->uartsh_2_mcu_addr;
+
}


\
 
 \ /
  Last update: 2020-08-10 12:59    [W:0.157 / U:0.552 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site