* [PATCH net-next 0/3] net: stmmac: add physical port identification support
@ 2025-12-04 16:31 John Madieu
0 siblings, 0 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 16:31 UTC (permalink / raw)
To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree,
John Madieu
This series adds physical port identification support to the stmmac driver,
enabling userspace to query hardware-stable identifiers for network interfaces
via ndo_get_phys_port_id() and ndo_get_phys_port_name().
On systems with multiple ethernet controllers sharing the same driver,
physical port identification provides stable identifiers that persist
across reboots and are independent of interface enumeration order.
This is particularly useful for predictable network interface naming
and for correlating interfaces with physical connectors.
The implementation follows a two-tier approach:
1. Generic stmmac support: Default implementations use the permanent MAC
address as port ID and bus_id for port naming. This provides immediate
benefit for all stmmac-based platforms.
2. Glue driver override: Platform drivers can provide custom callbacks
for hardware-specific identification schemes. The Renesas GBETH driver
implements this to support device tree-based port identification,
addressing cases where hardware lacks unique identification registers.
The Renesas implementation constructs an 8-byte port identifier from:
- Permanent MAC address (if available) or Renesas OUI (74:90:50) as fallback
- Port index from device tree property or ethernet alias
John Madieu (3):
net: stmmac: add physical port identification support
dt-bindings: net: renesas-gbeth: Add port-id property
net: stmmac: dwmac-renesas-gbeth: add physical port identification
.../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++
.../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 ++++++++++++++++++
include/linux/stmmac.h | 5 ++
4 files changed, 134 insertions(+)
--
2.25.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net-next 0/3] net: stmmac: add physical port identification support
@ 2025-12-04 16:37 John Madieu
2025-12-04 17:07 ` Russell King (Oracle)
2025-12-04 21:07 ` Andrew Lunn
0 siblings, 2 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 16:37 UTC (permalink / raw)
To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree,
John Madieu
This series adds physical port identification support to the stmmac driver,
enabling userspace to query hardware-stable identifiers for network interfaces
via ndo_get_phys_port_id() and ndo_get_phys_port_name().
On systems with multiple ethernet controllers sharing the same driver,
physical port identification provides stable identifiers that persist
across reboots and are independent of interface enumeration order.
This is particularly useful for predictable network interface naming
and for correlating interfaces with physical connectors.
The implementation follows a two-tier approach:
1. Generic stmmac support: Default implementations use the permanent MAC
address as port ID and bus_id for port naming. This provides immediate
benefit for all stmmac-based platforms.
2. Glue driver override: Platform drivers can provide custom callbacks
for hardware-specific identification schemes. The Renesas GBETH driver
implements this to support device tree-based port identification,
addressing cases where hardware lacks unique identification registers.
The Renesas implementation constructs an 8-byte port identifier from:
- Permanent MAC address (if available) or Renesas OUI (74:90:50) as fallback
- Port index from device tree property or ethernet alias
John Madieu (3):
net: stmmac: add physical port identification support
dt-bindings: net: renesas-gbeth: Add port-id property
net: stmmac: dwmac-renesas-gbeth: add physical port identification
.../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++
.../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 ++++++++++++++++++
include/linux/stmmac.h | 5 ++
4 files changed, 134 insertions(+)
--
2.25.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net-next 0/3] net: stmmac: add physical port identification support
@ 2025-12-04 16:40 John Madieu
2025-12-04 16:40 ` [PATCH net-next 1/3] " John Madieu
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 16:40 UTC (permalink / raw)
To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree,
John Madieu
This series adds physical port identification support to the stmmac driver,
enabling userspace to query hardware-stable identifiers for network interfaces
via ndo_get_phys_port_id() and ndo_get_phys_port_name().
On systems with multiple ethernet controllers sharing the same driver,
physical port identification provides stable identifiers that persist
across reboots and are independent of interface enumeration order.
This is particularly useful for predictable network interface naming
and for correlating interfaces with physical connectors.
The implementation follows a two-tier approach:
1. Generic stmmac support: Default implementations use the permanent MAC
address as port ID and bus_id for port naming. This provides immediate
benefit for all stmmac-based platforms.
2. Glue driver override: Platform drivers can provide custom callbacks
for hardware-specific identification schemes. The Renesas GBETH driver
implements this to support device tree-based port identification,
addressing cases where hardware lacks unique identification registers.
The Renesas implementation constructs an 8-byte port identifier from:
- Permanent MAC address (if available) or Renesas OUI (74:90:50) as fallback
- Port index from device tree property or ethernet alias
John Madieu (3):
net: stmmac: add physical port identification support
dt-bindings: net: renesas-gbeth: Add port-id property
net: stmmac: dwmac-renesas-gbeth: add physical port identification
.../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++
.../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 ++++++++++++++++++
include/linux/stmmac.h | 5 ++
4 files changed, 134 insertions(+)
--
2.25.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH net-next 1/3] net: stmmac: add physical port identification support
2025-12-04 16:40 [PATCH net-next 0/3] net: stmmac: add physical port identification support John Madieu
@ 2025-12-04 16:40 ` John Madieu
2025-12-04 16:40 ` [PATCH net-next 2/3] dt-bindings: net: renesas-gbeth: Add port-id property John Madieu
` (3 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 16:40 UTC (permalink / raw)
To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree,
John Madieu
Implement ndo_get_phys_port_id and ndo_get_phys_port_name callbacks
to provide physical port identification for all stmmac-based devices.
Default implementations use the permanent MAC address for port ID and
bus_id for port name. Glue drivers can override these by setting
get_phys_port_id and get_phys_port_name callbacks in plat_stmmacenet_data.
Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 +++++++++++++++++++
include/linux/stmmac.h | 5 ++
2 files changed, 59 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 15b0c08ebd877..e8f642c9941b6 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -7151,6 +7151,58 @@ static void stmmac_get_stats64(struct net_device *dev, struct rtnl_link_stats64
stats->rx_missed_errors = priv->xstats.rx_missed_cntr;
}
+/**
+ * stmmac_get_phys_port_id - Get physical port identification
+ * @dev: net device structure
+ * @ppid: pointer to physical port id structure
+ *
+ * Returns a unique physical port identifier. If the platform provides
+ * a custom callback, it is used. Otherwise, the permanent MAC address
+ * serves as the default identifier.
+ *
+ * Return: 0 on success, negative error code otherwise
+ */
+static int stmmac_get_phys_port_id(struct net_device *dev,
+ struct netdev_phys_item_id *ppid)
+{
+ struct stmmac_priv *priv = netdev_priv(dev);
+
+ /* Allow glue driver to override */
+ if (priv->plat->get_phys_port_id)
+ return priv->plat->get_phys_port_id(dev, ppid);
+
+ /* Default: use permanent MAC address as port ID */
+ ppid->id_len = ETH_ALEN;
+ memcpy(ppid->id, dev->perm_addr, ETH_ALEN);
+
+ return 0;
+}
+
+/**
+ * stmmac_get_phys_port_name - Get physical port name
+ * @dev: net device structure
+ * @name: buffer to store the port name
+ * @len: length of the buffer
+ *
+ * Returns a human-readable physical port name. If the platform provides
+ * a custom callback, it is used. Otherwise, a default name based on
+ * the bus_id is generated.
+ *
+ * Return: 0 on success, negative error code otherwise
+ */
+static int stmmac_get_phys_port_name(struct net_device *dev,
+ char *name, size_t len)
+{
+ struct stmmac_priv *priv = netdev_priv(dev);
+
+ /* Allow glue driver to override */
+ if (priv->plat->get_phys_port_name)
+ return priv->plat->get_phys_port_name(dev, name, len);
+
+ /* Default: use bus_id as port identifier */
+ return snprintf(name, len, "p%d", priv->plat->bus_id) >= len ? -EINVAL : 0;
+}
+
static const struct net_device_ops stmmac_netdev_ops = {
.ndo_open = stmmac_open,
.ndo_start_xmit = stmmac_xmit,
@@ -7172,6 +7224,8 @@ static const struct net_device_ops stmmac_netdev_ops = {
.ndo_xsk_wakeup = stmmac_xsk_wakeup,
.ndo_hwtstamp_get = stmmac_hwtstamp_get,
.ndo_hwtstamp_set = stmmac_hwtstamp_set,
+ .ndo_get_phys_port_id = stmmac_get_phys_port_id,
+ .ndo_get_phys_port_name = stmmac_get_phys_port_name,
};
static void stmmac_reset_subtask(struct stmmac_priv *priv)
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index 4f70a6551e68c..2b98c2d354804 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -277,6 +277,11 @@ struct plat_stmmacenet_data {
void (*pcs_exit)(struct stmmac_priv *priv);
struct phylink_pcs *(*select_pcs)(struct stmmac_priv *priv,
phy_interface_t interface);
+ /* Physical port identification callbacks (optional, for glue driver override) */
+ int (*get_phys_port_id)(struct net_device *ndev,
+ struct netdev_phys_item_id *ppid);
+ int (*get_phys_port_name)(struct net_device *ndev,
+ char *name, size_t len);
void *bsp_priv;
struct clk *stmmac_clk;
struct clk *pclk;
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH net-next 2/3] dt-bindings: net: renesas-gbeth: Add port-id property
2025-12-04 16:40 [PATCH net-next 0/3] net: stmmac: add physical port identification support John Madieu
2025-12-04 16:40 ` [PATCH net-next 1/3] " John Madieu
@ 2025-12-04 16:40 ` John Madieu
2025-12-09 20:34 ` Rob Herring
2025-12-04 16:40 ` [PATCH net-next 3/3] net: stmmac: dwmac-renesas-gbeth: add physical port identification John Madieu
` (2 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: John Madieu @ 2025-12-04 16:40 UTC (permalink / raw)
To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree,
John Madieu
Add optional port-id property to identify ethernet ports on RZ/V2H
SoCs. The hardware doesn't provide unique identification registers
for multiple ethernet instances, so this property allows explicit
port identification from the device tree.
Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
.../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml b/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml
index bd53ab300f500..bb59c6a925d3f 100644
--- a/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml
+++ b/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml
@@ -117,6 +117,23 @@ properties:
- description: AXI power-on system reset
- description: AHB reset
+ renesas,port-id:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Optional unique port identifier for this ethernet interface.
+ Used for physical port identification (phys_port_id, phys_port_name).
+ If not specified, the ethernet alias index is used as fallback.
+ minimum: 0
+ maximum: 255
+
+ renesas,port-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Optional custom name for the physical port. Used by
+ ndo_get_phys_port_name() for interface naming.
+ If not specified, "p<N>" format is used where N is the port-id
+ or ethernet alias index.
+
pcs-handle:
description:
phandle pointing to a PCS sub-node compatible with
@@ -230,6 +247,8 @@ examples:
snps,txpbl = <32>;
snps,rxpbl = <32>;
phy-handle = <&phy0>;
+ renesas,port-id = <0>;
+ renesas,port-name = "mgmt";
stmmac_axi_setup: stmmac-axi-config {
snps,lpi_en;
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH net-next 3/3] net: stmmac: dwmac-renesas-gbeth: add physical port identification
2025-12-04 16:40 [PATCH net-next 0/3] net: stmmac: add physical port identification support John Madieu
2025-12-04 16:40 ` [PATCH net-next 1/3] " John Madieu
2025-12-04 16:40 ` [PATCH net-next 2/3] dt-bindings: net: renesas-gbeth: Add port-id property John Madieu
@ 2025-12-04 16:40 ` John Madieu
2025-12-04 16:55 ` [PATCH net-next 0/3] net: stmmac: add physical port identification support Krzysztof Kozlowski
2025-12-04 17:09 ` Russell King (Oracle)
4 siblings, 0 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 16:40 UTC (permalink / raw)
To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree,
John Madieu
Implement ndo_get_phys_port_id() and ndo_get_phys_port_name() callbacks
for the Renesas RZ/G3E GBETH driver.
The port ID is an 8-byte identifier constructed from:
- Permanent MAC address if available (addr_assign_type == NET_ADDR_PERM)
- Renesas OUI (74:90:50) as fallback for random/generated MACs
- Port index from 'port-id' DT property or ethernet alias
The port name resolution follows this hierarchy:
- 'port-name' DT property if specified (allows custom names like "mgmt")
- "p<N>" format using 'port-id' DT property
- "p<N>" format using ethernet alias index as fallback
Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
.../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-renesas-gbeth.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-renesas-gbeth.c
index bc7bb975803ca..5acb65b0e4f06 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-renesas-gbeth.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-renesas-gbeth.c
@@ -16,7 +16,9 @@
#include <linux/clk.h>
#include <linux/device.h>
#include <linux/module.h>
+#include <linux/netdevice.h>
#include <linux/of.h>
+#include <linux/of_net.h>
#include <linux/pcs-rzn1-miic.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
@@ -91,6 +93,57 @@ static struct phylink_pcs *renesas_gmac_select_pcs(struct stmmac_priv *priv,
return priv->hw->phylink_pcs;
}
+static int renesas_gbeth_get_port_id(struct device *dev)
+{
+ int port_id;
+
+ if (!device_property_read_u32(dev, "renesas,port-id", &port_id))
+ return port_id;
+
+ port_id = of_alias_get_id(dev_of_node(dev), "ethernet");
+
+ return port_id < 0 ? 0 : port_id;
+}
+
+static int renesas_gbeth_get_phys_port_name(struct net_device *ndev,
+ char *name, size_t len)
+{
+ struct stmmac_priv *priv = netdev_priv(ndev);
+ struct renesas_gbeth *gbeth = priv->plat->bsp_priv;
+ const char *port_name;
+
+ if (!device_property_read_string(gbeth->dev, "renesas,port-name", &port_name))
+ return snprintf(name, len, "%s", port_name) >= len ? -EINVAL : 0;
+
+ return snprintf(name, len, "p%d", renesas_gbeth_get_port_id(gbeth->dev)) >= len ? -EINVAL : 0;
+}
+
+static int renesas_gbeth_get_phys_port_id(struct net_device *ndev,
+ struct netdev_phys_item_id *ppid)
+{
+ struct stmmac_priv *priv = netdev_priv(ndev);
+ struct renesas_gbeth *gbeth = priv->plat->bsp_priv;
+ u8 *id = ppid->id;
+
+ if (ndev->addr_assign_type == NET_ADDR_PERM) {
+ memcpy(id, ndev->perm_addr, ETH_ALEN);
+ } else {
+ /* Fallback: Renesas OUI prefix (74:90:50) */
+ id[0] = 0x74;
+ id[1] = 0x90;
+ id[2] = 0x50;
+ id[3] = 0x00;
+ id[4] = 0x00;
+ id[5] = 0x00;
+ }
+
+ id[6] = renesas_gbeth_get_port_id(gbeth->dev) & 0xff;
+ id[7] = 0x00;
+ ppid->id_len = 8;
+
+ return 0;
+}
+
static int renesas_gbeth_init(struct platform_device *pdev, void *priv)
{
struct plat_stmmacenet_data *plat_dat;
@@ -194,6 +247,9 @@ static int renesas_gbeth_probe(struct platform_device *pdev)
plat_dat->select_pcs = renesas_gmac_select_pcs;
}
+ plat_dat->get_phys_port_id = renesas_gbeth_get_phys_port_id;
+ plat_dat->get_phys_port_name = renesas_gbeth_get_phys_port_name;
+
return devm_stmmac_pltfr_probe(pdev, plat_dat, &stmmac_res);
}
--
2.25.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH net-next 0/3] net: stmmac: add physical port identification support
2025-12-04 16:40 [PATCH net-next 0/3] net: stmmac: add physical port identification support John Madieu
` (2 preceding siblings ...)
2025-12-04 16:40 ` [PATCH net-next 3/3] net: stmmac: dwmac-renesas-gbeth: add physical port identification John Madieu
@ 2025-12-04 16:55 ` Krzysztof Kozlowski
2025-12-04 17:02 ` John Madieu
2025-12-04 17:09 ` Russell King (Oracle)
4 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-04 16:55 UTC (permalink / raw)
To: John Madieu, prabhakar.mahadev-lad.rj, andrew+netdev, davem,
edumazet, kuba, pabeni, robh, krzk+dt, conor+dt, geert+renesas
Cc: biju.das.jz, claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree
On 04/12/2025 17:40, John Madieu wrote:
> This series adds physical port identification support to the stmmac driver,
> enabling userspace to query hardware-stable identifiers for network interfaces
> via ndo_get_phys_port_id() and ndo_get_phys_port_name().
>
> On systems with multiple ethernet controllers sharing the same driver,
> physical port identification provides stable identifiers that persist
> across reboots and are independent of interface enumeration order.
> This is particularly useful for predictable network interface naming
> and for correlating interfaces with physical connectors.
>
> The implementation follows a two-tier approach:
>
Please slow down. You sent three copies of the same.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH net-next 0/3] net: stmmac: add physical port identification support
2025-12-04 16:55 ` [PATCH net-next 0/3] net: stmmac: add physical port identification support Krzysztof Kozlowski
@ 2025-12-04 17:02 ` John Madieu
0 siblings, 0 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 17:02 UTC (permalink / raw)
To: Krzysztof Kozlowski, Prabhakar Mahadev Lad, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, geert+renesas@glider.be
Cc: Biju Das, Claudiu.Beznea, linux@armlinux.org.uk, magnus.damm,
mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com,
netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
devicetree@vger.kernel.org
Hi Krystof,
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: Thursday, December 4, 2025 5:55 PM
> To: John Madieu <john.madieu.xa@bp.renesas.com>; Prabhakar Mahadev Lad
> <prabhakar.mahadev-lad.rj@bp.renesas.com>; andrew+netdev@lunn.ch;
> davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
> pabeni@redhat.com; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; geert+renesas@glider.be
> Cc: Biju Das <biju.das.jz@bp.renesas.com>; Claudiu.Beznea
> <claudiu.beznea@tuxon.dev>; linux@armlinux.org.uk; magnus.damm
> <magnus.damm@gmail.com>; mcoquelin.stm32@gmail.com;
> alexandre.torgue@foss.st.com; netdev@vger.kernel.org; linux-renesas-
> soc@vger.kernel.org; devicetree@vger.kernel.org
> Subject: Re: [PATCH net-next 0/3] net: stmmac: add physical port
> identification support
>
> On 04/12/2025 17:40, John Madieu wrote:
> > This series adds physical port identification support to the stmmac
> > driver, enabling userspace to query hardware-stable identifiers for
> > network interfaces via ndo_get_phys_port_id() and
> ndo_get_phys_port_name().
> >
> > On systems with multiple ethernet controllers sharing the same driver,
> > physical port identification provides stable identifiers that persist
> > across reboots and are independent of interface enumeration order.
> > This is particularly useful for predictable network interface naming
> > and for correlating interfaces with physical connectors.
> >
> > The implementation follows a two-tier approach:
> >
>
>
> Please slow down. You sent three copies of the same.
I'm sorry for the noise. Something wrong happened while sending
the patch series out. Will take care next time.
Regard,
John
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net-next 0/3] net: stmmac: add physical port identification support
2025-12-04 16:37 John Madieu
@ 2025-12-04 17:07 ` Russell King (Oracle)
2025-12-04 17:09 ` John Madieu
2025-12-04 21:07 ` Andrew Lunn
1 sibling, 1 reply; 13+ messages in thread
From: Russell King (Oracle) @ 2025-12-04 17:07 UTC (permalink / raw)
To: John Madieu
Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas, biju.das.jz,
claudiu.beznea, magnus.damm, mcoquelin.stm32, alexandre.torgue,
netdev, linux-renesas-soc, devicetree
See comments on the previous posting of this patch series (why it was
reposted in as little as six minutes apart...)
netdev has a rule: allow 24 hours between re-posts.
netdev has another rule: don't post new material, except for bug fixes
for the net tree, while netdev is closed (in other words, while the
merge window is open.) If you wish to post new material, mark it RFC.
Thanks.
On Thu, Dec 04, 2025 at 04:37:26PM +0000, John Madieu wrote:
> This series adds physical port identification support to the stmmac driver,
> enabling userspace to query hardware-stable identifiers for network interfaces
> via ndo_get_phys_port_id() and ndo_get_phys_port_name().
>
> On systems with multiple ethernet controllers sharing the same driver,
> physical port identification provides stable identifiers that persist
> across reboots and are independent of interface enumeration order.
> This is particularly useful for predictable network interface naming
> and for correlating interfaces with physical connectors.
>
> The implementation follows a two-tier approach:
>
> 1. Generic stmmac support: Default implementations use the permanent MAC
> address as port ID and bus_id for port naming. This provides immediate
> benefit for all stmmac-based platforms.
>
> 2. Glue driver override: Platform drivers can provide custom callbacks
> for hardware-specific identification schemes. The Renesas GBETH driver
> implements this to support device tree-based port identification,
> addressing cases where hardware lacks unique identification registers.
>
> The Renesas implementation constructs an 8-byte port identifier from:
> - Permanent MAC address (if available) or Renesas OUI (74:90:50) as fallback
> - Port index from device tree property or ethernet alias
>
>
> John Madieu (3):
> net: stmmac: add physical port identification support
> dt-bindings: net: renesas-gbeth: Add port-id property
> net: stmmac: dwmac-renesas-gbeth: add physical port identification
>
> .../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++
> .../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
> .../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 ++++++++++++++++++
> include/linux/stmmac.h | 5 ++
> 4 files changed, 134 insertions(+)
>
> --
> 2.25.1
>
>
--
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] 13+ messages in thread
* Re: [PATCH net-next 0/3] net: stmmac: add physical port identification support
2025-12-04 16:40 [PATCH net-next 0/3] net: stmmac: add physical port identification support John Madieu
` (3 preceding siblings ...)
2025-12-04 16:55 ` [PATCH net-next 0/3] net: stmmac: add physical port identification support Krzysztof Kozlowski
@ 2025-12-04 17:09 ` Russell King (Oracle)
4 siblings, 0 replies; 13+ messages in thread
From: Russell King (Oracle) @ 2025-12-04 17:09 UTC (permalink / raw)
To: John Madieu
Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas, biju.das.jz,
claudiu.beznea, magnus.damm, mcoquelin.stm32, alexandre.torgue,
netdev, linux-renesas-soc, devicetree
Not another bloody posting of this.
Stop it right now. Just stop.
I've reviewed your first series. You are diluting the potential reviews
of your code, making it harder for people to review and track what
people have said.
So just stop this stupid behaviour right away. Do not re-post until
after the merge window is over. Read the networking maintainence
documentation. Documentation/process/maintainer-netdev.rst
On Thu, Dec 04, 2025 at 05:40:25PM +0100, John Madieu wrote:
> This series adds physical port identification support to the stmmac driver,
> enabling userspace to query hardware-stable identifiers for network interfaces
> via ndo_get_phys_port_id() and ndo_get_phys_port_name().
>
> On systems with multiple ethernet controllers sharing the same driver,
> physical port identification provides stable identifiers that persist
> across reboots and are independent of interface enumeration order.
> This is particularly useful for predictable network interface naming
> and for correlating interfaces with physical connectors.
>
> The implementation follows a two-tier approach:
>
> 1. Generic stmmac support: Default implementations use the permanent MAC
> address as port ID and bus_id for port naming. This provides immediate
> benefit for all stmmac-based platforms.
>
> 2. Glue driver override: Platform drivers can provide custom callbacks
> for hardware-specific identification schemes. The Renesas GBETH driver
> implements this to support device tree-based port identification,
> addressing cases where hardware lacks unique identification registers.
>
> The Renesas implementation constructs an 8-byte port identifier from:
> - Permanent MAC address (if available) or Renesas OUI (74:90:50) as fallback
> - Port index from device tree property or ethernet alias
>
>
> John Madieu (3):
> net: stmmac: add physical port identification support
> dt-bindings: net: renesas-gbeth: Add port-id property
> net: stmmac: dwmac-renesas-gbeth: add physical port identification
>
> .../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++
> .../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
> .../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 ++++++++++++++++++
> include/linux/stmmac.h | 5 ++
> 4 files changed, 134 insertions(+)
>
> --
> 2.25.1
>
>
--
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] 13+ messages in thread
* RE: [PATCH net-next 0/3] net: stmmac: add physical port identification support
2025-12-04 17:07 ` Russell King (Oracle)
@ 2025-12-04 17:09 ` John Madieu
0 siblings, 0 replies; 13+ messages in thread
From: John Madieu @ 2025-12-04 17:09 UTC (permalink / raw)
To: Russell King
Cc: Prabhakar Mahadev Lad, andrew+netdev@lunn.ch, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
geert+renesas@glider.be, Biju Das, Claudiu.Beznea, magnus.damm,
mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com,
netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
devicetree@vger.kernel.org
Hi Russell,
> -----Original Message-----
> From: Russell King <linux@armlinux.org.uk>
> Sent: Thursday, December 4, 2025 6:07 PM
> To: John Madieu <john.madieu.xa@bp.renesas.com>
> Cc: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>;
> andrew+netdev@lunn.ch; davem@davemloft.net; edumazet@google.com;
> kuba@kernel.org; pabeni@redhat.com; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; geert+renesas@glider.be; Biju Das
> <biju.das.jz@bp.renesas.com>; Claudiu.Beznea <claudiu.beznea@tuxon.dev>;
> magnus.damm <magnus.damm@gmail.com>; mcoquelin.stm32@gmail.com;
> alexandre.torgue@foss.st.com; netdev@vger.kernel.org; linux-renesas-
> soc@vger.kernel.org; devicetree@vger.kernel.org
> Subject: Re: [PATCH net-next 0/3] net: stmmac: add physical port
> identification support
>
> See comments on the previous posting of this patch series (why it was
> reposted in as little as six minutes apart...)
>
> netdev has a rule: allow 24 hours between re-posts.
>
> netdev has another rule: don't post new material, except for bug fixes for
> the net tree, while netdev is closed (in other words, while the merge
> window is open.) If you wish to post new material, mark it RFC.
>
> Thanks.
>
Sorry for duplicated series. Something went wrong while sending out the series.
This won't happen next time.
Regards,
John
> On Thu, Dec 04, 2025 at 04:37:26PM +0000, John Madieu wrote:
> > This series adds physical port identification support to the stmmac
> > driver, enabling userspace to query hardware-stable identifiers for
> > network interfaces via ndo_get_phys_port_id() and
> ndo_get_phys_port_name().
> >
> > On systems with multiple ethernet controllers sharing the same driver,
> > physical port identification provides stable identifiers that persist
> > across reboots and are independent of interface enumeration order.
> > This is particularly useful for predictable network interface naming
> > and for correlating interfaces with physical connectors.
> >
> > The implementation follows a two-tier approach:
> >
> > 1. Generic stmmac support: Default implementations use the permanent MAC
> > address as port ID and bus_id for port naming. This provides
> immediate
> > benefit for all stmmac-based platforms.
> >
> > 2. Glue driver override: Platform drivers can provide custom callbacks
> > for hardware-specific identification schemes. The Renesas GBETH
> driver
> > implements this to support device tree-based port identification,
> > addressing cases where hardware lacks unique identification
> registers.
> >
> > The Renesas implementation constructs an 8-byte port identifier from:
> > - Permanent MAC address (if available) or Renesas OUI (74:90:50) as
> > fallback
> > - Port index from device tree property or ethernet alias
> >
> >
> > John Madieu (3):
> > net: stmmac: add physical port identification support
> > dt-bindings: net: renesas-gbeth: Add port-id property
> > net: stmmac: dwmac-renesas-gbeth: add physical port identification
> >
> > .../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++
> > .../stmicro/stmmac/dwmac-renesas-gbeth.c | 56 +++++++++++++++++++
> > .../net/ethernet/stmicro/stmmac/stmmac_main.c | 54 ++++++++++++++++++
> > include/linux/stmmac.h | 5 ++
> > 4 files changed, 134 insertions(+)
> >
> > --
> > 2.25.1
> >
> >
>
> --
> 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] 13+ messages in thread
* Re: [PATCH net-next 0/3] net: stmmac: add physical port identification support
2025-12-04 16:37 John Madieu
2025-12-04 17:07 ` Russell King (Oracle)
@ 2025-12-04 21:07 ` Andrew Lunn
1 sibling, 0 replies; 13+ messages in thread
From: Andrew Lunn @ 2025-12-04 21:07 UTC (permalink / raw)
To: John Madieu
Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, robh, krzk+dt, conor+dt, geert+renesas, biju.das.jz,
claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree
On Thu, Dec 04, 2025 at 04:37:26PM +0000, John Madieu wrote:
> This series adds physical port identification support to the stmmac driver,
> enabling userspace to query hardware-stable identifiers for network interfaces
> via ndo_get_phys_port_id() and ndo_get_phys_port_name().
>
> On systems with multiple ethernet controllers sharing the same driver,
> physical port identification provides stable identifiers that persist
> across reboots and are independent of interface enumeration order.
> This is particularly useful for predictable network interface naming
> and for correlating interfaces with physical connectors.
>
> The implementation follows a two-tier approach:
>
> 1. Generic stmmac support: Default implementations use the permanent MAC
> address as port ID and bus_id for port naming. This provides immediate
> benefit for all stmmac-based platforms.
This information is already available to user space via
sysfs. udev/systemd can use this. How does systemd currently name
these interfaces using its rules?
https://www.freedesktop.org/software/systemd/man/latest/systemd.net-naming-scheme.html
> 2. Glue driver override: Platform drivers can provide custom callbacks
> for hardware-specific identification schemes. The Renesas GBETH driver
> implements this to support device tree-based port identification,
> addressing cases where hardware lacks unique identification registers.
Why is the MAC address not sufficient? What makes Renesas GBETH
special so it needs something different?
Andrew
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH net-next 2/3] dt-bindings: net: renesas-gbeth: Add port-id property
2025-12-04 16:40 ` [PATCH net-next 2/3] dt-bindings: net: renesas-gbeth: Add port-id property John Madieu
@ 2025-12-09 20:34 ` Rob Herring
0 siblings, 0 replies; 13+ messages in thread
From: Rob Herring @ 2025-12-09 20:34 UTC (permalink / raw)
To: John Madieu
Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
pabeni, krzk+dt, conor+dt, geert+renesas, biju.das.jz,
claudiu.beznea, linux, magnus.damm, mcoquelin.stm32,
alexandre.torgue, netdev, linux-renesas-soc, devicetree
On Thu, Dec 04, 2025 at 05:40:27PM +0100, John Madieu wrote:
> Add optional port-id property to identify ethernet ports on RZ/V2H
> SoCs. The hardware doesn't provide unique identification registers
> for multiple ethernet instances, so this property allows explicit
> port identification from the device tree.
>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> ---
> .../bindings/net/renesas,rzv2h-gbeth.yaml | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml b/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml
> index bd53ab300f500..bb59c6a925d3f 100644
> --- a/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml
> +++ b/Documentation/devicetree/bindings/net/renesas,rzv2h-gbeth.yaml
> @@ -117,6 +117,23 @@ properties:
> - description: AXI power-on system reset
> - description: AHB reset
>
> + renesas,port-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Optional unique port identifier for this ethernet interface.
> + Used for physical port identification (phys_port_id, phys_port_name).
> + If not specified, the ethernet alias index is used as fallback.
We already have a common way with aliases, why do we want a vendor
specific way?
> + minimum: 0
> + maximum: 255
> +
> + renesas,port-name:
> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Optional custom name for the physical port. Used by
> + ndo_get_phys_port_name() for interface naming.
> + If not specified, "p<N>" format is used where N is the port-id
> + or ethernet alias index.
Other vendors don't want to name their ports?
Maybe 'label' should be used here (for both parts? Generally, the value
of label shouldn't be an ABI though. So if for example, software needs
to find the 'mgmt' port then we should find another way to define that.
Rob
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-12-09 20:34 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-04 16:40 [PATCH net-next 0/3] net: stmmac: add physical port identification support John Madieu
2025-12-04 16:40 ` [PATCH net-next 1/3] " John Madieu
2025-12-04 16:40 ` [PATCH net-next 2/3] dt-bindings: net: renesas-gbeth: Add port-id property John Madieu
2025-12-09 20:34 ` Rob Herring
2025-12-04 16:40 ` [PATCH net-next 3/3] net: stmmac: dwmac-renesas-gbeth: add physical port identification John Madieu
2025-12-04 16:55 ` [PATCH net-next 0/3] net: stmmac: add physical port identification support Krzysztof Kozlowski
2025-12-04 17:02 ` John Madieu
2025-12-04 17:09 ` Russell King (Oracle)
-- strict thread matches above, loose matches on Subject: below --
2025-12-04 16:37 John Madieu
2025-12-04 17:07 ` Russell King (Oracle)
2025-12-04 17:09 ` John Madieu
2025-12-04 21:07 ` Andrew Lunn
2025-12-04 16:31 John Madieu
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).