Hi,
I am considering to base an audio-oriented project on CM3, due to its support for multiple I2S interfaces, compared to RPi CM4.
But the product requires support for USB gadgets in the recent kernels (5.19+). That code has the general part (all the USB gadget functions) and the HW-specific part - DWC3 in this case. I assume the DWC3 code in radxa 5.10 kernel (heavily patched 4.4 android kernel, IIUC) is OK to run on CM3. But there is no code for the general part as that has not been merged to the radxa kernel yet.
Also, when hitting problems (unavoidably, there will always be some), I discuss details with the gadget and DWC3 specialists on usb-linux mailing list, perform tests and submit the resultant patches to the upstream kernel, logically.
Radxa CM3 is not supported by armbian which seems to keep reasonably close the upstream, with a limited number of patches only (their patches on top of reasonable amount of patches in https://github.com/ayufan-rock64/linux-mainline-kernel/ , IIUC) .
Radxa Rock3A is supported in Armbian, with kernel 6.1. IMO the patch difference between Rock3A patches in https://github.com/armbian/build/tree/master/patch/kernel/archive/rockchip64-6.1 and patches for CM3 should be minimal. IMO mostly “just” DTS changes. That makes a very reasonable number of patches against the upstream. Unlike the radxa kernel which does not derive from the upstream kernel at all (“Branch linux-5.10-gen-rkr3.4 is 457612 commits ahead, 6732 commits behind rockchip-linux:develop-4.4.”) - impossible to discuss anything with the upstream developers.
Has anyone done such project, is this path recommendable? IMO keeping just patches for CM3 against the latest armbian build tree should be viable.
Thanks a lot for any suggestions.
Best regards,
Pavel.