durellinux / zedboard_linux_dma_driver Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Hi Gianluca
I'm trying to use your driver on a zedboard, petalinux system.The kernel version is 4.6.0.When i run the applicatio,the error in the title comes up.
The driver is loaded successfully. I debug driver found problem here:
iowrite32(1, obj_dev->virt_bus_addr + MM2S_DMACR);
iowrite32(obj_dev->ds_axidma_handle, obj_dev->virt_bus_addr + MM2S_SA);
iowrite32(len, obj_dev->virt_bus_addr + MM2S_LENGTH);
Thanks for any help you can offer.
memcpy in read and write should be replaced by copy_from_user or copy_to_user
because the buf point to the userspace address which can not be direct accessed in kernel
Hi,
I'm trying to rebuild the bitstream with Vivado 2014.2 WebPack, but I get an error stating that there is some locked IP in the system. This appears to be the IntersectSphere block. What is that? Why do we need that? Can I replace it with a simple AXI4-Stream Data FIFO?
Maarten
I have tested your example today. It really works as a DMA driver, but I think there is an issue with your benchmarking results.
I think there needs a clearance to be made. While testing copy speed of ARM, you copy with a for loop, not with memcpy. If you use memcpy you will make it faster and reach to better copying bandwidth that you will not be able to beat with DMA because your ds_axidma_write()
and ds_axidma_read()
already performs same memcpy operation.
Am I thinking wrong?
When trying to compile the driver with the Linux kernel I get the following error:
drivers/dma/ds_axidma.c: In function 'ds_axidma_read':
drivers/dma/ds_axidma.c:166:41: error: 'struct file' has no member named 'f_inode'
drivers/dma/ds_axidma.c: In function 'ds_axidma_write':
drivers/dma/ds_axidma.c:186:41: error: 'struct file' has no member named 'f_inode'
In the xilinx.dts device tree file the entries are labeled 'axi_dma_1' to 'axi_dma_4' and named 'axi-dma1' to 'axi-dma4'. In the example dmaBench.c however you try to open '/dev/axi_dma_0' to '/dev/axi_dma_3'. When I compile this driver into the kernel I get the nodes '/dev/axi-dma1' to '/dev/axi-dma4' and not the ones that you try to open. The binary distribution in the SD folder however seems to work. Did you commit different sources from the ones used to build the binaries?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.