-
Notifications
You must be signed in to change notification settings - Fork 232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cant find driver at /dev/axidma after insmod #19
Comments
That message about the nonblocking pool is a standard boot message; that just deals with the pool used to generate pseudorandom numbers. If you don't specify If you're looking for warnings/errors related to the driver, you should look for messages with "axidma" in them. I'm going to need more information to address this issue. Can you attach the full output from the |
sure, this is my dmesg log [ 0.000000] Booting Linux on physical CPU 0x0 |
this is my memory distribution memory{ i distribute 256MB memory to PS, 256 MB memory to PL |
Can you show the |
i got nothing changed in dmesg command after i run the insmod axidma.ko = = , lsmod got the following output but i cat the /dev/devices not found the axidma device |
Can you show me your device tree? I suspect that you're missing the device tree node for the driver. |
sorry to reply u late, i find some problems in my project and fixing it , this is my pl devicetree / { |
Yep, that's the problem. So, you also need a device tree node for my driver that tells it which DMA channels it is allowed to use. See the README for the information on the format for that node. |
OK, thank u brandon , i'll look up the doc : ] |
hey brandon , i add the axi_dma and char_device node to device tree, but unfortunately i cant start the kernel ....my linux version is 4.6.0-xilinx which is the xilinx-v2016.4 branch of linux-xilinx |
my question is , i didnt add |
You shouldn't need to add the 'axi_dma' node, you already had that in the device tree before. You only needed to add the 'char_device' node. You don't have the DMA in your Vivado project? As in there's no AXI DMA instantiated in your block design? If you don't have an AXI DMA IP in your design, then the driver is useless, because it will only interact with an AXI DMA IP that is on the PL fabric. The kernel not starting usually means that you have the |
yes , currently i only use the |
Yeah, so the driver supports VDMA as well. You just need to create a device tree node for the character device that is like the one in the README. In your case, it would look like:
Once you have that, you should be able to insert the module correctly. To use the driver, I would start with the axidma_benchmark application. Run that, and make sure it works. Then, you can use that as a template to write your own application that uses the driver. |
i am not familiar with the device tree syntax , this is my /dts-v1/; &gem0 { &intc { &qspi { &sdhci0 { &sdhci1 { &uart1 { &usb0 { &clkc { axidma_chrdev: axidma_chrdev@0 { |
Yeah that looks fine, except I don't see your AXI VDMA device tree nodes anywhere. Are they in a |
i find it was incorrect when use dtc to compile it.... |
/*
/ |
/*
/dts-v1/; |
/*
/ {
}; |
this is my three dts file ,where should i put your char_node = = ,thank u = = |
The char node can go anywhere in the device tree. Typically it's placed at the top-level where the Are you getting a compilation error when running the device tree compiler? I'm going to need more information to debug that. |
i put the char node under the root node and parallel to the chosen node , it compiles successfully ! |
now the linux system start up successfully~ [ 26.684890] Unable to handle kernel NULL pointer dereference at virtual address 00000000 i didnt enable the read channel in |
also you can provide us an example to let us run the test : ] |
If you didn't enable the read channel, then you shouldn't have a device tree entry for it. For the examples, you can see |
thank u brandon ,finally i run the
and the /dev/ shows a axidma but when i run the axidma_benchmark, the output shows i was confused, the linux_xilinx kernerl is 4.6.0-xilinx |
i also tried VDMA, but still
|
OK, i comiple it on the zynq device instead of CROSS_COMPILE on the pc ,it will run! |
You have to copy the Did VDMA also work for you? |
not yet, i meet the DMA receive transaction timed out issue which yaobaishen asked, if i want to use the your axidma_display_image app, which image format should i put into the path ? |
So just to clarify, the DMA works, but the VDMA does not? I haven't been able to get VDMA working either. For the display app, the image should be in some 32-bit format. I used it with an RGBA image, but the code doesn't rely on that fact other than the 32-bit size. Also, be careful with that example, as I haven't updated it in a while, so I'm not sure how reliable it is. |
Hello, guy, I'm running DMA in linux on zedboard,now i run the axidma:loading out-of-tree module taints kernel. but when i run AXI DMA Benchmark Parameters: i am looking forward to your answer! |
That's odd, it looks like the module is being loaded correctly. You're not removing the module or restarting the processor between those lines, correct? Can you send the full output of |
Hello, guy, first I'm not removing the module or restarting the processor between those lines. zynq> dmesg Thank you so much, i am looking forward to your reply! |
hey brandon, i didnt add your cma args into my bootargs, then i run the insmod and look up the dmesg, it shows that
[ 113.487763] random: nonblocking pool is initialized, i think if it was the bootargs problem ?
this is my boot args
console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
The text was updated successfully, but these errors were encountered: