You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Linux context of the AMP build has a driver for the 4 channels of PDMA and a corresponding entry in the DTS, so is the PDMA being used exclusively by the Linux context?
Is it possible for the FreeRTOS context to use the PDMA?
There is a driver mss_pdma.c in the platform drivers of the FreeRTOS demo that is for 'bare metal' implementations, is this only for SMP non-Linux builds?
In general terms, what we have currently is the FPGA generates double-buffered data and corresponding IRQ's, this data is copied by the FreeRTOS code to a large memory area that's shared with the Linux context, then Linux is notified using the RPMsg protocol.
Again, without going into details, it's quite a lot of data being generated per second and we want to optimise the processing path so if there's a way for the FreeRTOS context to use some (all?) of the PDMA channels it would help.
We are also considering other options, such as implementing a DMA in the FPGA for the FreeRTOS context to use or getting the FPGA to write directly into the shared memory area, but if you can either point me at the docs for the PDMA or give some pointers, it would be appreciated.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The Linux context of the AMP build has a driver for the 4 channels of PDMA and a corresponding entry in the DTS, so is the PDMA being used exclusively by the Linux context?
Is it possible for the FreeRTOS context to use the PDMA?
There is a driver mss_pdma.c in the platform drivers of the FreeRTOS demo that is for 'bare metal' implementations, is this only for SMP non-Linux builds?
In general terms, what we have currently is the FPGA generates double-buffered data and corresponding IRQ's, this data is copied by the FreeRTOS code to a large memory area that's shared with the Linux context, then Linux is notified using the RPMsg protocol.
Again, without going into details, it's quite a lot of data being generated per second and we want to optimise the processing path so if there's a way for the FreeRTOS context to use some (all?) of the PDMA channels it would help.
We are also considering other options, such as implementing a DMA in the FPGA for the FreeRTOS context to use or getting the FPGA to write directly into the shared memory area, but if you can either point me at the docs for the PDMA or give some pointers, it would be appreciated.
Kind regards,
Martin.
Beta Was this translation helpful? Give feedback.
All reactions