linux/drivers/net/ethernet
Clément Léger 753a026cfe net: ocelot: add FDMA support
Ethernet frames can be extracted or injected autonomously to or from
the device’s DDR3/DDR3L memory and/or PCIe memory space. Linked list
data structures in memory are used for injecting or extracting Ethernet
frames. The FDMA generates interrupts when frame extraction or
injection is done and when the linked lists need updating.

The FDMA is shared between all the ethernet ports of the switch and
uses a linked list of descriptors (DCB) to inject and extract packets.
Before adding descriptors, the FDMA channels must be stopped. It would
be inefficient to do that each time a descriptor would be added so the
channels are restarted only once they stopped.

Both channels uses ring-like structure to feed the DCBs to the FDMA.
head and tail are never touched by hardware and are completely handled
by the driver. On top of that, page recycling has been added and is
mostly taken from gianfar driver.

Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Co-developed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Clément Léger <clement.leger@bootlin.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-12-10 20:56:58 -08:00
..
3com ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
8390 8390: wd: use eth_hw_addr_set() 2021-11-19 11:05:21 +00:00
actions
adaptec
aeroflex
agere
alacritech
allwinner
alteon
altera net: altera: set a couple error code in probe() 2021-12-03 14:23:11 +00:00
amazon ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
amd ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
apm net: annotate accesses to queue->trans_start 2021-11-17 14:56:16 +00:00
apple apple: macmace: use eth_hw_addr_set() 2021-11-19 11:05:21 +00:00
aquantia Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-02 11:44:56 -08:00
arc
asix Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-11-26 13:45:19 -08:00
atheros net: ag71xx: remove unnecessary legacy methods 2021-12-09 11:21:04 -08:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
brocade net: bna: Update supported link modes 2021-12-10 19:50:40 -08:00
cadence net: macb: convert to phylink_generic_validate() 2021-11-25 19:13:21 -08:00
calxeda ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
cavium octeon: constify netdev->dev_addr 2021-11-22 13:21:41 +00:00
chelsio net: cxgb: fix a typo in kernel doc 2021-11-30 12:18:08 +00:00
cirrus cirrus: mac89x0: use eth_hw_addr_set() 2021-11-19 11:05:21 +00:00
cisco ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
cortina ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
davicom ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
dec net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock() 2021-11-18 12:03:17 +00:00
dlink
emulex ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
engleder tsnep: Add missing of_node_put() in tsnep_mdio_init() 2021-11-25 19:20:34 -08:00
ezchip
faraday ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
fujitsu ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
google Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
hisilicon net: hns3: Fix spelling mistake "faile" -> "failed" 2021-12-07 21:35:12 -08:00
huawei Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
i825xx 82596: use eth_hw_addr_set() 2021-11-20 12:25:56 +00:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-02 11:44:56 -08:00
intel Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
litex litex_liteeth: Fix a double free in the remove function 2021-11-07 21:51:17 +00:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
mediatek net: mtk_eth_soc: mark as a legacy_pre_march2020 driver 2021-12-09 11:21:03 -08:00
mellanox net/mlx5: Dynamically resize flow counters query buffer 2021-12-02 16:53:16 -08:00
micrel ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
microchip net: lan966x: fix a IS_ERR() vs NULL check in lan966x_create_targets() 2021-12-03 14:22:00 +00:00
microsoft Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
moxa
mscc net: ocelot: add FDMA support 2021-12-10 20:56:58 -08:00
myricom ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
natsemi Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-02 11:44:56 -08:00
neterion ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
ni nixge: fix mac address error handling again 2021-11-22 15:05:48 +00:00
nvidia ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
nxp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-28 10:43:58 -07:00
oki-semi ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
packetengines ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
pasemi ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
pensando ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-09 13:23:02 -08:00
qualcomm ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
rdc
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-11-26 13:45:19 -08:00
renesas sh_eth: Use dev_err_probe() helper 2021-12-09 19:10:23 -08:00
rocker net: remove .ndo_change_proto_down 2021-11-23 12:18:48 +00:00
samsung ethernet: sxgbe: use eth_hw_addr_set() 2021-10-19 12:41:48 +01:00
seeq
sfc net: annotate accesses to dev->gso_max_segs 2021-11-22 12:49:42 +00:00
sgi
silan ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
sis ethernet: sis900: fix indentation 2021-11-12 20:13:28 -08:00
smsc smc9194: use eth_hw_addr_set() 2021-11-19 11:05:21 +00:00
socionext ethernet: netsec: use eth_hw_addr_set() 2021-10-20 11:41:01 +01:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-02 11:44:56 -08:00
sun ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
synopsys
tehuti ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
ti ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
toshiba net: spider_net: Use non-atomic bitmap API when applicable 2021-12-01 18:45:46 -08:00
tundra
via ethernet: via-velocity: use eth_hw_addr_set() 2021-10-20 11:41:01 +01:00
wiznet net: w5100: Make w5100_remove() return void 2021-10-18 12:59:12 +01:00
xilinx ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
xircom ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
xscale net: ethernet: ixp4xx: Make use of dma_pool_zalloc() instead of dma_pool_alloc/memset() 2021-10-19 13:24:26 +01:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
fealnx.c ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
jme.c
jme.h
Kconfig tsnep: Add TSN endpoint Ethernet MAC driver 2021-11-22 13:19:04 +00:00
korina.c
lantiq_etop.c net: lantiq: fix missing free_netdev() on error in ltq_etop_probe() 2021-11-30 12:11:27 +00:00
lantiq_xrx200.c net: lantiq_xrx200: Hardcode the burst length value 2021-10-29 12:15:35 +01:00
Makefile tsnep: Add TSN endpoint Ethernet MAC driver 2021-11-22 13:19:04 +00:00