1DPAA2 Ethernet Switch driver
2============================
3
4This file provides documentation for the DPAA2 Ethernet Switch driver
5
6
7Contents
8========
9	Supported Platforms
10	Architecture Overview
11	Creating an Ethernet Switch
12	Features
13
14
15	Supported Platforms
16===================
17This driver provides networking support for Freescale LS2085A, LS2088A
18DPAA2 SoCs.
19
20
21Architecture Overview
22=====================
23The Ethernet Switch in the DPAA2 architecture consists of several hardware
24resources that provide the functionality. These are allocated and
25configured via the Management Complex (MC) portals. MC abstracts most of
26these resources as DPAA2 objects and exposes ABIs through which they can
27be configured and controlled.
28
29For a more detailed description of the DPAA2 architecture and its object
30abstractions see:
31	drivers/staging/fsl-mc/README.txt
32
33The Ethernet Switch is built on top of a Datapath Switch (DPSW) object.
34
35Configuration interface:
36
37          ---------------------
38         | DPAA2 Switch driver |
39          ---------------------
40                   .
41                   .
42              ----------
43             | DPSW API |
44              ----------
45                   .           software
46 ================= . ==============
47                   .           hardware
48          ---------------------
49         | MC hardware portals |
50          ---------------------
51                   .
52                   .
53                 ------
54                | DPSW |
55                 ------
56
57Driver uses the switch device driver model and exposes each switch port as
58a network interface, which can be included in a bridge. Traffic switched
59between ports is offloaded into the hardware. Exposed network interfaces
60are not used for I/O, they are used just for configuration. This
61limitation is going to be addressed in the future.
62
63The DPSW can have ports connected to DPNIs or to PHYs via DPMACs.
64
65
66 [ethA]     [ethB]     [ethC]     [ethD]     [ethE]     [ethF]
67    :          :          :          :          :          :
68    :          :          :          :          :          :
69[eth drv]  [eth drv]  [                ethsw drv              ]
70    :          :          :          :          :          :        kernel
71========================================================================
72    :          :          :          :          :          :        hardware
73 [DPNI]      [DPNI]     [============= DPSW =================]
74    |          |          |          |          |          |
75    |           ----------           |       [DPMAC]    [DPMAC]
76     -------------------------------            |          |
77                                                |          |
78                                              [PHY]      [PHY]
79
80For a more detailed description of the Ethernet switch device driver model
81see:
82	Documentation/networking/switchdev.rst
83
84Creating an Ethernet Switch
85===========================
86A device is created for the switch objects probed on the MC bus. Each DPSW
87has a number of properties which determine the configuration options and
88associated hardware resources.
89
90A DPSW object (and the other DPAA2 objects needed for a DPAA2 switch) can
91be added to a container on the MC bus in one of two ways: statically,
92through a Datapath Layout Binary file (DPL) that is parsed by MC at boot
93time; or created dynamically at runtime, via the DPAA2 objects APIs.
94
95Features
96========
97Driver configures DPSW to perform hardware switching offload of
98unicast/multicast/broadcast (VLAN tagged or untagged) traffic between its
99ports.
100
101It allows configuration of hardware learning, flooding, multicast groups,
102port VLAN configuration and STP state.
103
104Static entries can be added/removed from the FDB.
105
106Hardware statistics for each port are provided through ethtool -S option.
107