-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net: mscc: Add initial Ocelot switch support
Add a driver for Microsemi Ocelot Ethernet switch support. This makes two modules: mscc_ocelot_common handles all the common features that doesn't depend on how the switch is integrated in the SoC. Currently, it handles offloading bridging to the hardware. ocelot_io.c handles register accesses. This is unfortunately needed because the register layout is packed and then depends on the number of ports available on the switch. The register definition files are automatically generated. ocelot_board handles the switch integration on the SoC and on the board. Frame injection and extraction to/from the CPU port is currently done using register accesses which is quite slow. DMA is possible but the port is not able to absorb the whole switch bandwidth. Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Alexandre Belloni
authored and
David S. Miller
committed
May 15, 2018
1 parent
44b801e
commit a556c76
Showing
17 changed files
with
5,283 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
config NET_VENDOR_MICROSEMI | ||
bool "Microsemi devices" | ||
default y | ||
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 Microsemi devices. | ||
|
||
if NET_VENDOR_MICROSEMI | ||
|
||
config MSCC_OCELOT_SWITCH | ||
tristate "Ocelot switch driver" | ||
depends on NET_SWITCHDEV | ||
depends on HAS_IOMEM | ||
select PHYLIB | ||
select REGMAP_MMIO | ||
help | ||
This driver supports the Ocelot network switch device. | ||
|
||
config MSCC_OCELOT_SWITCH_OCELOT | ||
tristate "Ocelot switch driver on Ocelot" | ||
depends on MSCC_OCELOT_SWITCH | ||
help | ||
This driver supports the Ocelot network switch device as present on | ||
the Ocelot SoCs. | ||
|
||
endif # NET_VENDOR_MICROSEMI |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
obj-$(CONFIG_MSCC_OCELOT_SWITCH) += mscc_ocelot_common.o | ||
mscc_ocelot_common-y := ocelot.o ocelot_io.o | ||
mscc_ocelot_common-y += ocelot_regs.o | ||
obj-$(CONFIG_MSCC_OCELOT_SWITCH_OCELOT) += ocelot_board.o |
Oops, something went wrong.