* [PATCH net-next 0/2] net: stmmac: report active phy interface
@ 2026-01-28 10:47 Russell King (Oracle)
2026-01-28 10:48 ` [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions Russell King (Oracle)
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Russell King (Oracle) @ 2026-01-28 10:47 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Drew Fustini,
Eric Dumazet, Fu Wei, Guo Ren, Jakub Kicinski, linux-arm-kernel,
linux-riscv, linux-stm32, netdev, Paolo Abeni
The original patch needs dwmac-thead fixed so the PHY_INTF* definitions
do not clash.
drivers/net/ethernet/stmicro/stmmac/common.h | 6 +++
drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c | 10 ++---
.../net/ethernet/stmicro/stmmac/dwmac1000_dma.c | 2 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c | 2 +
drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 1 +
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 52 ++++++++++++++++++++++
7 files changed, 69 insertions(+), 5 deletions(-)
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions
2026-01-28 10:47 [PATCH net-next 0/2] net: stmmac: report active phy interface Russell King (Oracle)
@ 2026-01-28 10:48 ` Russell King (Oracle)
2026-01-28 14:15 ` Maxime Chevallier
2026-01-28 10:48 ` [PATCH net-next 2/2] net: stmmac: report active PHY interface Russell King (Oracle)
2026-01-30 2:50 ` [PATCH net-next 0/2] net: stmmac: report active phy interface patchwork-bot+netdevbpf
2 siblings, 1 reply; 6+ messages in thread
From: Russell King (Oracle) @ 2026-01-28 10:48 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Drew Fustini,
Eric Dumazet, Fu Wei, Guo Ren, Jakub Kicinski, linux-arm-kernel,
linux-riscv, linux-stm32, netdev, Paolo Abeni
Avoid conflicts between stmmac PHY_INTF_* and GMAC_INTF_CTRL register
definitions by replacing the PHY_ prefix with GMAC_.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
index e291028ba56e..0d46a6c3f077 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
@@ -37,9 +37,9 @@
#define GMAC_GTXCLK_SEL 0x18
#define GMAC_GTXCLK_SEL_PLL BIT(0)
#define GMAC_INTF_CTRL 0x1c
-#define PHY_INTF_MASK BIT(0)
-#define PHY_INTF_RGMII FIELD_PREP(PHY_INTF_MASK, 1)
-#define PHY_INTF_MII_GMII FIELD_PREP(PHY_INTF_MASK, 0)
+#define GMAC_INTF_MASK BIT(0)
+#define GMAC_INTF_RGMII FIELD_PREP(GMAC_INTF_MASK, 1)
+#define GMAC_INTF_MII_GMII FIELD_PREP(GMAC_INTF_MASK, 0)
#define GMAC_TXCLK_OEN 0x20
#define TXCLK_DIR_MASK BIT(0)
#define TXCLK_DIR_OUTPUT FIELD_PREP(TXCLK_DIR_MASK, 0)
@@ -58,13 +58,13 @@ static int thead_dwmac_set_phy_if(struct plat_stmmacenet_data *plat)
switch (plat->phy_interface) {
case PHY_INTERFACE_MODE_MII:
- phyif = PHY_INTF_MII_GMII;
+ phyif = GMAC_INTF_MII_GMII;
break;
case PHY_INTERFACE_MODE_RGMII:
case PHY_INTERFACE_MODE_RGMII_ID:
case PHY_INTERFACE_MODE_RGMII_TXID:
case PHY_INTERFACE_MODE_RGMII_RXID:
- phyif = PHY_INTF_RGMII;
+ phyif = GMAC_INTF_RGMII;
break;
default:
dev_err(dwmac->dev, "unsupported phy interface %s\n",
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next 2/2] net: stmmac: report active PHY interface
2026-01-28 10:47 [PATCH net-next 0/2] net: stmmac: report active phy interface Russell King (Oracle)
2026-01-28 10:48 ` [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions Russell King (Oracle)
@ 2026-01-28 10:48 ` Russell King (Oracle)
2026-01-28 14:14 ` Maxime Chevallier
2026-01-30 2:50 ` [PATCH net-next 0/2] net: stmmac: report active phy interface patchwork-bot+netdevbpf
2 siblings, 1 reply; 6+ messages in thread
From: Russell King (Oracle) @ 2026-01-28 10:48 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Drew Fustini,
Eric Dumazet, Fu Wei, Guo Ren, Jakub Kicinski, linux-arm-kernel,
linux-riscv, linux-stm32, netdev, Paolo Abeni
Report the active PHY interface from the point of view of the dwmac
hardware to the kernel log, where the core supports reading this.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/common.h | 6 +++
.../ethernet/stmicro/stmmac/dwmac1000_dma.c | 2 +
.../net/ethernet/stmicro/stmmac/dwmac4_dma.c | 2 +
.../net/ethernet/stmicro/stmmac/dwxgmac2.h | 1 +
.../ethernet/stmicro/stmmac/dwxgmac2_dma.c | 1 +
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 52 +++++++++++++++++++
6 files changed, 64 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h
index 49df46be3669..1c5a4af85b58 100644
--- a/drivers/net/ethernet/stmicro/stmmac/common.h
+++ b/drivers/net/ethernet/stmicro/stmmac/common.h
@@ -323,6 +323,10 @@ struct stmmac_safety_stats {
#define PHY_INTF_SEL_SMII 6
#define PHY_INTF_SEL_REVMII 7
+/* XGMAC uses a different encoding - from the AgileX5 documentation */
+#define PHY_INTF_GMII 0
+#define PHY_INTF_RGMII 1
+
/* MSI defines */
#define STMMAC_MSI_VEC_MAX 32
@@ -512,6 +516,8 @@ struct dma_features {
unsigned int dbgmem;
/* Number of Policing Counters */
unsigned int pcsel;
+ /* Active PHY interface, PHY_INTF_SEL_xxx */
+ u8 actphyif;
};
/* RX Buffer size must be multiple of 4/8/16 bytes */
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
index a62f1271b6ea..3ac7a7949529 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
@@ -239,6 +239,8 @@ static int dwmac1000_get_hw_feature(void __iomem *ioaddr,
/* Alternate (enhanced) DESC mode */
dma_cap->enh_desc = (hw_cap & DMA_HW_FEAT_ENHDESSEL) >> 24;
+ dma_cap->actphyif = FIELD_GET(DMA_HW_FEAT_ACTPHYIF, hw_cap);
+
return 0;
}
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
index aaa83e9ff4f0..60b880cdd9da 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
@@ -382,6 +382,8 @@ static int dwmac4_get_hw_feature(void __iomem *ioaddr,
dma_cap->vlins = (hw_cap & GMAC_HW_FEAT_SAVLANINS) >> 27;
dma_cap->arpoffsel = (hw_cap & GMAC_HW_FEAT_ARPOFFSEL) >> 9;
+ dma_cap->actphyif = FIELD_GET(DMA_HW_FEAT_ACTPHYIF, hw_cap);
+
/* MAC HW feature1 */
hw_cap = readl(ioaddr + GMAC_HW_FEATURE1);
dma_cap->l3l4fnum = (hw_cap & GMAC_HW_FEAT_L3L4FNUM) >> 27;
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
index b5c91c109c43..51943705a2b0 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h
@@ -107,6 +107,7 @@
#define XGMAC_HWFEAT_VXN BIT(29)
#define XGMAC_HWFEAT_SAVLANINS BIT(27)
#define XGMAC_HWFEAT_TSSTSSEL GENMASK(26, 25)
+#define XGMAC_HWFEAT_PHYSEL GENMASK(24, 23)
#define XGMAC_HWFEAT_ADDMACADRSEL GENMASK(22, 18)
#define XGMAC_HWFEAT_RXCOESEL BIT(16)
#define XGMAC_HWFEAT_TXCOESEL BIT(14)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
index 9bb547f3c3c9..03437f1cf3df 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
@@ -364,6 +364,7 @@ static int dwxgmac2_get_hw_feature(void __iomem *ioaddr,
dma_cap->vxn = (hw_cap & XGMAC_HWFEAT_VXN) >> 29;
dma_cap->vlins = (hw_cap & XGMAC_HWFEAT_SAVLANINS) >> 27;
dma_cap->tssrc = (hw_cap & XGMAC_HWFEAT_TSSTSSEL) >> 25;
+ dma_cap->actphyif = FIELD_GET(XGMAC_HWFEAT_PHYSEL, hw_cap);
dma_cap->multi_addr = (hw_cap & XGMAC_HWFEAT_ADDMACADRSEL) >> 18;
dma_cap->rx_coe = (hw_cap & XGMAC_HWFEAT_RXCOESEL) >> 16;
dma_cap->tx_coe = (hw_cap & XGMAC_HWFEAT_TXCOESEL) >> 14;
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 347a0078f622..db0ea48a5637 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -127,6 +127,22 @@ static unsigned int chain_mode;
module_param(chain_mode, int, 0444);
MODULE_PARM_DESC(chain_mode, "To use chain instead of ring mode");
+static const char *stmmac_dwmac_actphyif[8] = {
+ [PHY_INTF_SEL_GMII_MII] = "GMII/MII",
+ [PHY_INTF_SEL_RGMII] = "RGMII",
+ [PHY_INTF_SEL_SGMII] = "SGMII",
+ [PHY_INTF_SEL_TBI] = "TBI",
+ [PHY_INTF_SEL_RMII] = "RMII",
+ [PHY_INTF_SEL_RTBI] = "RTBI",
+ [PHY_INTF_SEL_SMII] = "SMII",
+ [PHY_INTF_SEL_REVMII] = "REVMII",
+};
+
+static const char *stmmac_dwxgmac_phyif[4] = {
+ [PHY_INTF_GMII] = "GMII",
+ [PHY_INTF_RGMII] = "RGMII",
+};
+
static irqreturn_t stmmac_interrupt(int irq, void *dev_id);
/* For MSI interrupts handling */
static irqreturn_t stmmac_mac_interrupt(int irq, void *dev_id);
@@ -7270,6 +7286,41 @@ static void stmmac_service_task(struct work_struct *work)
clear_bit(STMMAC_SERVICE_SCHED, &priv->state);
}
+static void stmmac_print_actphyif(struct stmmac_priv *priv)
+{
+ const char **phyif_table;
+ const char *actphyif_str;
+ size_t phyif_table_size;
+
+ switch (priv->plat->core_type) {
+ case DWMAC_CORE_MAC100:
+ return;
+
+ case DWMAC_CORE_GMAC:
+ case DWMAC_CORE_GMAC4:
+ phyif_table = stmmac_dwmac_actphyif;
+ phyif_table_size = ARRAY_SIZE(stmmac_dwmac_actphyif);
+ break;
+
+ case DWMAC_CORE_XGMAC:
+ phyif_table = stmmac_dwxgmac_phyif;
+ phyif_table_size = ARRAY_SIZE(stmmac_dwxgmac_phyif);
+ break;
+ }
+
+
+ if (priv->dma_cap.actphyif < phyif_table_size)
+ actphyif_str = phyif_table[priv->dma_cap.actphyif];
+ else
+ actphyif_str = NULL;
+
+ if (!actphyif_str)
+ actphyif_str = "unknown";
+
+ dev_info(priv->device, "Active PHY interface: %s (%u)\n",
+ actphyif_str, priv->dma_cap.actphyif);
+}
+
/**
* stmmac_hw_init - Init the MAC device
* @priv: driver private structure
@@ -7326,6 +7377,7 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
else if (priv->dma_cap.rx_coe_type1)
priv->plat->rx_coe = STMMAC_RX_COE_TYPE1;
+ stmmac_print_actphyif(priv);
} else {
dev_info(priv->device, "No HW DMA feature register supported\n");
}
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net-next 2/2] net: stmmac: report active PHY interface
2026-01-28 10:48 ` [PATCH net-next 2/2] net: stmmac: report active PHY interface Russell King (Oracle)
@ 2026-01-28 14:14 ` Maxime Chevallier
0 siblings, 0 replies; 6+ messages in thread
From: Maxime Chevallier @ 2026-01-28 14:14 UTC (permalink / raw)
To: Russell King (Oracle), Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Drew Fustini,
Eric Dumazet, Fu Wei, Guo Ren, Jakub Kicinski, linux-arm-kernel,
linux-riscv, linux-stm32, netdev, Paolo Abeni
Hi,
On 28/01/2026 11:48, Russell King (Oracle) wrote:
> Report the active PHY interface from the point of view of the dwmac
> hardware to the kernel log, where the core supports reading this.
>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tested with dwmac-socfpga on CycloneV :
RGMII interface :
[ 0.898925] socfpga-dwmac ff700000.ethernet: Active PHY interface: RGMII (1)
1000BaseX/SGMII interface connected to Lynx PCS :
[ 1.003223] socfpga-dwmac ff702000.ethernet: Active PHY interface: GMII/MII (0)
Nice.
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Tested-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Thanks,
Maxime
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions
2026-01-28 10:48 ` [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions Russell King (Oracle)
@ 2026-01-28 14:15 ` Maxime Chevallier
0 siblings, 0 replies; 6+ messages in thread
From: Maxime Chevallier @ 2026-01-28 14:15 UTC (permalink / raw)
To: Russell King (Oracle), Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Drew Fustini,
Eric Dumazet, Fu Wei, Guo Ren, Jakub Kicinski, linux-arm-kernel,
linux-riscv, linux-stm32, netdev, Paolo Abeni
Hi,
On 28/01/2026 11:48, Russell King (Oracle) wrote:
> Avoid conflicts between stmmac PHY_INTF_* and GMAC_INTF_CTRL register
> definitions by replacing the PHY_ prefix with GMAC_.
>
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Maxime
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next 0/2] net: stmmac: report active phy interface
2026-01-28 10:47 [PATCH net-next 0/2] net: stmmac: report active phy interface Russell King (Oracle)
2026-01-28 10:48 ` [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions Russell King (Oracle)
2026-01-28 10:48 ` [PATCH net-next 2/2] net: stmmac: report active PHY interface Russell King (Oracle)
@ 2026-01-30 2:50 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-01-30 2:50 UTC (permalink / raw)
To: Russell King
Cc: andrew, alexandre.torgue, andrew+netdev, davem, fustini, edumazet,
wefu, guoren, kuba, linux-arm-kernel, linux-riscv, linux-stm32,
netdev, pabeni
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Wed, 28 Jan 2026 10:47:43 +0000 you wrote:
> The original patch needs dwmac-thead fixed so the PHY_INTF* definitions
> do not clash.
>
> drivers/net/ethernet/stmicro/stmmac/common.h | 6 +++
> drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c | 10 ++---
> .../net/ethernet/stmicro/stmmac/dwmac1000_dma.c | 2 +
> drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c | 2 +
> drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 1 +
> drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 1 +
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 52 ++++++++++++++++++++++
> 7 files changed, 69 insertions(+), 5 deletions(-)
Here is the summary with links:
- [net-next,1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions
https://git.kernel.org/netdev/net-next/c/88afa0dd655c
- [net-next,2/2] net: stmmac: report active PHY interface
https://git.kernel.org/netdev/net-next/c/d9009f72ed88
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-01-30 2:50 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-28 10:47 [PATCH net-next 0/2] net: stmmac: report active phy interface Russell King (Oracle)
2026-01-28 10:48 ` [PATCH net-next 1/2] net: stmmac: thead: avoid conflicts with PHY_INTF_* definitions Russell King (Oracle)
2026-01-28 14:15 ` Maxime Chevallier
2026-01-28 10:48 ` [PATCH net-next 2/2] net: stmmac: report active PHY interface Russell King (Oracle)
2026-01-28 14:14 ` Maxime Chevallier
2026-01-30 2:50 ` [PATCH net-next 0/2] net: stmmac: report active phy interface patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox