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