netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/3] Add DWMAC glue driver for Motorcomm YT6801
@ 2025-11-24 16:32 Yao Zi
  2025-11-24 16:32 ` [PATCH net-next v3 1/3] net: phy: motorcomm: Support YT8531S PHY in YT6801 Ethernet controller Yao Zi
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Yao Zi @ 2025-11-24 16:32 UTC (permalink / raw)
  To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Yao Zi, Frank, Heiner Kallweit, Russell King,
	Russell King (Oracle), Vladimir Oltean, Choong Yong Liang,
	Chen-Yu Tsai, Jisheng Zhang, Furong Xu
  Cc: linux-kernel, netdev, Mingcong Bai, Kexy Biscuit

This series adds glue driver for Motorcomm YT6801 PCIe ethernet
controller, which is considered mostly compatible with DWMAC-4 IP by
inspecting the register layout[1]. It integrates a Motorcomm YT8531S PHY
(confirmed by reading PHY ID) and GMII is used to connect the PHY to
MAC[2].

The initialization logic of the MAC is mostly based on previous upstream
effort for the controller[3] and the Deepin-maintained downstream Linux
driver[4] licensed under GPL-2.0 according to its SPDX headers. However,
this series is a completely re-write of the previous patch series,
utilizing the existing DWMAC4 driver and introducing a glue driver only.

This series only aims to add basic networking functions for the
controller, features like WoL, RSS and LED control are omitted for now.
Testing is done on Loongson 3A5000 machine. Through a local GbE switch,
it reaches 869Mbps (TX)/943Mbps (RX) on average,

## YT6801 TX

Connecting to host 172.16.70.12, port 5201
[  5] local 172.16.70.230 port 43802 connected to 172.16.70.12 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   102 MBytes   858 Mbits/sec    0    335 KBytes
[  5]   1.00-2.00   sec   103 MBytes   867 Mbits/sec    0    441 KBytes
[  5]   2.00-3.00   sec   103 MBytes   863 Mbits/sec    0    441 KBytes
[  5]   3.00-4.00   sec   104 MBytes   870 Mbits/sec    0    441 KBytes
[  5]   4.00-5.00   sec   104 MBytes   869 Mbits/sec    0    441 KBytes
[  5]   5.00-6.00   sec   104 MBytes   869 Mbits/sec    0    591 KBytes
[  5]   6.00-7.00   sec   104 MBytes   876 Mbits/sec    0    629 KBytes
[  5]   7.00-8.00   sec   105 MBytes   878 Mbits/sec    0    629 KBytes
[  5]   8.00-9.00   sec   104 MBytes   872 Mbits/sec    0    629 KBytes
[  5]   9.00-10.00  sec   104 MBytes   871 Mbits/sec    0    629 KBytes

## YT6801 RX

Connecting to host 172.16.70.230, port 5201
[  5] local 172.16.70.12 port 60866 connected to 172.16.70.230 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   949 Mbits/sec    0    352 KBytes
[  5]   1.00-2.00   sec   113 MBytes   945 Mbits/sec    0    352 KBytes
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    352 KBytes
[  5]   3.00-4.00   sec   113 MBytes   945 Mbits/sec    0    352 KBytes
[  5]   4.00-5.00   sec   112 MBytes   938 Mbits/sec    0    407 KBytes
[  5]   5.00-6.00   sec   112 MBytes   940 Mbits/sec    0    407 KBytes
[  5]   6.00-7.00   sec   113 MBytes   945 Mbits/sec    0    436 KBytes
[  5]   7.00-8.00   sec   112 MBytes   941 Mbits/sec    0    436 KBytes
[  5]   8.00-9.00   sec   113 MBytes   947 Mbits/sec    0    645 KBytes
[  5]   9.00-10.00  sec   112 MBytes   939 Mbits/sec    0    645 KBytes

This series depends on v5 of series "Unify platform suspend/resume
routines for PCI DWMAC glue"[5] for a clean apply. It has been some time
since I sent v1 of the series, I'm sorry for the delay. Many thanks for
your time and review.

[1]: https://lore.kernel.org/all/Z_T6vv013jraCzSD@shell.armlinux.org.uk/
[2]: https://lore.kernel.org/all/a48d76ac-db08-46d5-9528-f046a7b541dc@motor-comm.com/
[3]: https://lore.kernel.org/all/a48d76ac-db08-46d5-9528-f046a7b541dc@motor-comm.com/
[4]: https://github.com/deepin-community/kernel/tree/dc61248a0e21/drivers/net/ethernet/motorcomm/yt6801
[5]: https://lore.kernel.org/netdev/20251124160417.51514-1-ziyao@disroot.org/

Changed from v2
- Rebase on top of next-20251124
- Switch to stmmac_plat_dat_alloc() then drop now redundant parameters
  from motorcomm_default_plat_data()
- Set STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP
- Add a comment indicating the possible source of CSR clock
- Link to v2: https://lore.kernel.org/netdev/20251111105252.53487-1-ziyao@disroot.org/

Changed from v1
- Drop (original) PATCH 1, add no vendor ID entry to linux/pci_ids.h
- Use PHY_INTERFACE_MODE_GMII instead of PHY_INTERFACE_MODE_INTERNAL
- Drop extra register read in motorcomm_efuse_read_byte()
- Rename EPHY_RESET to EPHY_MDIO_PHY_RESET, add a comment to reflect its
  function better
- Use the newly-introduced generic PCI suspend/resume routines
- Generate a random MAC address instead of failing to probe when no MAC
  address is programmed in eFuse (seen on some OEM EVBs).
- Collect Tested-by tags
- Link to v1: https://lore.kernel.org/netdev/20251014164746.50696-2-ziyao@disroot.org/

Yao Zi (3):
  net: phy: motorcomm: Support YT8531S PHY in YT6801 Ethernet controller
  net: stmmac: Add glue driver for Motorcomm YT6801 ethernet controller
  MAINTAINERS: Assign myself as maintainer of Motorcomm DWMAC glue
    driver

 MAINTAINERS                                   |   6 +
 drivers/net/ethernet/stmicro/stmmac/Kconfig   |   9 +
 drivers/net/ethernet/stmicro/stmmac/Makefile  |   1 +
 .../ethernet/stmicro/stmmac/dwmac-motorcomm.c | 378 ++++++++++++++++++
 drivers/net/phy/motorcomm.c                   |   4 +
 5 files changed, 398 insertions(+)
 create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-motorcomm.c

-- 
2.51.2


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

end of thread, other threads:[~2025-12-11 14:45 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-24 16:32 [PATCH net-next v3 0/3] Add DWMAC glue driver for Motorcomm YT6801 Yao Zi
2025-11-24 16:32 ` [PATCH net-next v3 1/3] net: phy: motorcomm: Support YT8531S PHY in YT6801 Ethernet controller Yao Zi
2025-11-24 16:32 ` [PATCH net-next v3 2/3] net: stmmac: Add glue driver for Motorcomm YT6801 ethernet controller Yao Zi
2025-11-24 19:06   ` Russell King (Oracle)
2025-12-05  5:31     ` Yao Zi
2025-12-05  9:34       ` Russell King (Oracle)
2025-12-05 22:16         ` Bjorn Helgaas
2025-12-08  9:54           ` Philipp Stanner
2025-12-08 10:15             ` Russell King (Oracle)
2025-12-08 10:47               ` Philipp Stanner
2025-12-08 10:53                 ` Russell King (Oracle)
2025-12-08 10:55                   ` Philipp Stanner
2025-12-11 14:23             ` Yao Zi
2025-12-11 14:44               ` Philipp Stanner
2025-12-08 11:11       ` Russell King (Oracle)
2025-11-24 16:32 ` [PATCH net-next v3 3/3] MAINTAINERS: Assign myself as maintainer of Motorcomm DWMAC glue driver Yao Zi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).