Hello all,
I am Tanu Hari Dixit, senior undergraduate from Indian Institute of Technology, Varanasi, India. I am a GSoC 2017 aspirant and am interested in the idea BeagleBone/Beagle board PRU DMA listed in the ideas page. I have a few questions and I’ll be grateful if the Devs answer them.
- I read through the chapter “EDMA” in the AM355x_technical_reference_manual so that I get the hang of the DMA controller. Is this the right starting point?
- I also found an example of edma configuration in am335x_pru_package/pru_sw/old_example/PRU_edmaConfig. This page here (http://processors.wiki.ti.com/index.php/PRU_Linux-based_Example_Code) explains that in this example the PRU0 configures and initializes the EDMA while PRU1 polls for the EDMA interrupt notifying the completion of the EDMA transfer and sets a flag in memory. Why is not the same PRU used to poll and set the controller configuration? Would I be doing a similar thing if I qualify for the project? If not, what would be the catch here?
- Would I be designing an API sort of thing so that the user can customize on the type of synchronized transfers, the triggers used to shoot transfer events, and how the completion happens (i.e. whether when transfer requests leave the channel controller boundary or when the current transfer is complete) and how the linking is to be done for the PaRAM set and other such decisions?
- I was trying to execute a sample application given at http://processors.wiki.ti.com/index.php/EDMA_sample_test_application . I have failed while executing this example. The compiler can’t find asm/hardware/edma.h
make -C /lib/modules/3.8.13-bone79/build/ M=/home/debian/kernel_pro/edma modules make[1]: Entering directory
/usr/src/linux-headers-3.8.13-bone79’
CC [M] /home/debian/kernel_pro/edma/edma_sample.o
/home/debian/kernel_pro/edma/edma_sample.c:37:25: fatal error: mach/memory.h: No such file or directory
compilation terminated.
make[2]: *** [/home/debian/kernel_pro/edma/edma_sample.o] Error 1
make[1]: *** [module/home/debian/kernel_pro/edma] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.13-bone79’
make: *** [all] Error 2
`
When I find /usr | grep edma.h
I get the following files:
`
root@beaglebone:/home/debian/kernel_pro/edma# find /usr | grep edma.h
/usr/src/linux-headers-3.8.13-bone79/include/config/ti/priv/edma.h
/usr/src/linux-headers-3.8.13-bone79/include/config/ti/edma.h
/usr/src/linux-headers-3.8.13-bone79/include/linux/platform_data/edma.h
/usr/src/linux-headers-3.8.13-bone79/include/linux/edma.h
`
Why aren’t these include files used? Can we use them?
-
I don’t know if I am looking at the right example. Are there any references that I should be aware of?
-
Are there any pre-requisites that I should get right other than the “Hello World” application that prints name and the date out in an ARM Linux environment as mentioned in the “General Requirements” page section on the ideas page?
Kindly help me through this.
Thank you,
Tanu Hari Dixit,
Senior Undergraduate,
Department of Electronics Engineering,
Indian Institute of Technology (BHU),
Varanasi.