Commit 2636ac3c authored by Marcin Wojtas's avatar Marcin Wojtas Committed by David S. Miller

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: default avatarMarcin Wojtas <mw@semihalf.com>
Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: default avatarMarcin Wojtas <mw@semihalf.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f34daccc
* Marvell Armada 370 / Armada XP Ethernet Controller (NETA) * Marvell Armada 370 / Armada XP / Armada 3700 Ethernet Controller (NETA)
Required properties: Required properties:
- compatible: "marvell,armada-370-neta" or "marvell,armada-xp-neta". - compatible: could be one of the followings
"marvell,armada-370-neta"
"marvell,armada-xp-neta"
"marvell,armada-3700-neta"
- reg: address and length of the register set for the device. - reg: address and length of the register set for the device.
- interrupts: interrupt for the device - interrupts: interrupt for the device
- phy: See ethernet.txt file in the same directory. - phy: See ethernet.txt file in the same directory.
......
...@@ -56,14 +56,15 @@ config MVNETA_BM_ENABLE ...@@ -56,14 +56,15 @@ config MVNETA_BM_ENABLE
buffer management. buffer management.
config MVNETA config MVNETA
tristate "Marvell Armada 370/38x/XP network interface support" tristate "Marvell Armada 370/38x/XP/37xx network interface support"
depends on PLAT_ORION || COMPILE_TEST depends on ARCH_MVEBU || COMPILE_TEST
depends on HAS_DMA depends on HAS_DMA
select MVMDIO select MVMDIO
select FIXED_PHY select FIXED_PHY
---help--- ---help---
This driver supports the network interface units in the This driver supports the network interface units in the
Marvell ARMADA XP, ARMADA 370 and ARMADA 38x SoC family. Marvell ARMADA XP, ARMADA 370, ARMADA 38x and
ARMADA 37xx SoC family.
Note that this driver is distinct from the mv643xx_eth Note that this driver is distinct from the mv643xx_eth
driver, which should be used for the older Marvell SoCs driver, which should be used for the older Marvell SoCs
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment