i.MX8 Mini - Segment USB endpoints from A53 to M4 for raw access

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8 Mini - Segment USB endpoints from A53 to M4 for raw access

640 Views
dav1
Contributor V

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?

Labels (1)
0 Kudos
5 Replies

616 Views
igorpadykov
NXP Employee
NXP Employee

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

i.MX Linux Reference Manual​

 

Best regards
igor

0 Kudos

613 Views
dav1
Contributor V

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

0 Kudos

605 Views
igorpadykov
NXP Employee
NXP Employee

>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

i.MX Linux Reference Manual​

 

>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

0 Kudos

598 Views
dav1
Contributor V

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.

0 Kudos

591 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos