Re: [RFC] drivers/staging/axis-fifo: TODO file and subsystem direction
From: Grewstad
Date: Mon Jun 01 2026 - 02:05:55 EST
On Mon, Jun 1, 2026 at 1:22 AM Andrew Lunn <andrew@xxxxxxx> wrote:
>
>
> In addition to what GregKH said, look at the vendor information:
>
> https://docs.amd.com/r/en-US/pg080-axi-fifo-mm-s/Core-Overview
>
> The AXI4-Stream FIFO core was designed to provide memory-mapped
> access to an AXI4-Stream interface connected to other IP (such as
> the AXI Ethernet core). Systems must be built through the AMD
> Vivado™ Design Suite to attach the AXI4-Stream FIFO core, AXI
> Ethernet core ...
>
> when used for Ethernet, a uAPI is not needed. The FIFO driver would
> just expose an kernel internal API the Ethernet driver would use. Are
> there any Ethernet devices using it? Is there a driver for the AXI
> Ethernet core?
As I said to Greg K-H, it's 'chameleon' hardware because we don't know
what it'll be used for. It could be SDR or Ethernet or whatever it is
programmed for. The main thing is that it is a streaming interface.
But we cannot assume the use case.
> Does drivers/net/ethernet/xilinx/* duplicate the same
> code? xilinx_axienet_main.c says:
>
> * TODO:
> * - Add Axi Fifo support.
>
> which could be this.
>
> As GregKH said, find some hardware using these IP cores, or synthesise
> your own, and then work on the driver.
>
> Andrew
Yes, the Axinet driver's TODO suggests adding AXI FIFO support.
Currently, it routes
packets through the AXI DMA engine, but the TODO mentions:
* TODO:
* - Add Axi Fifo support.
* - Factor out Axi DMA code into a separate driver.
This suggests that the AXI FIFO is merely a different configuration of
the axinet
driver, allowing a Xilinx AXI FIFO device to be used for ethernet.
It does not, however, establish how the AXI Stream FIFO IP is intended to be
used outside of the Ethernet context. Since the AXI Stream FIFO is a
general-purpose IP block used in a variety of FPGA designs, it is not yet
clear whether the Ethernet use case fully defines its role in the kernel, or
whether it should be treated as a more general streaming component with
multiple potential consumers.
Thanks,
Arihan Bhor