netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/8] ARM: Alpine: Ethernet support
@ 2017-02-03 18:12 Antoine Tenart
  2017-02-03 18:12 ` [PATCH net-next 1/8] alpine: add I/O fabric interrupt controller (iofic) helpers Antoine Tenart
                   ` (7 more replies)
  0 siblings, 8 replies; 24+ messages in thread
From: Antoine Tenart @ 2017-02-03 18:12 UTC (permalink / raw)
  To: netdev, davem, linux-arm-kernel
  Cc: thomas.petazzoni, saeed, arnd, Antoine Tenart, talz, rshitrit,
	barak, tsahee

Hello all,

This series intend to add Ethernet support for the Annapurna Labs Alpine
v1 (ARM) and v2 (ARM64). The series first adds helpers for the I/O
fabric interrupt controller that is found in many controllers on the
Alpine, then helpers for the so called "Universal DMA" (UDMA) are also
added and finally adds the Alpine Ethernet driver (split in a few
patches, per functionality).

Many units in the Alpine platform (as the Ethernet controller) are
connected to what is called an I/O fabric bus. All these units share a
common implementation of an interrupt controller (the IOFIC) and some
share a DMA controller implementation (the UDMA). These controller are
duplicated in each unit (and there can be more than one per unit) and
use the same common definitions and functions. This is why SoC-specific
helpers and headers are provided here, to abstract some code. As these
controllers are not fully independent ones (they just happen to expose
the same registers in the units register spaces), proper interrupt nor
DMA drivers were not implemented.

This Ethernet controller is connected over PCIe, uses MSIX interrupts,
handle multiple UDMA controllers (4 rx queues + 4 tx queues per UDMA),
and offloading helpers (TSO, checksum offloads...).

This was tested on an Alpine v2 (ARM64) platform, and applies on top
of net-next (8fe809a99263).

Thanks,

Antoine Tenart (8):
  alpine: add I/O fabric interrupt controller (iofic) helpers
  soc: alpine: add udma helpers
  pci: add Annapurna Labs PCI id
  net: ethernet: add the Alpine Ethernet driver
  net: ethernet: annapurna: add statistics helper
  net: ethernet: annapurna: add wol helpers to the Alpine driver
  net: ethernet: annapurna: add eee helpers to the Alpine driver
  net: ethernet: annapurna: add the coalesce helpers to the Alpine
    driver

 drivers/net/ethernet/Kconfig                       |    1 +
 drivers/net/ethernet/Makefile                      |    1 +
 drivers/net/ethernet/annapurna/Kconfig             |   29 +
 drivers/net/ethernet/annapurna/Makefile            |    6 +
 drivers/net/ethernet/annapurna/al_eth.c            | 3267 +++++++++++++++++++
 drivers/net/ethernet/annapurna/al_eth.h            |  282 ++
 drivers/net/ethernet/annapurna/al_hw_eth.h         | 1301 ++++++++
 drivers/net/ethernet/annapurna/al_hw_eth_ec_regs.h | 1099 +++++++
 .../net/ethernet/annapurna/al_hw_eth_mac_regs.h    |  738 +++++
 drivers/net/ethernet/annapurna/al_hw_eth_main.c    | 3367 ++++++++++++++++++++
 .../ethernet/annapurna/al_hw_unit_adapter_regs.h   |   24 +
 drivers/soc/Kconfig                                |    1 +
 drivers/soc/Makefile                               |    1 +
 drivers/soc/alpine/Kconfig                         |   11 +
 drivers/soc/alpine/Makefile                        |    1 +
 drivers/soc/alpine/udma/Makefile                   |    1 +
 drivers/soc/alpine/udma/al_udma_config.c           |  140 +
 drivers/soc/alpine/udma/al_udma_iofic.c            |  110 +
 drivers/soc/alpine/udma/al_udma_main.c             |  245 ++
 drivers/soc/alpine/udma/al_udma_queue.c            |  232 ++
 include/linux/pci_ids.h                            |    2 +
 include/linux/soc/alpine/al_hw_udma.h              |  499 +++
 include/linux/soc/alpine/al_hw_udma_config.h       |   75 +
 include/linux/soc/alpine/al_hw_udma_iofic.h        |  199 ++
 include/linux/soc/alpine/al_hw_udma_regs.h         |  134 +
 include/linux/soc/alpine/al_hw_udma_regs_m2s.h     |  413 +++
 include/linux/soc/alpine/al_hw_udma_regs_s2m.h     |  294 ++
 include/linux/soc/alpine/iofic.h                   |  165 +
 28 files changed, 12638 insertions(+)
 create mode 100644 drivers/net/ethernet/annapurna/Kconfig
 create mode 100644 drivers/net/ethernet/annapurna/Makefile
 create mode 100644 drivers/net/ethernet/annapurna/al_eth.c
 create mode 100644 drivers/net/ethernet/annapurna/al_eth.h
 create mode 100644 drivers/net/ethernet/annapurna/al_hw_eth.h
 create mode 100644 drivers/net/ethernet/annapurna/al_hw_eth_ec_regs.h
 create mode 100644 drivers/net/ethernet/annapurna/al_hw_eth_mac_regs.h
 create mode 100644 drivers/net/ethernet/annapurna/al_hw_eth_main.c
 create mode 100644 drivers/net/ethernet/annapurna/al_hw_unit_adapter_regs.h
 create mode 100644 drivers/soc/alpine/Kconfig
 create mode 100644 drivers/soc/alpine/Makefile
 create mode 100644 drivers/soc/alpine/udma/Makefile
 create mode 100644 drivers/soc/alpine/udma/al_udma_config.c
 create mode 100644 drivers/soc/alpine/udma/al_udma_iofic.c
 create mode 100644 drivers/soc/alpine/udma/al_udma_main.c
 create mode 100644 drivers/soc/alpine/udma/al_udma_queue.c
 create mode 100644 include/linux/soc/alpine/al_hw_udma.h
 create mode 100644 include/linux/soc/alpine/al_hw_udma_config.h
 create mode 100644 include/linux/soc/alpine/al_hw_udma_iofic.h
 create mode 100644 include/linux/soc/alpine/al_hw_udma_regs.h
 create mode 100644 include/linux/soc/alpine/al_hw_udma_regs_m2s.h
 create mode 100644 include/linux/soc/alpine/al_hw_udma_regs_s2m.h
 create mode 100644 include/linux/soc/alpine/iofic.h

