Hi,
On the i.MX8 mini, the default kernel is setup so that all usb duties are handled by the A53 in Linux.
I'm after something more predictable that doesn't involve userspace in linux to read raw data from a certain device type / interface descriptor and it's endpoints(s).
I'm aware that we can choose to move the peripheral to the M4 but since USB host & device support is quite limited in drivers / FreeRTOS, I'm thinking about another way where I'd like some input.
Leave the enumeration to be managed by Linux, but allow certain endpoints to be handed over to the M4, just like a raw data-pipe.
This could of course be done by patching the kernel, sharing memory between the two, but I'd like some advice how to do it in a more direct way, i.e. by partitioning the hardware itself.
Anyone on here with knowledge howto?
Hi dav1
I am afraid such kind of partitioning is not possible, in general one can consider
shared memory and approaches described in sect.2.8 Remote Processor Messaging
Best regards
igor
Did you mean by assigning the whole usb phy to the M4?
as letting linux pass the data via rpmsg will add way too much overhead
Is there a list somewhere on what device drivers are supported for USB host vs. device for the M4 in the i.mx8 mini?
Back to my original idea. You said "is not possible", do you mean impossible or just not supported out-of-the-box? I'm pretty sure it's doable, just look at how the jailhouse hypervisor works that partitions resources to bypass the linux kernel. In this case, it would be a more lightweight operation of partitioning the endpoint buffer instead. Could be via sharedmem or worst case a kernel patch to setup a dma copy between the A53 and the M4 run-times
>Did you mean by assigning the whole usb phy to the M4?
>as letting linux pass the data via rpmsg will add way too much overhead
yes
Is there a list somewhere on what device drivers are supported for USB host vs. device
>for the M4 in the >i.mx8 mini?
please look at Linux Manual for supported functionalities
>Back to my original idea. You said "is not possible", do you mean impossible or just not supported out-of-the-box?
this is not supported out-of-the-box and sorry I am not aware of such implementations for i.MX .
In general for such kind of request may be recommended to try extended support with
https://contact.nxp.com/new-prof-svcs-sw-tech
Best regards
igor
hi!
regarding running it on the m4 directly. can you please advice what device classes are supported on the imx8mm m4, and where we can find the drivers.
Hi dav1
in general for supported m4 functionalities one can look at SDK_EVK-MIMX8MM
https://mcuxpresso.nxp.com/en/welcome
unfortunately currently usb is not supported for m4, sorry.
Best regards
igor