Skip to content
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

No tx_channel and rx_channel devices in /dev. Petalinux 2020.2 #137

Open
SzateX opened this issue Aug 4, 2021 · 2 comments
Open

No tx_channel and rx_channel devices in /dev. Petalinux 2020.2 #137

SzateX opened this issue Aug 4, 2021 · 2 comments

Comments

@SzateX
Copy link

SzateX commented Aug 4, 2021

Hi I compiled your module with petalinux 2020. I'm configured device tree with this code:

`
/{
axidma_chrdev: axidma_chrdev@0 {
compatible = "xlnx,axidma-chrdev";
dmas = <&axi_dma_0 0 &axi_dma_0 1>;
dma-names = "tx_channel", "rx_channel";
};
};

&axi_dma_0{
//compatible = "xlnx,zynqmp-dma-1.0", "xlnx,axi-dma-7.1.a", "xlnx,axi-dma-1.00.a", "xlnx,axi-dma";
compatible = "xlnx,axi-dma", "xlnx,axi-dma-6.03.a", "xlnx,axi-dma-1.00.a";
clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk";
clocks = <&zynqmp_clk 71>, <&zynqmp_clk 71>, <&zynqmp_clk 71>, <&zynqmp_clk 71>;
interrupt-names = "mm2s_introut", "s2mm_introut";
interrupt-parent = <&gic>;
interrupts = <0 89 4 0 90 4>;
reg = <0x0 0xa0000000 0x0 0x10000>;
xlnx,addrwidth = <0x40>;
xlnx,include-sg ;
xlnx,sg-length-width = <0x1a>;
dma-channel@a0000000 {
compatible = "xlnx,axi-dma-mm2s-channel";
dma-channels = <0x1>;
interrupts = <0 89 4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};
dma-channel@a0000030 {
compatible = "xlnx,axi-dma-s2mm-channel";
dma-channels = <0x1>;
interrupts = <0 90 4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};

};
`

But it looks there is no devices in /dev. When I put modprobe command I got this result:
root@Testowy2:~# modprobe xilinx_axidma [ 46.597530] xilinx_axidma: loading out-of-tree module taints kernel. root@Testowy2:~#

Could you help me resolve this issue?

@jimenaCabrejas
Copy link

Hi! I'm facing the same issue.

After building and booting the new system, I get the following:

dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
xilinx-vdma 40400000.dma: Xilinx AXI DMA Engine Driver Probed!!

It seems it is initialized correctly, but when I load the module using insmod I get the following message

insmod /lib/modules/5.4.0-xilinx-v2020.2/extra/xilinx-axidma.ko
xilinx_axidma: loading out-of-tree module taints kernel.

Using lsmod I can see that the module is loaded

lsmod 
    Tainted: G  
xilinx_axidma 28672 0 - Live 0xbf005000 (O)  
uio_pdrv_genirq 16384 0 - Live 0xbf000000

But I cannot see the device at /dev/axidma nor in /proc/devices

My device-tree is as follows:

amba_pl {
  #address-cells = <0x01>;
  #size-cells = <0x01>;
  compatible = "simple-bus";
  ranges;
  phandle = <0x37>;

  dma@40400000 {
	  #dma-cells = <0x01>;
	  clock-names = "s_axi_lite_aclk\0m_axi_sg_aclk\0m_axi_mm2s_aclk\0m_axi_s2mm_aclk";
	  clocks = <0x01 0x0f 0x01 0x0f 0x01 0x0f 0x01 0x0f>;
	  compatible = "xlnx,axi-dma-7.1\0xlnx,axi-dma-1.00.a";
	  interrupt-names = "mm2s_introut\0s2mm_introut";
	  interrupt-parent = <0x04>;
	  interrupts = <0x00 0x1d 0x04 0x00 0x1e 0x04>;
	  reg = <0x40400000 0x10000>;
	  xlnx,addrwidth = <0x20>;
	  xlnx,include-sg;
	  xlnx,sg-length-width = <0x0e>;
	  phandle = <0x12>;
  
	  dma-channel@40400000 {
		  compatible = "xlnx,axi-dma-mm2s-channel";
		  dma-channels = <0x01>;
		  interrupts = <0x00 0x1d 0x04>;
		  xlnx,datawidth = <0x20>;
		  xlnx,device-id = <0x00>;
	  };
  
	  dma-channel@40400030 {
		  compatible = "xlnx,axi-dma-s2mm-channel";
		  dma-channels = <0x01>;
		  interrupts = <0x00 0x1e 0x04>;
		  xlnx,datawidth = <0x20>;
		  xlnx,device-id = <0x01>;
	  };
  };
};

chosen {
  bootargs = "console=ttyPS0,115200 earlycon root=/dev/ram0 rw";
  stdout-path = "serial0:115200n8";
};

axidma_chrdev@0 {
  compatible = "xlnx,axidma-chrdev";
  dmas = <0x12 0x00 0x12 0x01>;
  d;
  dma-names = "tx_channel\0rx_channel";
  phandle = <0x38>;
};

Did you manage to solve the issue?

@jimenaCabrejas
Copy link

I solved the issue, I needed to uncheck the option Auto config settings -> Device tree autoconfig in petalinux-config. Then it works fine

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants