DPAA2 Ethernet Switch driver
============================

This file provides documentation for the DPAA2 Ethernet Switch driver


Contents
========
	Supported Platforms
	Architecture Overview
	Creating an Ethernet Switch
	Features


	Supported Platforms
===================
This driver provides networking support for Freescale LS2085A, LS2088A
DPAA2 SoCs.


Architecture Overview
=====================
The Ethernet Switch in the DPAA2 architecture consists of several hardware
resources that provide the functionality. These are allocated and
configured via the Management Complex (MC) portals. MC abstracts most of
these resources as DPAA2 objects and exposes ABIs through which they can
be configured and controlled.

For a more detailed description of the DPAA2 architecture and its object
abstractions see:
	drivers/staging/fsl-mc/README.txt

The Ethernet Switch is built on top of a Datapath Switch (DPSW) object.

Configuration interface:

          ---------------------
         | DPAA2 Switch driver |
          ---------------------
                   .
                   .
              ----------
             | DPSW API |
              ----------
                   .           software
 ================= . ==============
                   .           hardware
          ---------------------
         | MC hardware portals |
          ---------------------
                   .
                   .
                 ------
                | DPSW |
                 ------

Driver uses the switch device driver model and exposes each switch port as
a network interface, which can be included in a bridge. Traffic switched
between ports is offloaded into the hardware. Exposed network interfaces
are not used for I/O, they are used just for configuration. This
limitation is going to be addressed in the future.

The DPSW can have ports connected to DPNIs or to PHYs via DPMACs.


 [ethA]     [ethB]     [ethC]     [ethD]     [ethE]     [ethF]
    :          :          :          :          :          :
    :          :          :          :          :          :
[eth drv]  [eth drv]  [                ethsw drv              ]
    :          :          :          :          :          :        kernel
========================================================================
    :          :          :          :          :          :        hardware
 [DPNI]      [DPNI]     [============= DPSW =================]
    |          |          |          |          |          |
    |           ----------           |       [DPMAC]    [DPMAC]
     -------------------------------            |          |
                                                |          |
                                              [PHY]      [PHY]

For a more detailed description of the Ethernet switch device driver model
see:
	Documentation/networking/switchdev.txt

Creating an Ethernet Switch
===========================
A device is created for the switch objects probed on the MC bus. Each DPSW
has a number of properties which determine the configuration options and
associated hardware resources.

A DPSW object (and the other DPAA2 objects needed for a DPAA2 switch) can
be added to a container on the MC bus in one of two ways: statically,
through a Datapath Layout Binary file (DPL) that is parsed by MC at boot
time; or created dynamically at runtime, via the DPAA2 objects APIs.

Features
========
Driver configures DPSW to perform hardware switching offload of
unicast/multicast/broadcast (VLAN tagged or untagged) traffic between its
ports.

It allows configuration of hardware learning, flooding, multicast groups,
port VLAN configuration and STP state.

Static entries can be added/removed from the FDB.

Hardware statistics for each port are provided through ethtool -S option.
