Hi ko-hey
A1: The driver provides an API for other drivers to control SDMA channels. SDMA channels run dedicated scripts according to peripheral and transfer types. The SDMA API driver is responsible for loading the scripts into SDMA memory, initializing the channel descriptors, and controlling the buffer descriptors and SDMA registers. the source files available in the directory / <Yocto_BuildDir>/linux/drivers/dma
dmaengine.c - SDMA management routine
imx-sdma.c - SDMA implement driver
the image files available in the directory / <Yocto_BuildDir>/linux/firmware/imx/sdma
sdma-mx7d.bin.ihex - SDMA RAM scripts
A2: Correct!
A3: Unfortunately GPL can not be avoided, all sdma script from NXP has GPL on it. there is no any SDMA or API library without GPL license
Regards