All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/9] net: ethernet: ti: add networking support for k3 am65x/j721e soc
@ 2020-02-22 15:57 Grygorii Strashko
  2020-02-22 15:57 ` [PATCH net-next 1/9] net: ethernet: ti: ale: fix seeing unreg mcast packets with promisc and allmulti disabled Grygorii Strashko
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Grygorii Strashko @ 2020-02-22 15:57 UTC (permalink / raw)
  To: Roger Quadros, Tero Kristo, netdev, devicetree, David S. Miller,
	Rob Herring
  Cc: Peter Ujfalusi, Sekhar Nori, linux-kernel, Grygorii Strashko

Hi

This series adds basic networking support support TI K3 AM654x/J721E SoC which
have integrated Gigabit Ethernet MAC (Media Access Controller) into device MCU
domain and named MCU_CPSW0 (CPSW2G NUSS).

Formally TRMs refere CPSW2G NUSS as two-port Gigabit Ethernet Switch subsystem
with port 0 being the CPPI DMA host port and port 1 being the external Ethernet
port, but for 1 external port device it's just Port 0 <-> ALE <-> Port 1 and it's
rather device with HW filtering capabilities then actually switching device.
It's expected to have similar devices, but with more external ports.

The new Host port 0 Communications Port Programming Interface (CPPI5) is
operating by TI AM654x/J721E NAVSS Unified DMA Peripheral Root Complex (UDMA-P)
controller [1].

The CPSW2G contains below modules for which existing code is re-used:
 - MAC SL: cpsw_sl.c
 - Address Lookup Engine (ALE): cpsw_ale.c, basically compatible with K2 66AK2E/G
 - Management Data Input/Output interface (MDIO): davinci_mdio.c, fully 
   comaptible with TI AM3/4/5 devices

Basic features supported by CPSW2G NUSS driver:
 - VLAN support, 802.1Q compliant, Auto add port VLAN for untagged frames on
   ingress, Auto VLAN removal on egress and auto pad to minimum frame size.
 - multicast filtering
 - promisc mode
 - TX multiq support in Round Robin or Fixed priority modes
 - RX checksum offload for non-fragmented IPv4/IPv6 TCP/UDP packets
 - TX checksum offload support for IPv4/IPv6 TCP/UDP packets (J721E only).

Features under development:
 - Support for IEEE 1588 Clock Synchronization. The CPSW2G NUSS includes new
   version of Common Platform Time Sync (CPTS)
 - tc-mqprio: priority level Quality Of Service (QOS) support (802.1p)
 - tc-cbs: Support for Audio/Video Bridging (P802.1Qav/D6.0) HW shapers
 - tc-taprio: IEEE 802.1Qbv/D2.2 Enhancements for Scheduled Traffic
 - frame preemption: IEEE P902.3br/D2.0 Interspersing Express Traffic, 802.1Qbu
 - extended ALE features: classifier/policers, auto-aging

This series depends on:
 [for-next PATCH 0/5] phy: ti: gmii-sel: add support for am654x/j721e soc
 https://lkml.org/lkml/2020/2/22/100

TRMs:
 AM654: http://www.ti.com/lit/ug/spruid7e/spruid7e.pdf
 J721E: http://www.ti.com/lit/ug/spruil1a/spruil1a.pdf

Preliminary documentation can be found at:
 http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/K3_CPSW2g.html

[1] https://lwn.net/Articles/808030/

Grygorii Strashko (9):
  net: ethernet: ti: ale: fix seeing unreg mcast packets with promisc
    and allmulti disabled
  net: ethernet: ti: ale: add support for mac-only mode
  net: ethernet: ti: ale: am65: add support for default thread cfg
  dt-binding: ti: am65x: document mcu cpsw nuss
  net: ethernet: ti: introduce am65x/j721e gigabit eth switch subsystem
    driver
  arm64: dts: ti: k3-am65-mcu: add cpsw nuss node
  arm64: dts: k3-am654-base-board: add mcu cpsw nuss pinmux and phy defs
  arm64: dts: ti: k3-j721e-mcu: add mcu cpsw nuss node
  arm64: dts: ti: k3-j721e-common-proc-board: add mcu cpsw nuss pinmux
    and phy defs

 .../bindings/net/ti,k3-am654-cpsw-nuss.yaml   |  226 ++
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi       |   49 +
 arch/arm64/boot/dts/ti/k3-am65.dtsi           |    1 +
 .../arm64/boot/dts/ti/k3-am654-base-board.dts |   42 +
 .../dts/ti/k3-j721e-common-proc-board.dts     |   43 +
 .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi      |   49 +
 arch/arm64/boot/dts/ti/k3-j721e.dtsi          |    1 +
 drivers/net/ethernet/ti/Kconfig               |   19 +-
 drivers/net/ethernet/ti/Makefile              |    3 +
 drivers/net/ethernet/ti/am65-cpsw-ethtool.c   |  761 +++++++
 drivers/net/ethernet/ti/am65-cpsw-nuss.c      | 1985 +++++++++++++++++
 drivers/net/ethernet/ti/am65-cpsw-nuss.h      |  143 ++
 drivers/net/ethernet/ti/cpsw_ale.c            |   38 +
 drivers/net/ethernet/ti/cpsw_ale.h            |    4 +
 drivers/net/ethernet/ti/k3-udma-desc-pool.c   |  126 ++
 drivers/net/ethernet/ti/k3-udma-desc-pool.h   |   30 +
 16 files changed, 3518 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
 create mode 100644 drivers/net/ethernet/ti/am65-cpsw-ethtool.c
 create mode 100644 drivers/net/ethernet/ti/am65-cpsw-nuss.c
 create mode 100644 drivers/net/ethernet/ti/am65-cpsw-nuss.h
 create mode 100644 drivers/net/ethernet/ti/k3-udma-desc-pool.c
 create mode 100644 drivers/net/ethernet/ti/k3-udma-desc-pool.h

-- 
2.17.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-02-24 18:38 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-22 15:57 [PATCH net-next 0/9] net: ethernet: ti: add networking support for k3 am65x/j721e soc Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 1/9] net: ethernet: ti: ale: fix seeing unreg mcast packets with promisc and allmulti disabled Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 2/9] net: ethernet: ti: ale: add support for mac-only mode Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 3/9] net: ethernet: ti: ale: am65: add support for default thread cfg Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 4/9] dt-binding: ti: am65x: document mcu cpsw nuss Grygorii Strashko
2020-02-24 18:38   ` Rob Herring
2020-02-22 15:57 ` [PATCH net-next 5/9] net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver Grygorii Strashko
2020-02-24  5:06   ` David Miller
2020-02-22 15:57 ` [PATCH net-next 6/9] arm64: dts: ti: k3-am65-mcu: add cpsw nuss node Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 7/9] arm64: dts: k3-am654-base-board: add mcu cpsw nuss pinmux and phy defs Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 8/9] arm64: dts: ti: k3-j721e-mcu: add mcu cpsw nuss node Grygorii Strashko
2020-02-22 15:57 ` [PATCH net-next 9/9] arm64: dts: ti: k3-j721e-common-proc-board: add mcu cpsw nuss pinmux and phy defs Grygorii Strashko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.