Comments (8)
When I change DT Like this:
&amba_pl {
axidma_chrdev: axidma_chrdev@0 {
compatible = "xlnx,axidma-chrdev";
dmas = <&axi_dma_0 1>;
dma-names = "rx_channel";
};
};
&axi_dma_0 {
dma-channel@a0000030 {
xlnx,device-id = <0x1>;
};
};
The Driver collapse.Segment fault occur.
But I use this DT:
&amba_pl {
axidma_chrdev: axidma_chrdev@0 {
compatible = "xlnx,axidma-chrdev";
dmas = <&axi_dma_0 0>;
dma-names = "rx_channel";
};
};
&axi_dma_0 {
dma-channel@a0000030 {
xlnx,device-id = <0x1>;
};
};
The Problem is the same.
xilinx_axidma: loading out-of-tree module taints kernel.
axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave channel 0: rx_channel.
axidma: probe of amba_pl:axidma_chrdev@0 failed with error -38
Here is my pl.dtsi:
amba_pl: amba_pl@0 {
#address-cells = <2>;
#size-cells = <2>;
compatible = "simple-bus";
ranges ;
axi_dma_0: dma@a0000000 {
#dma-cells = <1>;
clock-names = "s_axi_lite_aclk", "m_axi_s2mm_aclk";
clocks = <&zynqmp_clk 71>, <&zynqmp_clk 71>;
compatible = "xlnx,axi-dma-7.1", "xlnx,axi-dma-1.00.a";
interrupt-names = "s2mm_introut";
interrupt-parent = <&gic>;
interrupts = <0 89 4>;
reg = <0x0 0xa0000000 0x0 0x10000>;
xlnx,addrwidth = <0x20>;
xlnx,sg-length-width = <0x17>;
dma-channel@a0000030 {
compatible = "xlnx,axi-dma-s2mm-channel";
dma-channels = <0x1>;
interrupts = <0 89 4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};
};
axi_gpio_dma_rstn: gpio@a0010000 {
#gpio-cells = <3>;
clock-names = "s_axi_aclk";
clocks = <&zynqmp_clk 71>;
compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
gpio-controller ;
reg = <0x0 0xa0010000 0x0 0x80>;
xlnx,all-inputs = <0x0>;
xlnx,all-inputs-2 = <0x0>;
xlnx,all-outputs = <0x1>;
xlnx,all-outputs-2 = <0x0>;
xlnx,dout-default = <0x00000000>;
xlnx,dout-default-2 = <0x00000000>;
xlnx,gpio-width = <0x1>;
xlnx,gpio2-width = <0x20>;
xlnx,interrupt-present = <0x0>;
xlnx,is-dual = <0x0>;
xlnx,tri-default = <0xFFFFFFFF>;
xlnx,tri-default-2 = <0xFFFFFFFF>;
};
axi_gpio_dma_start: gpio@a0020000 {
#gpio-cells = <3>;
clock-names = "s_axi_aclk";
clocks = <&zynqmp_clk 71>;
compatible = "xlnx,axi-gpio-2.0", "xlnx,xps-gpio-1.00.a";
gpio-controller ;
reg = <0x0 0xa0020000 0x0 0x80>;
xlnx,all-inputs = <0x0>;
xlnx,all-inputs-2 = <0x0>;
xlnx,all-outputs = <0x1>;
xlnx,all-outputs-2 = <0x0>;
xlnx,dout-default = <0x00000000>;
xlnx,dout-default-2 = <0x00000000>;
xlnx,gpio-width = <0x1>;
xlnx,gpio2-width = <0x20>;
xlnx,interrupt-present = <0x0>;
xlnx,is-dual = <0x0>;
xlnx,tri-default = <0xFFFFFFFF>;
xlnx,tri-default-2 = <0xFFFFFFFF>;
};
};
from xilinx_axidma.
Hi,
Did you ever get a solution to your problem above? I am running into the same issue under 2022.1.
Thanks!
from xilinx_axidma.
Hey @dahunt @jimenaCabrejas, due to this issue #24 (comment) have you tried to change the device id for the dma channel in the axidma_chrdev node, in system-user.dtsi to 1? i.e. dmas = <&axi_dma_0 1>;
from xilinx_axidma.
Hey @Timgrau,
Yup! that was exactly the problem. I also had to provide an device id. I'm still a newbie at this... but here is my working user dt entry for the Rx only streaming DMA project for your reference.
/include/ "system-conf.dtsi"
/ {
};
&amba_pl {
dma_proxy {
compatible = "xlnx,dma_proxy";
dmas = <&hier_DataGen_axi_dma_0 1>;
dma-names = "dma_proxy_rx";
dma-coherent;
};
hier_DataGen_axi_dma_0: dma@80020000 {
dma-channel@80020030 {
xlnx,device-id = <0x1>;
};
};
};
from xilinx_axidma.
Thank you @dahunt for the reference. Did you use the dma-proxy driver: https://github.com/Xilinx-Wiki-Projects/software-prototypes/tree/master/linux-user-space-dma?
You did not attached this devie-tree-nodes into your system-user.dtsi right? Where did you add them? Did you enabled the fpga-manager in your petalinux config file?
In your PetaLinux project:
cat project-spec/configs/config | grep FPGA
from xilinx_axidma.
Hey @Timgrau,
Yup! that was exactly the problem. I also had to provide an device id. I'm still a newbie at this... but here is my working user dt entry for the Rx only streaming DMA project for your reference.
/include/ "system-conf.dtsi" / { };
&amba_pl { dma_proxy { compatible = "xlnx,dma_proxy"; dmas = <&hier_DataGen_axi_dma_0 1>; dma-names = "dma_proxy_rx"; dma-coherent; };
hier_DataGen_axi_dma_0: dma@80020000 { dma-channel@80020030 { xlnx,device-id = <0x1>; }; };
};
Hey @dahunt ,I meet the same problem,Have you solve it ?
from xilinx_axidma.
Hey @dantepayne ,I meet the same problem,Have you solve it?
from xilinx_axidma.
Related Issues (20)
- concurrent access to DMA engines
- The speed of reading DMA buf's data is too slow HOT 2
- Driver asserting (or expecting in the case for Rx channel) Tlast twice ? Is this expected behavior and this is what it was intended ? HOT 1
- When to start oneway transfer in PS? HOT 1
- Can't build driver on petalinux 2020.2 HOT 2
- No tx_channel and rx_channel devices in /dev. Petalinux 2020.2 HOT 2
- problem about "axidma_oneway_transfer "
- 一个小bug及解决办法,应用层程序多次调用问题 HOT 13
- Question about asynchronous transfer return value
- Howto setup continuous DMA transfers? HOT 1
- Using xilinx_axidma driver in Petalinux 2022 and Linux Kernel Version 5.15.19 HOT 1
- One-way transfer from PL to PS
- One-way transfer from PL to PS HOT 2
- axidma: axidma_chrdev.c: axidma_mmap: 294: Unable to allocate contiguous DMA memory region of size 8294400. HOT 3
- axidma_oneway_transfer() transfer issue HOT 5
- Petalinux wont build - Error at axidma_chrdev node in system-user.dtsi HOT 2
- segmentation fault on insmod HOT 2
- how can i use the dma with the interrupt HOT 1
- Unable to handle kernel NULL pointer dereference at virtual address 00000000 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xilinx_axidma.