I am trying to write a driver to send data to the PL using the AXI DMA Engine on Linux. I have gone through probably a couple hundred websites and there is always conflicting information on those.
The xilinx_axidma.c driver on Xilinx's linux git repo is supposed to be an API. However, the axidmatest.c which is supposed to test the dma engine always fails with
dmatest: Did not find tx device
dmatest: Did not find rx device
These are Xilinx's own files. We haven't touched them. If those fail, how are we supposed to start working? Xilinx forums are either completely useless or completely clueless. Either ways, it is a very big disappointment.
Our primary question is should we be making a platform device or using the APIs that Xilinx's drivers provide us with? There is a pl330 test driver on Xilinx's wiki but that creates a platform device and from what I understand, a platform device is its own standalone thing. It doesn't use the APIs in the pl330.c file. If so, then what is the point of writing pl330.c?
Secondly, has anyone solved the channel not found errors? Or is there some config option we are getting wrong? We set the TX async channel in the config.