linux/drivers/net/ethernet/marvell
Marcin Wojtas 2636ac3cc2 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>
2016-12-02 13:52:01 -05:00
..
Kconfig net: mvneta: Add network support for Armada 3700 SoC 2016-12-02 13:52:01 -05:00
Makefile net: mvneta: bm: add support for hardware buffer management 2016-03-14 12:19:46 -04:00
mv643xx_eth.c net: mv643xx_eth: Utilize phy_ethtool_nway_reset 2016-11-15 16:33:35 -05:00
mvmdio.c net: mvmdio: do not clk_disable_unprepare() NULL clock 2016-10-03 02:03:27 -04:00
mvneta_bm.c net: mvneta: Fix lacking spinlock initialization 2016-05-25 12:35:08 -07:00
mvneta_bm.h net: mvneta: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:59 -07:00
mvneta.c net: mvneta: Add network support for Armada 3700 SoC 2016-12-02 13:52:01 -05:00
mvpp2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-26 23:42:21 -05:00
pxa168_eth.c net: ethernet: marvell: pxa168_eth: Implement ethtool::nway_reset 2016-11-16 13:44:01 -05:00
skge.c skge: Rename LED_OFF and LED_ON in marvel skge driver to avoid conflicts with leds namespace 2016-10-18 11:56:30 -04:00
skge.h skge: Rename LED_OFF and LED_ON in marvel skge driver to avoid conflicts with leds namespace 2016-10-18 11:56:30 -04:00
sky2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-22 13:27:16 -05:00
sky2.h sky2: Receive Overflows not counted 2013-03-29 14:53:19 -04:00