* [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support
@ 2026-05-19 10:14 Minda Chen
2026-05-19 10:14 ` [net-next v4 1/5] dt-bindings: net: starfive,jh7110-dwmac: Remove jh8100 Minda Chen
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-19 10:14 UTC (permalink / raw)
To: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev
Cc: linux-kernel, linux-stm32, devicetree, Minda Chen
jhb100 is a Starfive new RISC-V SoC for datacenter BMC (BaseBoard
Managent Controller). Similar with Aspeed 27x0.
The jhb100 minimal system upstream is in progress:
https://patchwork.kernel.org/project/linux-riscv/cover/20260508053632.818548-1-changhuang.liang@starfivetech.com/
jhb100 GMAC still using designware GMAC core like JH7100 and JH7110,
and contains 2 SGMII interfaces, 1 RGMII/RMII interface, 1 RMII
interface. In JH7100/JH7110 dwmac-starfive.c have supported RGMII/RMII
interface. So require to add SGMII support to dwmac-starfive.c for JHB100.
SGMII serdes PHY has been integrated in JHB100 and do not have driver
setting.
In JHB100 EVB board, SGMII connect with motorcomm YT8531s external PHY
and support RJ45 ethernet port.
The patch base net-next (base commit list below)
previous patch link:
v2: https://patchwork.kernel.org/project/netdevbpf/cover/20260417024523.107786-1-minda.chen@starfivetech.com/
v3: https://patchwork.kernel.org/project/netdevbpf/cover/20260507094115.8355-1-minda.chen@starfivetech.com/
changes
v4: patch1 and patch5 add review tag
patch 3 add sgmii clock dts setting more elegant and simple
patch 4 remove redundant compatible and (void *)
v3:
patch2: Add jhb100 attach to jh7110 compatibible, remove redundant commit
message. just descript the jhb100 hardware.
patch3: Add oneOf 5 clocks / 6 clocks to claim the clocks and make it
pass yaml test.
patch4: Add review tag and unused tag to phy interface.
v2:
1. patch1 Add the remove reason
2. patch2 rename rx clock to sgmii_rx
3. patch4 confirm sgmii rx clock exist, or will probe error
sgmii will not call starfive_dwmac_set_mode()
Minda Chen (5):
dt-bindings: net: starfive,jh7110-dwmac: Remove jh8100
dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support
dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk
net: stmmac: starfive: Add jhb100 SGMII interface
net: stmmac: starfive: Add STMMAC_FLAG_SPH_DISABLE flag
.../bindings/net/starfive,jh7110-dwmac.yaml | 31 ++++++----
.../ethernet/stmicro/stmmac/dwmac-starfive.c | 58 ++++++++++++++-----
2 files changed, 64 insertions(+), 25 deletions(-)
base-commit: 7af2a94f4dcf53a45f3be5870ebeb195402866d1
--
2.17.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [net-next v4 1/5] dt-bindings: net: starfive,jh7110-dwmac: Remove jh8100
2026-05-19 10:14 [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support Minda Chen
@ 2026-05-19 10:14 ` Minda Chen
2026-05-19 10:14 ` [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support Minda Chen
` (3 subsequent siblings)
4 siblings, 0 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-19 10:14 UTC (permalink / raw)
To: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev
Cc: linux-kernel, linux-stm32, devicetree, Minda Chen
Remove jh8100 dt-bindings because do not support it now.
StarFive have stopped jh8100 developing and will not release
it outside.
Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
.../bindings/net/starfive,jh7110-dwmac.yaml | 28 ++++---------------
1 file changed, 5 insertions(+), 23 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
index 313a15331661..0d1962980f57 100644
--- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
@@ -30,10 +30,6 @@ properties:
- items:
- const: starfive,jh7110-dwmac
- const: snps,dwmac-5.20
- - items:
- - const: starfive,jh8100-dwmac
- - const: starfive,jh7110-dwmac
- - const: snps,dwmac-5.20
reg:
maxItems: 1
@@ -120,25 +116,11 @@ allOf:
minItems: 3
maxItems: 3
- if:
- properties:
- compatible:
- contains:
- const: starfive,jh8100-dwmac
- then:
- properties:
- resets:
- maxItems: 1
-
- reset-names:
- const: stmmaceth
- else:
- properties:
- resets:
- minItems: 2
-
- reset-names:
- minItems: 2
+ resets:
+ minItems: 2
+
+ reset-names:
+ minItems: 2
unevaluatedProperties: false
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support
2026-05-19 10:14 [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support Minda Chen
2026-05-19 10:14 ` [net-next v4 1/5] dt-bindings: net: starfive,jh7110-dwmac: Remove jh8100 Minda Chen
@ 2026-05-19 10:14 ` Minda Chen
2026-05-19 16:26 ` Conor Dooley
2026-05-30 0:43 ` sashiko-bot
2026-05-19 10:14 ` [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk Minda Chen
` (2 subsequent siblings)
4 siblings, 2 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-19 10:14 UTC (permalink / raw)
To: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev
Cc: linux-kernel, linux-stm32, devicetree, Minda Chen
The jhb100 GMAC still using Synopsys designware GMAC core.
hardware features are similar with jh7100.
Add jhb100 GMAC compatible and reset, interrupts features.
jhb100 dwmac has only one reset signal and one interrupt
line.
Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
---
.../bindings/net/starfive,jh7110-dwmac.yaml | 51 ++++++++++++++-----
1 file changed, 37 insertions(+), 14 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
index 0d1962980f57..06aeaa0f6f00 100644
--- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
@@ -30,6 +30,10 @@ properties:
- items:
- const: starfive,jh7110-dwmac
- const: snps,dwmac-5.20
+ - items:
+ - const: starfive,jhb100-dwmac
+ - const: starfive,jh7110-dwmac
+ - const: snps,dwmac-5.20
reg:
maxItems: 1
@@ -107,20 +111,39 @@ allOf:
contains:
const: starfive,jh7110-dwmac
then:
- properties:
- interrupts:
- minItems: 3
- maxItems: 3
-
- interrupt-names:
- minItems: 3
- maxItems: 3
-
- resets:
- minItems: 2
-
- reset-names:
- minItems: 2
+ if:
+ properties:
+ compatible:
+ contains:
+ const: starfive,jhb100-dwmac
+ then:
+ properties:
+ interrupts:
+ maxItems: 1
+
+ interrupt-names:
+ const: macirq
+
+ resets:
+ maxItems: 1
+
+ reset-names:
+ const: stmmaceth
+ else:
+ properties:
+ interrupts:
+ minItems: 3
+ maxItems: 3
+
+ interrupt-names:
+ minItems: 3
+ maxItems: 3
+
+ resets:
+ minItems: 2
+
+ reset-names:
+ minItems: 2
unevaluatedProperties: false
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk
2026-05-19 10:14 [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support Minda Chen
2026-05-19 10:14 ` [net-next v4 1/5] dt-bindings: net: starfive,jh7110-dwmac: Remove jh8100 Minda Chen
2026-05-19 10:14 ` [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support Minda Chen
@ 2026-05-19 10:14 ` Minda Chen
2026-05-20 7:01 ` Krzysztof Kozlowski
2026-05-30 0:43 ` sashiko-bot
2026-05-19 10:14 ` [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface Minda Chen
2026-05-19 10:14 ` [net-next v4 5/5] net: stmmac: starfive: Add STMMAC_FLAG_SPH_DISABLE flag Minda Chen
4 siblings, 2 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-19 10:14 UTC (permalink / raw)
To: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev
Cc: linux-kernel, linux-stm32, devicetree, Minda Chen
jhb100 SGMII interface tx/rx mac clock is split and require to
set clock rate in 10M/100M/1000M speed. So dts need to add a
new rx clock in code, dts and dt binding doc.
So in jhb100 SGMII interface contain 6 clocks, RMII/RGMII
interface still contail 5 clocks.
Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
---
.../devicetree/bindings/net/starfive,jh7110-dwmac.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
index 06aeaa0f6f00..fdcc61c65f87 100644
--- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
@@ -39,20 +39,24 @@ properties:
maxItems: 1
clocks:
+ minItems: 5
items:
- description: GMAC main clock
- description: GMAC AHB clock
- description: PTP clock
- description: TX clock
- description: GTX clock
+ - description: SGMII RX clock
clock-names:
+ minItems: 5
items:
- const: stmmaceth
- const: pclk
- const: ptp_ref
- const: tx
- const: gtx
+ - const: sgmii_rx
starfive,tx-use-rgmii-clk:
description:
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface
2026-05-19 10:14 [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support Minda Chen
` (2 preceding siblings ...)
2026-05-19 10:14 ` [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk Minda Chen
@ 2026-05-19 10:14 ` Minda Chen
2026-05-19 14:17 ` Andrew Lunn
2026-05-19 10:14 ` [net-next v4 5/5] net: stmmac: starfive: Add STMMAC_FLAG_SPH_DISABLE flag Minda Chen
4 siblings, 1 reply; 13+ messages in thread
From: Minda Chen @ 2026-05-19 10:14 UTC (permalink / raw)
To: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev
Cc: linux-kernel, linux-stm32, devicetree, Minda Chen
Add jhb100 compatible and SGMII support. jhb100 soc contains
2 SGMII interfaces and integrated with serdes PHY. SGMII with
split TX/RX MAC clock and need to set 2.5M/25M/125M TX/RX clock
rate in 10M/100M/1000M speed mode.
Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
Reviewed-by: Sai Krishna <saikrishnag@marvell.com>
---
.../ethernet/stmicro/stmmac/dwmac-starfive.c | 58 ++++++++++++++-----
1 file changed, 44 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
index 16b955a6d77b..eb882ec14c8d 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
@@ -26,6 +26,7 @@ struct starfive_dwmac_data {
struct starfive_dwmac {
struct device *dev;
const struct starfive_dwmac_data *data;
+ struct clk *sgmii_rx;
};
static int starfive_dwmac_set_mode(struct plat_stmmacenet_data *plat_dat)
@@ -68,6 +69,25 @@ static int starfive_dwmac_set_mode(struct plat_stmmacenet_data *plat_dat)
return 0;
}
+static int stmmac_starfive_sgmii_set_clk_rate(void *bsp_priv, struct clk *clk_tx_i,
+ phy_interface_t __maybe_unused interface,
+ int speed)
+{
+ struct starfive_dwmac *dwmac = bsp_priv;
+ long rate = rgmii_clock(speed);
+ int ret;
+
+ /* MAC clock rate the same as RGMII */
+ if (rate < 0)
+ return 0;
+
+ ret = clk_set_rate(clk_tx_i, rate);
+ if (ret)
+ return ret;
+
+ return clk_set_rate(dwmac->sgmii_rx, rate);
+}
+
static int starfive_dwmac_probe(struct platform_device *pdev)
{
struct plat_stmmacenet_data *plat_dat;
@@ -102,23 +122,33 @@ static int starfive_dwmac_probe(struct platform_device *pdev)
return dev_err_probe(&pdev->dev, PTR_ERR(clk_gtx),
"error getting gtx clock\n");
- /* Generally, the rgmii_tx clock is provided by the internal clock,
- * which needs to match the corresponding clock frequency according
- * to different speeds. If the rgmii_tx clock is provided by the
- * external rgmii_rxin, there is no need to configure the clock
- * internally, because rgmii_rxin will be adaptively adjusted.
- */
- if (!device_property_read_bool(&pdev->dev, "starfive,tx-use-rgmii-clk"))
- plat_dat->set_clk_tx_rate = stmmac_set_clk_tx_rate;
-
dwmac->dev = &pdev->dev;
- plat_dat->flags |= STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP;
plat_dat->bsp_priv = dwmac;
- plat_dat->dma_cfg->dche = true;
+ if (plat_dat->phy_interface == PHY_INTERFACE_MODE_SGMII) {
+ dwmac->sgmii_rx = devm_clk_get_enabled(&pdev->dev, "sgmii_rx");
+ if (IS_ERR(dwmac->sgmii_rx))
+ return dev_err_probe(&pdev->dev,
+ PTR_ERR(dwmac->sgmii_rx),
+ "error getting sgmii rx clock\n");
+ plat_dat->set_clk_tx_rate = stmmac_starfive_sgmii_set_clk_rate;
+ } else {
+ /*
+ * Generally, the rgmii_tx clock is provided by the internal clock,
+ * which needs to match the corresponding clock frequency according
+ * to different speeds. If the rgmii_tx clock is provided by the
+ * external rgmii_rxin, there is no need to configure the clock
+ * internally, because rgmii_rxin will be adaptively adjusted.
+ */
+ if (!device_property_read_bool(&pdev->dev, "starfive,tx-use-rgmii-clk"))
+ plat_dat->set_clk_tx_rate = stmmac_set_clk_tx_rate;
+
+ err = starfive_dwmac_set_mode(plat_dat);
+ if (err)
+ return err;
+ }
- err = starfive_dwmac_set_mode(plat_dat);
- if (err)
- return err;
+ plat_dat->flags |= STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP;
+ plat_dat->dma_cfg->dche = true;
return stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
}
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [net-next v4 5/5] net: stmmac: starfive: Add STMMAC_FLAG_SPH_DISABLE flag
2026-05-19 10:14 [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support Minda Chen
` (3 preceding siblings ...)
2026-05-19 10:14 ` [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface Minda Chen
@ 2026-05-19 10:14 ` Minda Chen
4 siblings, 0 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-19 10:14 UTC (permalink / raw)
To: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev
Cc: linux-kernel, linux-stm32, devicetree, Minda Chen
Add default disable split header flag in all the starfive
soc.
Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
index eb882ec14c8d..6a887260d5ee 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
@@ -147,7 +147,7 @@ static int starfive_dwmac_probe(struct platform_device *pdev)
return err;
}
- plat_dat->flags |= STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP;
+ plat_dat->flags |= (STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP | STMMAC_FLAG_SPH_DISABLE);
plat_dat->dma_cfg->dche = true;
return stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface
2026-05-19 10:14 ` [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface Minda Chen
@ 2026-05-19 14:17 ` Andrew Lunn
2026-05-20 7:16 ` Minda Chen
0 siblings, 1 reply; 13+ messages in thread
From: Andrew Lunn @ 2026-05-19 14:17 UTC (permalink / raw)
To: Minda Chen
Cc: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev, linux-kernel, linux-stm32, devicetree
> +static int stmmac_starfive_sgmii_set_clk_rate(void *bsp_priv, struct clk *clk_tx_i,
> + phy_interface_t __maybe_unused interface,
> + int speed)
> +{
> + struct starfive_dwmac *dwmac = bsp_priv;
> + long rate = rgmii_clock(speed);
> + int ret;
> +
> + /* MAC clock rate the same as RGMII */
> + if (rate < 0)
> + return 0;
You probably should return the error code, because something has gone
wrong, you have been asked to do a rate you don't support.
> + ret = clk_set_rate(clk_tx_i, rate);
> + if (ret)
> + return ret;
> +
> + return clk_set_rate(dwmac->sgmii_rx, rate);
> +}
> +
> static int starfive_dwmac_probe(struct platform_device *pdev)
> {
> struct plat_stmmacenet_data *plat_dat;
> @@ -102,23 +122,33 @@ static int starfive_dwmac_probe(struct platform_device *pdev)
> return dev_err_probe(&pdev->dev, PTR_ERR(clk_gtx),
> "error getting gtx clock\n");
>
> - /* Generally, the rgmii_tx clock is provided by the internal clock,
> - * which needs to match the corresponding clock frequency according
> - * to different speeds. If the rgmii_tx clock is provided by the
> - * external rgmii_rxin, there is no need to configure the clock
> - * internally, because rgmii_rxin will be adaptively adjusted.
> - */
> - if (!device_property_read_bool(&pdev->dev, "starfive,tx-use-rgmii-clk"))
> - plat_dat->set_clk_tx_rate = stmmac_set_clk_tx_rate;
> -
> dwmac->dev = &pdev->dev;
> - plat_dat->flags |= STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP;
> plat_dat->bsp_priv = dwmac;
> - plat_dat->dma_cfg->dche = true;
> + if (plat_dat->phy_interface == PHY_INTERFACE_MODE_SGMII) {
Does the PCS support 1000BaseX? It is not needed now, but it is
something to keep in mind, try to avoid making to code too SGMII
specific when it might need to be more generic to support 1000BaseX as
well.
Andrew
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support
2026-05-19 10:14 ` [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support Minda Chen
@ 2026-05-19 16:26 ` Conor Dooley
2026-05-30 0:43 ` sashiko-bot
1 sibling, 0 replies; 13+ messages in thread
From: Conor Dooley @ 2026-05-19 16:26 UTC (permalink / raw)
To: Minda Chen
Cc: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski, netdev,
linux-kernel, linux-stm32, devicetree
[-- Attachment #1: Type: text/plain, Size: 2464 bytes --]
On Tue, May 19, 2026 at 06:14:33PM +0800, Minda Chen wrote:
> The jhb100 GMAC still using Synopsys designware GMAC core.
> hardware features are similar with jh7100.
> Add jhb100 GMAC compatible and reset, interrupts features.
> jhb100 dwmac has only one reset signal and one interrupt
> line.
>
> Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable
> ---
> .../bindings/net/starfive,jh7110-dwmac.yaml | 51 ++++++++++++++-----
> 1 file changed, 37 insertions(+), 14 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> index 0d1962980f57..06aeaa0f6f00 100644
> --- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> +++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> @@ -30,6 +30,10 @@ properties:
> - items:
> - const: starfive,jh7110-dwmac
> - const: snps,dwmac-5.20
> + - items:
> + - const: starfive,jhb100-dwmac
> + - const: starfive,jh7110-dwmac
> + - const: snps,dwmac-5.20
>
> reg:
> maxItems: 1
> @@ -107,20 +111,39 @@ allOf:
> contains:
> const: starfive,jh7110-dwmac
> then:
> - properties:
> - interrupts:
> - minItems: 3
> - maxItems: 3
> -
> - interrupt-names:
> - minItems: 3
> - maxItems: 3
> -
> - resets:
> - minItems: 2
> -
> - reset-names:
> - minItems: 2
> + if:
> + properties:
> + compatible:
> + contains:
> + const: starfive,jhb100-dwmac
> + then:
> + properties:
> + interrupts:
> + maxItems: 1
> +
> + interrupt-names:
> + const: macirq
> +
> + resets:
> + maxItems: 1
> +
> + reset-names:
> + const: stmmaceth
> + else:
> + properties:
> + interrupts:
> + minItems: 3
> + maxItems: 3
> +
> + interrupt-names:
> + minItems: 3
> + maxItems: 3
> +
> + resets:
> + minItems: 2
> +
> + reset-names:
> + minItems: 2
>
> unevaluatedProperties: false
>
> --
> 2.17.1
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk
2026-05-19 10:14 ` [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk Minda Chen
@ 2026-05-20 7:01 ` Krzysztof Kozlowski
2026-05-20 7:18 ` Minda Chen
2026-05-30 0:43 ` sashiko-bot
1 sibling, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-05-20 7:01 UTC (permalink / raw)
To: Minda Chen
Cc: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev, linux-kernel, linux-stm32, devicetree
On Tue, May 19, 2026 at 06:14:34PM +0800, Minda Chen wrote:
> jhb100 SGMII interface tx/rx mac clock is split and require to
> set clock rate in 10M/100M/1000M speed. So dts need to add a
> new rx clock in code, dts and dt binding doc.
> So in jhb100 SGMII interface contain 6 clocks, RMII/RGMII
> interface still contail 5 clocks.
If this is for jhb100, why isn't this part of previous patch?
Does this need constraints per variant of the device?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface
2026-05-19 14:17 ` Andrew Lunn
@ 2026-05-20 7:16 ` Minda Chen
0 siblings, 0 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-20 7:16 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
devicetree@vger.kernel.org
>
> > +static int stmmac_starfive_sgmii_set_clk_rate(void *bsp_priv, struct clk
> *clk_tx_i,
> > + phy_interface_t __maybe_unused interface,
> > + int speed)
> > +{
> > + struct starfive_dwmac *dwmac = bsp_priv;
> > + long rate = rgmii_clock(speed);
> > + int ret;
> > +
> > + /* MAC clock rate the same as RGMII */
> > + if (rate < 0)
> > + return 0;
>
> You probably should return the error code, because something has gone wrong,
> you have been asked to do a rate you don't support.
>
Okay. I think return -EINVAL is correct.
> > + ret = clk_set_rate(clk_tx_i, rate);
> > + if (ret)
> > + return ret;
> > +
> > + return clk_set_rate(dwmac->sgmii_rx, rate); }
> > +
> > static int starfive_dwmac_probe(struct platform_device *pdev) {
> > struct plat_stmmacenet_data *plat_dat; @@ -102,23 +122,33 @@ static
> > int starfive_dwmac_probe(struct platform_device *pdev)
> > return dev_err_probe(&pdev->dev, PTR_ERR(clk_gtx),
> > "error getting gtx clock\n");
> >
> > - /* Generally, the rgmii_tx clock is provided by the internal clock,
> > - * which needs to match the corresponding clock frequency according
> > - * to different speeds. If the rgmii_tx clock is provided by the
> > - * external rgmii_rxin, there is no need to configure the clock
> > - * internally, because rgmii_rxin will be adaptively adjusted.
> > - */
> > - if (!device_property_read_bool(&pdev->dev, "starfive,tx-use-rgmii-clk"))
> > - plat_dat->set_clk_tx_rate = stmmac_set_clk_tx_rate;
> > -
> > dwmac->dev = &pdev->dev;
> > - plat_dat->flags |= STMMAC_FLAG_EN_TX_LPI_CLK_PHY_CAP;
> > plat_dat->bsp_priv = dwmac;
> > - plat_dat->dma_cfg->dche = true;
> > + if (plat_dat->phy_interface == PHY_INTERFACE_MODE_SGMII) {
>
> Does the PCS support 1000BaseX? It is not needed now, but it is something to
> keep in mind, try to avoid making to code too SGMII specific when it might need
> to be more generic to support 1000BaseX as well.
>
> Andrew
No. do NOT support 1000BaseX in jhb100 soc. I think 1000BaseX need new serdes PHY
be Intergrated it and maybe new setting.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk
2026-05-20 7:01 ` Krzysztof Kozlowski
@ 2026-05-20 7:18 ` Minda Chen
0 siblings, 0 replies; 13+ messages in thread
From: Minda Chen @ 2026-05-20 7:18 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Alexandre Torgue, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Emil Renner Berthing, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
devicetree@vger.kernel.org
>
> On Tue, May 19, 2026 at 06:14:34PM +0800, Minda Chen wrote:
> > jhb100 SGMII interface tx/rx mac clock is split and require to set
> > clock rate in 10M/100M/1000M speed. So dts need to add a new rx clock
> > in code, dts and dt binding doc.
> > So in jhb100 SGMII interface contain 6 clocks, RMII/RGMII interface
> > still contail 5 clocks.
>
> If this is for jhb100, why isn't this part of previous patch?
>
> Does this need constraints per variant of the device?
>
> Best regards,
> Krzysztof
Okay. I will merge this to patch2.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support
2026-05-19 10:14 ` [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support Minda Chen
2026-05-19 16:26 ` Conor Dooley
@ 2026-05-30 0:43 ` sashiko-bot
1 sibling, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-05-30 0:43 UTC (permalink / raw)
To: Minda Chen; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incorrect fallback compatibility for `starfive,jhb100-dwmac` and nested schema logic
--
commit 6b46c7eda188eefbc105849442bf373d3049d603
Author: Minda Chen <minda.chen@starfivetech.com>
dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support
This commit adds device tree bindings for the jhb100 GMAC. It notes
that the hardware is similar to jh7100 but only has one reset signal
and one interrupt line.
> diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> --- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> +++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> @@ -30,6 +30,10 @@ properties:
> - items:
> - const: starfive,jh7110-dwmac
> - const: snps,dwmac-5.20
> + - items:
> + - const: starfive,jhb100-dwmac
> + - const: starfive,jh7110-dwmac
> + - const: snps,dwmac-5.20
Is it correct to use starfive,jh7110-dwmac as a fallback compatible string
here?
A fallback compatible implies that an older OS driver written for the jh7110
can successfully drive the jhb100 hardware. Since the jh7110 expects 3
interrupts and 2 resets, won't an older driver fail to probe the jhb100
because of missing required resources?
[ ... ]
> @@ -107,20 +111,39 @@ allOf:
> contains:
> const: starfive,jh7110-dwmac
> then:
> - properties:
> - interrupts:
> - minItems: 3
> - maxItems: 3
> -
> - interrupt-names:
> - minItems: 3
> - maxItems: 3
> -
> - resets:
> - minItems: 2
> -
> - reset-names:
> - minItems: 2
> + if:
> + properties:
> + compatible:
> + contains:
> + const: starfive,jhb100-dwmac
> + then:
> + properties:
> + interrupts:
> + maxItems: 1
Because of the fallback compatible, the schema patch nests the jhb100
constraints inside the jh7110 'if' block in allOf.
If starfive,jh7110-dwmac is removed from the jhb100 compatible list, could
these constraints be defined in an independent 'if' block instead?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260519101436.111476-1-minda.chen@starfivetech.com?part=2
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk
2026-05-19 10:14 ` [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk Minda Chen
2026-05-20 7:01 ` Krzysztof Kozlowski
@ 2026-05-30 0:43 ` sashiko-bot
1 sibling, 0 replies; 13+ messages in thread
From: sashiko-bot @ 2026-05-30 0:43 UTC (permalink / raw)
To: Minda Chen; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Relaxed dt-binding schema for older generations allows invalid configurations to pass validation.
--
commit f6b7d4c26e8b69a59239f5f0ceb9244961ac4979
Author: Minda Chen <minda.chen@starfivetech.com>
dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk
This commit adds a 6th clock, the SGMII RX clock, to the starfive,jh7110-dwmac
binding for the jhb100 SGMII interface. It updates the global clocks and
clock-names properties to allow up to 6 items.
> diff --git a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> index 06aeaa0f6f009..fdcc61c65f87d 100644
> --- a/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
> +++ b/Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
[ ... ]
> @@ -39,20 +39,24 @@ properties:
> maxItems: 1
>
> clocks:
> + minItems: 5
> items:
> - description: GMAC main clock
> - description: GMAC AHB clock
> - description: PTP clock
> - description: TX clock
> - description: GTX clock
> + - description: SGMII RX clock
>
> clock-names:
> + minItems: 5
> items:
> - const: stmmaceth
> - const: pclk
> - const: ptp_ref
> - const: tx
> - const: gtx
> + - const: sgmii_rx
Should the schema restrict older generations to a maximum of 5 clocks using
an allOf block?
Since the global list now contains 6 items, the schema implicitly allows up to
6 clocks for all compatible strings. If prior hardware generations or standard
RMII/RGMII variants only support 5 clocks, they could silently pass validation
even if an invalid 6th clock is mistakenly specified in their device tree node.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260519101436.111476-1-minda.chen@starfivetech.com?part=3
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-05-30 0:43 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-19 10:14 [net-next v4 0/5] Add StarFive jhb100 soc SGMII GMAC support Minda Chen
2026-05-19 10:14 ` [net-next v4 1/5] dt-bindings: net: starfive,jh7110-dwmac: Remove jh8100 Minda Chen
2026-05-19 10:14 ` [net-next v4 2/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 support Minda Chen
2026-05-19 16:26 ` Conor Dooley
2026-05-30 0:43 ` sashiko-bot
2026-05-19 10:14 ` [net-next v4 3/5] dt-bindings: net: starfive,jh7110-dwmac: Add jhb100 sgmii rx clk Minda Chen
2026-05-20 7:01 ` Krzysztof Kozlowski
2026-05-20 7:18 ` Minda Chen
2026-05-30 0:43 ` sashiko-bot
2026-05-19 10:14 ` [net-next v4 4/5] net: stmmac: starfive: Add jhb100 SGMII interface Minda Chen
2026-05-19 14:17 ` Andrew Lunn
2026-05-20 7:16 ` Minda Chen
2026-05-19 10:14 ` [net-next v4 5/5] net: stmmac: starfive: Add STMMAC_FLAG_SPH_DISABLE flag Minda Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox