mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 19:26:54 +07:00
2636ac3cc2
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>
172 lines
5.4 KiB
Plaintext
172 lines
5.4 KiB
Plaintext
#
|
|
# Marvell device configuration
|
|
#
|
|
|
|
config NET_VENDOR_MARVELL
|
|
bool "Marvell devices"
|
|
default y
|
|
depends on PCI || CPU_PXA168 || MV64X60 || PPC32 || PLAT_ORION || INET || COMPILE_TEST
|
|
---help---
|
|
If you have a network (Ethernet) card belonging to this class, say Y.
|
|
|
|
Note that the answer to this question doesn't directly affect the
|
|
kernel: saying N will just cause the configurator to skip all
|
|
the questions about Marvell devices. If you say Y, you will be
|
|
asked for your specific card in the following questions.
|
|
|
|
if NET_VENDOR_MARVELL
|
|
|
|
config MV643XX_ETH
|
|
tristate "Marvell Discovery (643XX) and Orion ethernet support"
|
|
depends on (MV64X60 || PPC32 || PLAT_ORION || COMPILE_TEST) && INET
|
|
depends on HAS_DMA
|
|
select PHYLIB
|
|
select MVMDIO
|
|
---help---
|
|
This driver supports the gigabit ethernet MACs in the
|
|
Marvell Discovery PPC/MIPS chipset family (MV643XX) and
|
|
in the Marvell Orion ARM SoC family.
|
|
|
|
Some boards that use the Discovery chipset are the Momenco
|
|
Ocelot C and Jaguar ATX and Pegasos II.
|
|
|
|
config MVMDIO
|
|
tristate "Marvell MDIO interface support"
|
|
depends on HAS_IOMEM
|
|
select PHYLIB
|
|
---help---
|
|
This driver supports the MDIO interface found in the network
|
|
interface units of the Marvell EBU SoCs (Kirkwood, Orion5x,
|
|
Dove, Armada 370 and Armada XP).
|
|
|
|
This driver is used by the MV643XX_ETH and MVNETA drivers.
|
|
|
|
config MVNETA_BM_ENABLE
|
|
tristate "Marvell Armada 38x/XP network interface BM support"
|
|
depends on MVNETA
|
|
depends on !64BIT
|
|
---help---
|
|
This driver supports auxiliary block of the network
|
|
interface units in the Marvell ARMADA XP and ARMADA 38x SoC
|
|
family, which is called buffer manager.
|
|
|
|
This driver, when enabled, strictly cooperates with mvneta
|
|
driver and is common for all network ports of the devices,
|
|
even for Armada 370 SoC, which doesn't support hardware
|
|
buffer management.
|
|
|
|
config MVNETA
|
|
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, 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
|
|
(Dove, Orion, Discovery, Kirkwood).
|
|
|
|
config MVNETA_BM
|
|
tristate
|
|
depends on !64BIT
|
|
default y if MVNETA=y && MVNETA_BM_ENABLE!=n
|
|
default MVNETA_BM_ENABLE
|
|
select HWBM
|
|
help
|
|
MVNETA_BM must not be 'm' if MVNETA=y, so this symbol ensures
|
|
that all dependencies are met.
|
|
|
|
config MVPP2
|
|
tristate "Marvell Armada 375 network interface support"
|
|
depends on MACH_ARMADA_375 || COMPILE_TEST
|
|
depends on HAS_DMA
|
|
depends on !64BIT
|
|
select MVMDIO
|
|
---help---
|
|
This driver supports the network interface units in the
|
|
Marvell ARMADA 375 SoC.
|
|
|
|
config PXA168_ETH
|
|
tristate "Marvell pxa168 ethernet support"
|
|
depends on HAS_IOMEM && HAS_DMA
|
|
depends on CPU_PXA168 || ARCH_BERLIN || COMPILE_TEST
|
|
select PHYLIB
|
|
---help---
|
|
This driver supports the pxa168 Ethernet ports.
|
|
|
|
To compile this driver as a module, choose M here. The module
|
|
will be called pxa168_eth.
|
|
|
|
config SKGE
|
|
tristate "Marvell Yukon Gigabit Ethernet support"
|
|
depends on PCI
|
|
select CRC32
|
|
---help---
|
|
This driver support the Marvell Yukon or SysKonnect SK-98xx/SK-95xx
|
|
and related Gigabit Ethernet adapters. It is a new smaller driver
|
|
with better performance and more complete ethtool support.
|
|
|
|
It does not support the link failover and network management
|
|
features that "portable" vendor supplied sk98lin driver does.
|
|
|
|
This driver supports adapters based on the original Yukon chipset:
|
|
Marvell 88E8001, Belkin F5D5005, CNet GigaCard, DLink DGE-530T,
|
|
Linksys EG1032/EG1064, 3Com 3C940/3C940B, SysKonnect SK-9871/9872.
|
|
|
|
It does not support the newer Yukon2 chipset: a separate driver,
|
|
sky2, is provided for these adapters.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called skge. This is recommended.
|
|
|
|
config SKGE_DEBUG
|
|
bool "Debugging interface"
|
|
depends on SKGE && DEBUG_FS
|
|
---help---
|
|
This option adds the ability to dump driver state for debugging.
|
|
The file /sys/kernel/debug/skge/ethX displays the state of the internal
|
|
transmit and receive rings.
|
|
|
|
If unsure, say N.
|
|
|
|
config SKGE_GENESIS
|
|
bool "Support for older SysKonnect Genesis boards"
|
|
depends on SKGE
|
|
---help---
|
|
This enables support for the older and uncommon SysKonnect Genesis
|
|
chips, which support MII via an external transceiver, instead of
|
|
an internal one. Disabling this option will save some memory
|
|
by making code smaller. If unsure say Y.
|
|
|
|
config SKY2
|
|
tristate "Marvell Yukon 2 support"
|
|
depends on PCI
|
|
select CRC32
|
|
---help---
|
|
This driver supports Gigabit Ethernet adapters based on the
|
|
Marvell Yukon 2 chipset:
|
|
Marvell 88E8021/88E8022/88E8035/88E8036/88E8038/88E8050/88E8052/
|
|
88E8053/88E8055/88E8061/88E8062, SysKonnect SK-9E21D/SK-9S21
|
|
|
|
There is companion driver for the older Marvell Yukon and
|
|
SysKonnect Genesis based adapters: skge.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called sky2. This is recommended.
|
|
|
|
config SKY2_DEBUG
|
|
bool "Debugging interface"
|
|
depends on SKY2 && DEBUG_FS
|
|
---help---
|
|
This option adds the ability to dump driver state for debugging.
|
|
The file /sys/kernel/debug/sky2/ethX displays the state of the internal
|
|
transmit and receive rings.
|
|
|
|
If unsure, say N.
|
|
|
|
endif # NET_VENDOR_MARVELL
|