[PATCH v2] dmaengine: imx-sdma: fix init of uart scripts

Vinod Koul vkoul at kernel.org
Mon Apr 11 03:48:16 PDT 2022


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



More information about the linux-arm-kernel mailing list