cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
berk_era
Visitor
Visitor
1,026 Views
Registered: ‎02-20-2020

Petalinux: AXI_STREAM_FIFO cannot be seen as a device in petalinux (/dev/axis_fifo)

Hi,

We are trying to implement AXI STREAM FIFO (v4.2) to our petalinux 2019.2 driven design with Vivado 2019.2 on Ultrascale+ device. Even though, we can see the device in device tree and observe the axi address on vivado project, we cannot see the device on linux as /dev/axis_fifo. We found a linux driver on Xilinx forum, applied that to our desgin but it seems like it didnt have any effect on our problem. In petalinux 2019.2, we followed the following set:

*petalinux-config -c kernel

and found and added the axis fifo driver in "menuconfig". Also, we tried this "https://github.com/jacobfeder/axisfifo" driver and added as a module in our petalinux project. Yet, we couldnt see the axis_fifo device as "/dev/axis_fifo" on both trials. We tired these methods independently. 

So, what might be the  root cause of our problem and how can we solve it.

Sincerely,

ps: The same desing worked as intended on vivado 2018.2  and  petalinux 2018 .2 (on Zynq and ip version 4.1.). But, our design runs on ultrascale+, Vivado 2019.2 and petalinux 2019.2 with "AXI STREAM FIFO v4.2". 
 

-Coşkun Berk

BD.png

 

0 Kudos
4 Replies
cyt_era
Visitor
Visitor
946 Views
Registered: ‎02-11-2020

Hi, 

Is there anyone here to say how to resolve this issue?

 

0 Kudos
crepe
Observer
Observer
784 Views
Registered: ‎03-29-2019

Same issue in 2018.3... Any update? 

0 Kudos
dyessgg
Participant
Participant
511 Views
Registered: ‎01-07-2014

I realize this topic is a few months old by now.  Did you try adding 'status = "okay";' to your device tree file?

0 Kudos
jcrash29
Visitor
Visitor
285 Views
Registered: ‎01-28-2019

This is how I managed to fix this issue. 

It appears that althought 2019.2+ use AXI Stream FIFO 4.2. The petalinux kernel still includes only version 4.1

This means that the PL.dtsi file generated by petalinux has a compatability mode as the following

axi_fifo_mm_s_0: axi_fifo_mm_s@420000000 {
			clock-names = "s_axi_aclk";
			clocks = <&misc_clk_0>;
			compatible = "xlnx,axi-fifo-mm-s-4.2";

Notice the 4.2

The petalinux driver however is still using compatibility 4.1 HERE

static const struct of_device_id axis_fifo_of_match[] = {
	{ .compatible = "xlnx,axi-fifo-mm-s-4.1", },
	{},
};

 

 

The fix:

Add the following to system-user.dtsi

&axi_fifo_mm_s_0{
	compatible = "xlnx,axi-fifo-mm-s-4.1";
};

 

I have not yet seen any compatibility issues with the driver. 

0 Kudos