Unless I am mistaken, page https://community.nxp.com/docs/DOC-343277 tells us i.MX 6UltraLite EVK is supported by L4.14.98_2.0.0_ga_images_MX6UL7D.zip and downloading https://www.nxp.com/webapp/Download?colCode=L4.14.98_2.0.0_MX6UL7D
leads to file L4.14.98_2.0.0_ga_images_MX6UL7D.zip which contains fsl-image-validation-imx-imx6ul7d.tar.bz2 which contains ./lib/firmware/imx/sdma/sdma-imx6q.bin
That sdma-imx6q.bin begins with:
0000000 4453 414d 0003 0000 0004 0000 001c 0000
which means the magic "SDMA" and version 3.4
Where can I find sdma-imx6q.bin.ihex for such version, i.e. imx6ul "validated" for L4.14.98?
The problem is that sdma-imx6q.bin\sdma\imx - kernel/git/firmware/linux-firmware.git - Repository of firmware blobs for ... begins with the hexadecimal: 53 44 4d 41 03 00 00 00 05 00 00 00
so it is clearly version 3.5 - while the version 3.4 has been used in image-validation-imx-imx6ul , so officially validated.
Considering the big amount of differences in between https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/drivers/dma/imx-sdma.c and the file imx-sdma.c provided by NXP in imx_4.14.98_2.0.0_ga (at https://coral.googlesource.com/linux-imx/+/refs/heads/imx_4.14.98_2.0.0_ga/drivers/dma/imx-sdma.c ) , it is difficult to know what is the best version (not knowing what has changed).
Considering that when booting the imx_4.14.98_2.0.0_ga kernel without loading sdma-imx6q.bin, it displays:
[ 3.243530] imx-sdma 20ec000.sdma: Falling back to user helper
[ 64.503169] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
and then a simple:
stty 115200 < /dev/ttymxc2
[ 211.006328] imx-sdma 20ec000.sdma: sdma firmware not ready!
[ 211.015445] imx-uart 21ec000.serial: Prepare for the RX slave dma failed!
[ 211.022343] ======================================================
[ 211.022359] WARNING: possible circular locking dependency detected
[ 211.022370] 4.14.98 #2 Not tainted
[ 211.022385] ------------------------------------------------------
It looks like sdma-imx6q.bin is needed on that NXP Linux version even for iMX61ul - if you at least want another serial port...
Loading sdma-imx6q.bin version 3.4 seem to at least solve that locking detection.
in contrast to what NXP officially supports, I have not interest in using ancient kernels. I simply see no value to develop a new product based on software which is several years old. Additionally I had to develop several own drivers for USB-C, PTP, sensors, ... Using an antique kernel would cost much more effort because many things are missing there.
Currently I use linux-5.4 on a i.MX6ULL which works fine even without a RAM firmware. The ROM firmware is fine for UART and mostly for SPI. The RAM firmware contains additional code for SPDIF, (Q)SPI and (E)SAI. In case of SPI code I query whether the fixes in the RAM routines introduce new bugs not present in the ROM code.