-- 
2.11.0

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2017-11-05 15:22 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-03 18:12 [PATCH net-next 0/8] ARM: Alpine: Ethernet support Antoine Tenart
2017-02-03 18:12 ` [PATCH net-next 1/8] alpine: add I/O fabric interrupt controller (iofic) helpers Antoine Tenart
2017-02-03 18:12 ` [PATCH net-next 2/8] soc: alpine: add udma helpers Antoine Tenart
2017-02-03 18:12 ` [PATCH net-next 3/8] pci: add Annapurna Labs PCI id Antoine Tenart
2017-02-03 18:12 ` [PATCH net-next 4/8] net: ethernet: add the Alpine Ethernet driver Antoine Tenart
2017-02-03 20:58   ` Andrew Lunn
2017-08-07  7:39     ` Chocron, Jonathan
2017-08-27 13:47     ` Chocron, Jonathan
2017-08-28 18:09       ` Andrew Lunn
2017-11-02 16:05         ` Chocron, Jonathan
2017-11-02 18:19           ` Florian Fainelli
2017-11-05 12:29             ` BSHARA, Said
2017-11-05 15:22               ` Andrew Lunn
2017-02-03 18:12 ` [PATCH net-next 5/8] net: ethernet: annapurna: add statistics helper Antoine Tenart
2017-02-03 19:34   ` Florian Fainelli
2017-02-03 21:24   ` kbuild test robot
2017-02-03 18:12 ` [PATCH net-next 6/8] net: ethernet: annapurna: add wol helpers to the Alpine driver Antoine Tenart
2017-02-03 18:21   ` Sergei Shtylyov
2017-02-06 11:35     ` David Laight
2017-02-06 12:02       ` Sergei Shtylyov
2017-02-10 10:12       ` Antoine Tenart
2017-02-03 18:12 ` [PATCH net-next 7/8] net: ethernet: annapurna: add eee " Antoine Tenart
2017-02-03 19:01   ` Florian Fainelli
2017-02-03 18:12 ` [PATCH net-next 8/8] net: ethernet: annapurna: add the coalesce " Antoine Tenart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).