Skip to content

Commit

Permalink
net: mvneta: Add network support for Armada 3700 SoC
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
wojtas-marcin authored and davem330 committed Dec 2, 2016
1 parent f34dacc commit 2636ac3
Show file tree
Hide file tree
Showing 3 changed files with 214 additions and 87 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
* Marvell Armada 370 / Armada XP Ethernet Controller (NETA)
* Marvell Armada 370 / Armada XP / Armada 3700 Ethernet Controller (NETA)

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.
- interrupts: interrupt for the device
- phy: See ethernet.txt file in the same directory.
Expand Down
7 changes: 4 additions & 3 deletions drivers/net/ethernet/marvell/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,15 @@ config MVNETA_BM_ENABLE
buffer management.

config MVNETA
tristate "Marvell Armada 370/38x/XP network interface support"
depends on PLAT_ORION || COMPILE_TEST
tristate "Marvell Armada 370/38x/XP/37xx network interface support"
depends on ARCH_MVEBU || COMPILE_TEST
depends on HAS_DMA
select MVMDIO
select FIXED_PHY
---help---
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
driver, which should be used for the older Marvell SoCs
Expand Down

0 comments on commit 2636ac3

Please sign in to comment.