Re: [PATCH v2] dmaengine: imx-sdma: fix init of uart scripts
From: Vinod Koul
Date: Mon Apr 11 2022 - 06:48:31 EST
On 10-04-22, 18:31, Kevin Groeneveld wrote:
> Commit b98ce2f4e32b ("dmaengine: imx-sdma: add uart rom script") broke
> uart rx on imx5 when using sdma firmware from older Freescale 2.6.35
> kernel. In this case reading addr->uartXX_2_mcu_addr was going out of
> bounds of the firmware memory and corrupting the uart script addresses.
>
> Simply adding a bounds check before accessing addr->uartXX_2_mcu_addr
> does not work as the uartXX_2_mcu_addr members are now beyond the size
> of the older firmware and the uart addresses would never be populated
> in that case. There are other ways to fix this but overall the logic
> seems clearer to me to revert the uartXX_2_mcu_ram_addr structure
> entries back to uartXX_2_mcu_addr, change the newer entries to
> uartXX_2_mcu_rom_addr and update the logic accordingly.
>
> I have tested this patch on:
> 1. An i.MX53 system with sdma firmware from Freescale 2.6.35 kernel.
> Without this patch uart rx is broken in this scenario, with the
> patch uart rx is restored.
> 2. An i.MX6D system with no external sdma firmware. uart is okay with
> or without this patch.
> 3. An i.MX8MM system using current sdma-imx7d.bin firmware from
> linux-firmware. uart is okay with or without this patch and I
> confirmed the rom version of the uart script is being used which was
> the intention and reason for commit b98ce2f4e32b ("dmaengine:
> imx-sdma: add uart rom script") in the first place.
Applied, thanks
--
~Vinod