Add ethernet backplane documentation Signed-off-by: Florinel Iordache <florinel.iordache@xxxxxxx> --- Documentation/ABI/testing/sysfs-class-net-phydev | 2 +- Documentation/networking/backplane.rst | 165 +++++++++++++++++++++++ Documentation/networking/phy.rst | 15 ++- 3 files changed, 178 insertions(+), 4 deletions(-) create mode 100644 Documentation/networking/backplane.rst diff --git a/Documentation/ABI/testing/sysfs-class-net-phydev b/Documentation/ABI/testing/sysfs-class-net-phydev index 206cbf5..69dbd36 100644 --- a/Documentation/ABI/testing/sysfs-class-net-phydev +++ b/Documentation/ABI/testing/sysfs-class-net-phydev @@ -39,7 +39,7 @@ Description: <empty> (not available), mii, gmii, sgmii, tbi, rev-mii, rmii, rgmii, rgmii-id, rgmii-rxid, rgmii-txid, rtbi, smii xgmii, moca, qsgmii, trgmii, 1000base-x, 2500base-x, rxaui, - xaui, 10gbase-kr, unknown + xaui, 10gbase-kr, 40gbase-kr4, unknown What: /sys/class/mdio_bus/<bus>/<device>/phy_standalone Date: May 2019 diff --git a/Documentation/networking/backplane.rst b/Documentation/networking/backplane.rst new file mode 100644 index 0000000..951c17e --- /dev/null +++ b/Documentation/networking/backplane.rst @@ -0,0 +1,165 @@ +.. SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) + +========================= +Ethernet Backplane Driver +========================= + +Author: +Florinel Iordache <florinel.iordache@xxxxxxx> + +Contents +======== + + - Ethernet Backplane Overview + - Equalization + - Auto-negotiation + - Link training + - Enable backplane support in Linux kernel + - Ethernet Backplane support architecture + - Supported equalization algorithms + - Supported backplane protocols + - Supported platforms + +Ethernet Backplane Overview +=========================== + +Ethernet operation over electrical backplanes, also referred to as Ethernet +Backplane, combines the IEEE 802.3 Media Access Control (MAC) and MAC +Control sublayers with a family of Physical Layers defined to support +operation over a modular chassis backplane. +The main standard specification for Ethernet Backplane is: IEEE802.3ap-2007 +Amendment 4: Ethernet Operation over Electrical Backplanes +which includes the new Clause 69 through Clause 74. +Additional specifications define support for various speeds and 4-lanes: +IEEE802.3ba-2010. +Signal equalization is required based on the link quality. The standard +specifies that a start-up algorithm should be in place in order to get the +link up. + +Equalization +============ + +Equalization represents the procedure required to minimize the effects of signal +distortion, noise, interference occurred in high-speed communication channels. +The equalizer purpose is to improve signal integrity in terms of bit error rate +(BER) in order to allow accurate recovery of the transmitted symbols. + +A simplified view of channel equalization: + + LD <======== channel =========> LP + Local Device Link Partner + + |-----| ___ + | | <======== channel =========> / | + | | witout signal Equalization / \ + | | / | + ____| |____ ___/ \___ + + |\ _ |-----| + | \_/ | <======== channel =========> | | + | | with signal Equalization | | + | | | | + ____| |____ ____| |____ + + LD Tx waveform LP Rx waveform + +Auto-negotiation +================ + +Auto-negotiation allows the devices at both ends of a link segment to advertise +abilities, acknowledge receipt, and discover the common modes of operation that +both devices share. It also rejects the use of operational modes not shared by +both devices. Auto-negotiation does not test link segment characteristics. + +Link training +============= + +Link training occurs after auto-negotiation has determined the link to be a +Base-KR, but before auto-negotiation is done. It continuously exchanges messages +(training frames) between the local and the remote device as part of the +start-up phase. Link training tunes the equalization parameters of the remote and +local transmitter to improve the link quality in terms of bit error rate. +Both LP (link partner/remote device) and LD (local device) perform link training +in parallel. Link training is finished when both sides decide that the channel is +equalized and then the link is considered up. + +Enable backplane support in Linux kernel +======================================== + +To enable the Ethernet Backplane, the following Kconfig options are available: + +# enable generic Ethernet Backplane support: +CONFIG_ETH_BACKPLANE=y +# enable Fixed (No Equalization) algorithm: +CONFIG_ETH_BACKPLANE_FIXED=y +# enable 3-Taps Bit Edge Equalization (BEE) algorithm: +CONFIG_ETH_BACKPLANE_BEE=y +# enable QorIQ Ethernet Backplane driver: +CONFIG_ETH_BACKPLANE_QORIQ=y + +Ethernet Backplane support architecture +======================================= + +Ethernet Backplane support in Linux kernel complies with the following standard +design concepts: +* Modularity: + # internal components are separated in well defined functional modules +* Reusability: + # lower layer components provide basic functionalities which are reused by + the upper layer modules +* Extensibility: + # architecture can be easily extended with support for new: + - backplane protocols + - equalization algorithms + - supported devices +It is designed as a loosely coupled architecture in order to allow the +possibility to easily create desired backplane system configurations according +to user needs by specifying different components and initialization parameters +without recompiling the kernel. + + ------------------ ------------------------------------ + | EQ Algorithms | | Specific device drivers | + | ------------ | | Backplane support | + | | Fixed | | | ------------------ ----------- | + | ------------ | | | QorIQ | | | | + | | BEE | | | | devices | | | | + | ------------ | | | -------------- | | other | | + | | others | | | | | Serdes 10G | | | devices | | + ---------------------------- | | -------------- | | support | | + | Link Training | | | | Serdes 28G | | | | | + | and Auto-negotiation | | | -------------- | | | | + | (IEEE 802.3-ap/ba) | | |----------------| |---------| | + --------------------------------------------------------------------------- + | Ethernet Backplane Generic Driver | + --------------------------------------------------------------------------- + | PHY Abstraction Layer | + --------------------------------------------------------------------------- + +Supported equalization algorithms +================================= + +Ethernet Backplane supports the following equalization algorithms: + +- Fixed setup (No Equalization algorithm) +- 3-Taps Bit Edge Equalization (BEE) algorithm + +Supported backplane protocols +============================= + +Ethernet Backplane supports the following protocols: + +- Single-lane: +10GBase-KR + +- Multi-lane: +40GBase-KR4 + +Supported platforms +=================== + +Ethernet Backplane is enabled on the following platforms: + +LS1046A +LS1088A +LS2088A +LX2160A \ No newline at end of file diff --git a/Documentation/networking/phy.rst b/Documentation/networking/phy.rst index 2561060..1f1ebf2 100644 --- a/Documentation/networking/phy.rst +++ b/Documentation/networking/phy.rst @@ -279,13 +279,22 @@ Some of the interface modes are described below: XFI and SFI are not PHY interface types in their own right. ``PHY_INTERFACE_MODE_10GKR`` - This is the IEEE 802.3 Clause 49 defined 10GBASE-R with Clause 73 - autonegotiation. Please refer to the IEEE standard for further - information. + This is 10G Ethernet Backplane over single lane specified in + IEEE802.3ap-2007 Amendment 4: Ethernet Operation over Electrical + Backplanes which includes the new Clause 69 through Clause 74 + including autonegotiation. 10GKR uses the same physical layer + encoding as 10GBASE-R defined in IEEE802.3 Clause 49. Please refer + to the IEEE standard for further information. Note: due to legacy usage, some 10GBASE-R usage incorrectly makes use of this definition. +``PHY_INTERFACE_MODE_40GKR4`` + This is 40G Ethernet Backplane over 4-lanes using the same main + standard used for Ethernet Operation over Electrical Backplanes + and additional specifications that define support for Ethernet + Backplane over 4-lanes specified in IEEE802.3ba-2010. + Pause frames / flow control =========================== -- 1.9.1