net: mscc: ocelot: Add support for MRP
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Tue, 16 Feb 2021 21:42:03 +0000 (22:42 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Feb 2021 22:47:46 +0000 (14:47 -0800)
commitd8ea7ff3995ead5193313c72c0d97c9c16c83be9
tree03c190f5a83224b975528384e8b2219fa52e6f3b
parentcd605d455a445837edb3372addbdd9a9e38df23b
net: mscc: ocelot: Add support for MRP

Add basic support for MRP. The HW will just trap all MRP frames on the
ring ports to CPU and allow the SW to process them. In this way it is
possible to for this node to behave both as MRM and MRC.

Current limitations are:
- it doesn't support Interconnect roles.
- it supports only a single ring.
- the HW should be able to do forwarding of MRP Test frames so the SW
  will not need to do this. So it would be able to have the role MRC
  without SW support.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mscc/Makefile
drivers/net/ethernet/mscc/ocelot.c
drivers/net/ethernet/mscc/ocelot_mrp.c [new file with mode: 0644]
drivers/net/ethernet/mscc/ocelot_net.c
include/linux/dsa/ocelot.h
include/soc/mscc/ocelot.h