]> git.karo-electronics.de Git - linux-beck.git/commit
net: mvneta: Add network support for Armada 3700 SoC
authorMarcin Wojtas <mw@semihalf.com>
Thu, 1 Dec 2016 17:03:09 +0000 (18:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Dec 2016 18:52:01 +0000 (13:52 -0500)
commit2636ac3cc2b47e189894300602043aefbe699521
treef6c2a7930248488c6ef87e56c2b2c6d322f8968a
parentf34dacccb412a8716405a18a25ca1fa97046660c
net: mvneta: Add network support for Armada 3700 SoC

Armada 3700 is a new ARMv8 SoC from Marvell using same network controller
as older Armada 370/38x/XP. There are however some differences that
needed taking into account when adding support for it:

* open default MBUS window to 4GB of DRAM - Armada 3700 SoC's Mbus
  configuration for network controller has to be done on two levels:
  global and per-port. The first one is inherited from the
  bootloader. The latter can be opened in a default way, leaving
  arbitration to the bus controller.  Hence filled mbus_dram_target_info
  structure is not needed

* make per-CPU operation optional - Recent patches adding RSS and XPS
  support for Armada 38x/XP enabled per-CPU operation of the controller
  by default. Contrary to older SoC's Armada 3700 SoC's network
  controller is not capable of per-CPU processing due to interrupt lines'
  connectivity.  This patch restores non-per-CPU operation, which is now
  optional and depends on neta_armada3700 flag value in mvneta_port
  structure. In order not to complicate the code, separate interrupt
  subroutine is implemented.

For now, on the Armada 3700, RSS is disabled as the current
implementation depend on the per cpu interrupts.

[gregory.clement@free-electrons.com: extract from a larger patch, replace
some ifdef and port to net-next for v4.10]

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt
drivers/net/ethernet/marvell/Kconfig
drivers/net/ethernet/marvell/mvneta.c