• Marcin Wojtas's avatar
    net: mvneta: Add network support for Armada 3700 SoC · 2636ac3c
    Marcin Wojtas authored
    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>
    2636ac3c
mvneta.c 119 KB