* [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing
@ 2026-02-09 9:46 lizhi2
2026-02-09 9:48 ` [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control lizhi2
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: lizhi2 @ 2026-02-09 9:46 UTC (permalink / raw)
To: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt,
conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue,
rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel
Cc: ningyu, linmin, pinkesh.vaghela, weishangjuan, Zhi Li
From: Zhi Li <lizhi2@eswincomputing.com>
v1 -> v2:
- Update eswin,eic7700-eth.yaml:
- Drop the vendor-specific properties eswin,rx-clk-invert and
eswin,tx-clk-invert.
- Introduce a distinct compatible string
"eswin,eic7700-qos-eth-clk-inversion" to describe MAC instances that
require internal RGMII clock inversion.
This models the SoC-specific hardware difference directly via the
compatible string and avoids per-board configuration properties.
- Change rx-internal-delay-ps and tx-internal-delay-ps from enum to
minimum/maximum to reflect the actual delay range (0-2400 ps)
- Add reference to High-Speed Subsystem documentation in eswin,hsp-sp-csr
description. The HSP CSR block is described in Chapter 10
("High-Speed Interface") of the EIC7700X SoC Technical Reference Manual,
Part 4 (EIC7700X_SoC_Technical_Reference_Manual_Part4.pdf):
https://github.com/eswincomputing/EIC7700X-SoC-Technical-Reference-Manual/releases
- Update dwmac-eic7700.c:
- Remove handling of eswin,rx-clk-invert and eswin,tx-clk-invert
properties.
- Select RX clock inversion based on the new
"eswin,eic7700-qos-eth-clk-inversion" compatible string, using
match data to apply the required configuration for affected MAC
instances (eth1).
- Link to v1: https://lore.kernel.org/lkml/20260109080601.1262-1-lizhi2@eswincomputing.com/
Zhi Li (2):
dt-bindings: ethernet: eswin: add clock sampling control
net: stmmac: eic7700: enable clocks before syscon access and correct
RX sampling timing
.../bindings/net/eswin,eic7700-eth.yaml | 63 ++++++--
.../ethernet/stmicro/stmmac/dwmac-eic7700.c | 152 +++++++++++++-----
2 files changed, 170 insertions(+), 45 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 12+ messages in thread* [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control 2026-02-09 9:46 [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing lizhi2 @ 2026-02-09 9:48 ` lizhi2 2026-02-09 13:21 ` Andrew Lunn 2026-02-09 9:48 ` [PATCH v2 2/2] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing lizhi2 ` (2 subsequent siblings) 3 siblings, 1 reply; 12+ messages in thread From: lizhi2 @ 2026-02-09 9:48 UTC (permalink / raw) To: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel Cc: ningyu, linmin, pinkesh.vaghela, weishangjuan, Zhi Li From: Zhi Li <lizhi2@eswincomputing.com> The second Ethernet controller (eth1) on the EIC7700 SoC may experience RX data sampling issues at high speed due to EIC7700-specific receive clock to data skew at the MAC input. On the EIC7700 SoC, the second Ethernet controller (eth1) requires inversion of the internal RGMII receive clock in order to meet RX data sampling timing at high speed. Describe this SoC-specific difference by introducing a distinct compatible string for MAC instances that require internal clock inversion, allowing the driver to select the appropriate configuration without relying on per-board vendor-specific properties. The rx-internal-delay-ps and tx-internal-delay-ps properties now use minimum and maximum constraints to reflect the actual hardware delay range (0-2400 ps) applied in 20 ps steps. This relaxes the binding validation compared to the previous enum-based definition and avoids regressions for existing DTBs while keeping the same hardware limits. In addition, the binding now includes additional background information about the HSP CSR registers accessed by the MAC. The TXD and RXD delay control registers are included so the driver can explicitly clear any residual configuration left by the bootloader. Background reference for the High-Speed Subsystem and HSP CSR block is available in Chapter 10 ("High-Speed Interface") of the EIC7700X SoC Technical Reference Manual, Part 4 (EIC7700X_SoC_Technical_Reference_Manual_Part4.pdf): https://github.com/eswincomputing/EIC7700X-SoC-Technical-Reference-Manual/releases There are currently no in-tree users of the EIC7700 Ethernet driver, so these changes are safe. Fixes: 888bd0eca93c ("dt-bindings: ethernet: eswin: Document for EIC7700 SoC") Signed-off-by: Zhi Li <lizhi2@eswincomputing.com> --- .../bindings/net/eswin,eic7700-eth.yaml | 63 ++++++++++++++++--- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/Documentation/devicetree/bindings/net/eswin,eic7700-eth.yaml b/Documentation/devicetree/bindings/net/eswin,eic7700-eth.yaml index 91e8cd1db67b..8a7035dfd4a2 100644 --- a/Documentation/devicetree/bindings/net/eswin,eic7700-eth.yaml +++ b/Documentation/devicetree/bindings/net/eswin,eic7700-eth.yaml @@ -20,6 +20,7 @@ select: contains: enum: - eswin,eic7700-qos-eth + - eswin,eic7700-qos-eth-clk-inversion required: - compatible @@ -28,9 +29,13 @@ allOf: properties: compatible: - items: - - const: eswin,eic7700-qos-eth - - const: snps,dwmac-5.20 + oneOf: + - items: + - const: eswin,eic7700-qos-eth + - const: snps,dwmac-5.20 + - items: + - const: eswin,eic7700-qos-eth-clk-inversion + - const: snps,dwmac-5.20 reg: maxItems: 1 @@ -63,16 +68,27 @@ properties: - const: stmmaceth rx-internal-delay-ps: - enum: [0, 200, 600, 1200, 1600, 1800, 2000, 2200, 2400] + minimum: 0 + maximum: 2400 tx-internal-delay-ps: - enum: [0, 200, 600, 1200, 1600, 1800, 2000, 2200, 2400] + minimum: 0 + maximum: 2400 eswin,hsp-sp-csr: description: HSP CSR is to control and get status of different high-speed peripherals (such as Ethernet, USB, SATA, etc.) via register, which can tune board-level's parameters of PHY, etc. + + Additional background information about the High-Speed Subsystem + and the HSP CSR block is available in Chapter 10 ("High-Speed Interface") + of the EIC7700X SoC Technical Reference Manual, Part 4 + (EIC7700X_SoC_Technical_Reference_Manual_Part4.pdf). The manual is + publicly available at + https://github.com/eswincomputing/EIC7700X-SoC-Technical-Reference-Manual/releases + + This reference is provided for background information only. $ref: /schemas/types.yaml#/definitions/phandle-array items: - items: @@ -81,7 +97,9 @@ properties: or external clock selection - description: Offset of AXI clock controller Low-Power request register + - description: Offset of register controlling TXD delay - description: Offset of register controlling TX/RX clock delay + - description: Offset of register controlling RXD delay required: - compatible @@ -111,17 +129,44 @@ examples: interrupts = <61>; interrupt-names = "macirq"; phy-mode = "rgmii-id"; - phy-handle = <&phy0>; + phy-handle = <&gmac0_phy0>; resets = <&reset 95>; reset-names = "stmmaceth"; + rx-internal-delay-ps = <20>; + tx-internal-delay-ps = <100>; + eswin,hsp-sp-csr = <&hsp_sp_csr 0x100 0x108 0x114 0x118 0x11c>; + snps,axi-config = <&stmmac_axi_setup_gmac0>; + snps,aal; + snps,fixed-burst; + snps,tso; + stmmac_axi_setup_gmac0: stmmac-axi-config { + snps,blen = <0 0 0 0 16 8 4>; + snps,rd_osr_lmt = <2>; + snps,wr_osr_lmt = <2>; + }; + }; + + ethernet@50410000 { + compatible = "eswin,eic7700-qos-eth-clk-inversion", "snps,dwmac-5.20"; + reg = <0x50410000 0x10000>; + clocks = <&d0_clock 186>, <&d0_clock 171>, <&d0_clock 40>, + <&d0_clock 194>; + clock-names = "axi", "cfg", "stmmaceth", "tx"; + interrupt-parent = <&plic>; + interrupts = <70>; + interrupt-names = "macirq"; + phy-mode = "rgmii-rxid"; + phy-handle = <&gmac1_phy0>; + resets = <&reset 94>; + reset-names = "stmmaceth"; rx-internal-delay-ps = <200>; tx-internal-delay-ps = <200>; - eswin,hsp-sp-csr = <&hsp_sp_csr 0x100 0x108 0x118>; - snps,axi-config = <&stmmac_axi_setup>; + eswin,hsp-sp-csr = <&hsp_sp_csr 0x200 0x208 0x214 0x218 0x21c>; + snps,axi-config = <&stmmac_axi_setup_gmac1>; snps,aal; snps,fixed-burst; snps,tso; - stmmac_axi_setup: stmmac-axi-config { + stmmac_axi_setup_gmac1: stmmac-axi-config { snps,blen = <0 0 0 0 16 8 4>; snps,rd_osr_lmt = <2>; snps,wr_osr_lmt = <2>; -- 2.25.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control 2026-02-09 9:48 ` [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control lizhi2 @ 2026-02-09 13:21 ` Andrew Lunn 0 siblings, 0 replies; 12+ messages in thread From: Andrew Lunn @ 2026-02-09 13:21 UTC (permalink / raw) To: lizhi2 Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan > The rx-internal-delay-ps and tx-internal-delay-ps properties now use > minimum and maximum constraints to reflect the actual hardware delay > range (0-2400 ps) applied in 20 ps steps. > rx-internal-delay-ps: > - enum: [0, 200, 600, 1200, 1600, 1800, 2000, 2200, 2400] > + minimum: 0 > + maximum: 2400 multipleOf: 20 Also, 2400 / 20 = 120. Is the real maximum 127 * 20 = 2540? > @@ -111,17 +129,44 @@ examples: > interrupts = <61>; > interrupt-names = "macirq"; > phy-mode = "rgmii-id"; > - phy-handle = <&phy0>; > + phy-handle = <&gmac0_phy0>; > resets = <&reset 95>; > reset-names = "stmmaceth"; > + rx-internal-delay-ps = <20>; > + tx-internal-delay-ps = <100>; I would not include them in the example. You are going to get developers blindly copying this into real DT. A well designed board should not need delays. Andrew ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 2/2] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing 2026-02-09 9:46 [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing lizhi2 2026-02-09 9:48 ` [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control lizhi2 @ 2026-02-09 9:48 ` lizhi2 2026-02-09 13:34 ` Andrew Lunn 2026-02-09 13:36 ` [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 " Andrew Lunn 2026-02-20 18:37 ` Marcel Ziswiler 3 siblings, 1 reply; 12+ messages in thread From: lizhi2 @ 2026-02-09 9:48 UTC (permalink / raw) To: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel Cc: ningyu, linmin, pinkesh.vaghela, weishangjuan, Zhi Li From: Zhi Li <lizhi2@eswincomputing.com> The second Ethernet controller (eth1) on the Eswin EIC7700 SoC may fail to sample RX data correctly at Gigabit speed due to EIC7700-specific receive clock to data skew at the MAC input in the silicon. The existing internal delay configuration does not provide sufficient adjustment range to compensate for this condition at 1000Mbps. Update the EIC7700 DWMAC glue driver to apply EIC7700-specific clock sampling inversion only during Gigabit operation on MAC instances that require it. TXD and RXD delay registers are explicitly cleared during initialization to override any residual configuration left by the bootloader. All HSP CSR register accesses are performed only after the required clocks are enabled. Fixes: ea77dbbdbc4e ("net: stmmac: add Eswin EIC7700 glue driver") Signed-off-by: Zhi Li <lizhi2@eswincomputing.com> --- .../ethernet/stmicro/stmmac/dwmac-eic7700.c | 152 +++++++++++++----- 1 file changed, 116 insertions(+), 36 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c index bcb8e000e720..f6a99784596b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c @@ -28,20 +28,37 @@ /* * TX/RX Clock Delay Bit Masks: - * - TX Delay: bits [14:8] — TX_CLK delay (unit: 0.1ns per bit) - * - RX Delay: bits [30:24] — RX_CLK delay (unit: 0.1ns per bit) + * - TX Delay: bits [14:8] — TX_CLK delay (unit: 0.02ns per bit) + * - TX Invert : bit [15] + * - RX Delay: bits [30:24] — RX_CLK delay (unit: 0.02ns per bit) + * - RX Invert : bit [31] */ #define EIC7700_ETH_TX_ADJ_DELAY GENMASK(14, 8) #define EIC7700_ETH_RX_ADJ_DELAY GENMASK(30, 24) +#define EIC7700_ETH_TX_INV_DELAY BIT(15) +#define EIC7700_ETH_RX_INV_DELAY BIT(31) -#define EIC7700_MAX_DELAY_UNIT 0x7F +#define EIC7700_MAX_DELAY_STEPS 0x7F static const char * const eic7700_clk_names[] = { "tx", "axi", "cfg", }; +struct eic7700_dwmac_data { + bool rgmii_rx_clk_invert; +}; + struct eic7700_qos_priv { + struct device *dev; struct plat_stmmacenet_data *plat_dat; + struct regmap *eic7700_hsp_regmap; + u32 eth_axi_lp_ctrl_offset; + u32 eth_phy_ctrl_offset; + u32 eth_txd_offset; + u32 eth_clk_offset; + u32 eth_rxd_offset; + u32 eth_clk_dly_param; + bool eth_rx_clk_inv; }; static int eic7700_clks_config(void *priv, bool enabled) @@ -61,8 +78,27 @@ static int eic7700_clks_config(void *priv, bool enabled) static int eic7700_dwmac_init(struct device *dev, void *priv) { struct eic7700_qos_priv *dwc = priv; + u32 eth_phy_ctrl_regset; + int ret = 0; + + ret = eic7700_clks_config(dwc, true); + if (ret) + return ret; + + regmap_read(dwc->eic7700_hsp_regmap, dwc->eth_phy_ctrl_offset, + ð_phy_ctrl_regset); + eth_phy_ctrl_regset |= + (EIC7700_ETH_TX_CLK_SEL | EIC7700_ETH_PHY_INTF_SELI); + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_phy_ctrl_offset, + eth_phy_ctrl_regset); + + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_axi_lp_ctrl_offset, + EIC7700_ETH_CSYSREQ_VAL); + + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_txd_offset, 0); + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_rxd_offset, 0); - return eic7700_clks_config(dwc, true); + return ret; } static void eic7700_dwmac_exit(struct device *dev, void *priv) @@ -88,17 +124,33 @@ static int eic7700_dwmac_resume(struct device *dev, void *priv) return ret; } +static void eic7700_dwmac_fix_speed(void *priv, int speed, unsigned int mode) +{ + struct eic7700_qos_priv *dwc = (struct eic7700_qos_priv *)priv; + u32 dly_param = dwc->eth_clk_dly_param; + + switch (speed) { + case SPEED_1000: + if (dwc->eth_rx_clk_inv) + dly_param |= EIC7700_ETH_RX_INV_DELAY; + break; + case SPEED_100: + case SPEED_10: + break; + default: + dev_err(dwc->dev, "invalid speed %u\n", speed); + break; + } + + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_clk_offset, dly_param); +} + static int eic7700_dwmac_probe(struct platform_device *pdev) { + const struct eic7700_dwmac_data *data; struct plat_stmmacenet_data *plat_dat; struct stmmac_resources stmmac_res; struct eic7700_qos_priv *dwc_priv; - struct regmap *eic7700_hsp_regmap; - u32 eth_axi_lp_ctrl_offset; - u32 eth_phy_ctrl_offset; - u32 eth_phy_ctrl_regset; - u32 eth_rxd_dly_offset; - u32 eth_dly_param = 0; u32 delay_ps; int i, ret; @@ -116,13 +168,23 @@ static int eic7700_dwmac_probe(struct platform_device *pdev) if (!dwc_priv) return -ENOMEM; + dwc_priv->dev = &pdev->dev; + + data = device_get_match_data(&pdev->dev); + if (!data) + return dev_err_probe(&pdev->dev, + -EINVAL, "no match data found\n"); + + dwc_priv->eth_rx_clk_inv = data->rgmii_rx_clk_invert; + /* Read rx-internal-delay-ps and update rx_clk delay */ if (!of_property_read_u32(pdev->dev.of_node, "rx-internal-delay-ps", &delay_ps)) { - u32 val = min(delay_ps / 100, EIC7700_MAX_DELAY_UNIT); + u32 val = min(delay_ps / 20, EIC7700_MAX_DELAY_STEPS); - eth_dly_param &= ~EIC7700_ETH_RX_ADJ_DELAY; - eth_dly_param |= FIELD_PREP(EIC7700_ETH_RX_ADJ_DELAY, val); + dwc_priv->eth_clk_dly_param &= ~EIC7700_ETH_RX_ADJ_DELAY; + dwc_priv->eth_clk_dly_param |= + FIELD_PREP(EIC7700_ETH_RX_ADJ_DELAY, val); } else { return dev_err_probe(&pdev->dev, -EINVAL, "missing required property rx-internal-delay-ps\n"); @@ -131,55 +193,58 @@ static int eic7700_dwmac_probe(struct platform_device *pdev) /* Read tx-internal-delay-ps and update tx_clk delay */ if (!of_property_read_u32(pdev->dev.of_node, "tx-internal-delay-ps", &delay_ps)) { - u32 val = min(delay_ps / 100, EIC7700_MAX_DELAY_UNIT); + u32 val = min(delay_ps / 20, EIC7700_MAX_DELAY_STEPS); - eth_dly_param &= ~EIC7700_ETH_TX_ADJ_DELAY; - eth_dly_param |= FIELD_PREP(EIC7700_ETH_TX_ADJ_DELAY, val); + dwc_priv->eth_clk_dly_param &= ~EIC7700_ETH_TX_ADJ_DELAY; + dwc_priv->eth_clk_dly_param |= + FIELD_PREP(EIC7700_ETH_TX_ADJ_DELAY, val); } else { return dev_err_probe(&pdev->dev, -EINVAL, "missing required property tx-internal-delay-ps\n"); } - eic7700_hsp_regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, - "eswin,hsp-sp-csr"); - if (IS_ERR(eic7700_hsp_regmap)) + dwc_priv->eic7700_hsp_regmap = + syscon_regmap_lookup_by_phandle(pdev->dev.of_node, + "eswin,hsp-sp-csr"); + if (IS_ERR(dwc_priv->eic7700_hsp_regmap)) return dev_err_probe(&pdev->dev, - PTR_ERR(eic7700_hsp_regmap), + PTR_ERR(dwc_priv->eic7700_hsp_regmap), "Failed to get hsp-sp-csr regmap\n"); ret = of_property_read_u32_index(pdev->dev.of_node, "eswin,hsp-sp-csr", - 1, ð_phy_ctrl_offset); + 1, &dwc_priv->eth_phy_ctrl_offset); if (ret) return dev_err_probe(&pdev->dev, ret, "can't get eth_phy_ctrl_offset\n"); - regmap_read(eic7700_hsp_regmap, eth_phy_ctrl_offset, - ð_phy_ctrl_regset); - eth_phy_ctrl_regset |= - (EIC7700_ETH_TX_CLK_SEL | EIC7700_ETH_PHY_INTF_SELI); - regmap_write(eic7700_hsp_regmap, eth_phy_ctrl_offset, - eth_phy_ctrl_regset); - ret = of_property_read_u32_index(pdev->dev.of_node, "eswin,hsp-sp-csr", - 2, ð_axi_lp_ctrl_offset); + 2, &dwc_priv->eth_axi_lp_ctrl_offset); if (ret) return dev_err_probe(&pdev->dev, ret, "can't get eth_axi_lp_ctrl_offset\n"); - regmap_write(eic7700_hsp_regmap, eth_axi_lp_ctrl_offset, - EIC7700_ETH_CSYSREQ_VAL); + ret = of_property_read_u32_index(pdev->dev.of_node, + "eswin,hsp-sp-csr", + 3, &dwc_priv->eth_txd_offset); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "can't get eth_txd_offset\n"); ret = of_property_read_u32_index(pdev->dev.of_node, "eswin,hsp-sp-csr", - 3, ð_rxd_dly_offset); + 4, &dwc_priv->eth_clk_offset); if (ret) return dev_err_probe(&pdev->dev, ret, - "can't get eth_rxd_dly_offset\n"); + "can't get eth_clk_offset\n"); - regmap_write(eic7700_hsp_regmap, eth_rxd_dly_offset, - eth_dly_param); + ret = of_property_read_u32_index(pdev->dev.of_node, + "eswin,hsp-sp-csr", + 5, &dwc_priv->eth_rxd_offset); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "can't get eth_rxd_offset\n"); plat_dat->num_clks = ARRAY_SIZE(eic7700_clk_names); plat_dat->clks = devm_kcalloc(&pdev->dev, @@ -208,12 +273,27 @@ static int eic7700_dwmac_probe(struct platform_device *pdev) plat_dat->exit = eic7700_dwmac_exit; plat_dat->suspend = eic7700_dwmac_suspend; plat_dat->resume = eic7700_dwmac_resume; + plat_dat->fix_mac_speed = eic7700_dwmac_fix_speed; return devm_stmmac_pltfr_probe(pdev, plat_dat, &stmmac_res); } +static const struct eic7700_dwmac_data eic7700_dwmac_data = { + .rgmii_rx_clk_invert = false, +}; + +static const struct eic7700_dwmac_data eic7700_dwmac_data_clk_inversion = { + .rgmii_rx_clk_invert = true, +}; + static const struct of_device_id eic7700_dwmac_match[] = { - { .compatible = "eswin,eic7700-qos-eth" }, + { .compatible = "eswin,eic7700-qos-eth", + .data = &eic7700_dwmac_data, + }, + { + .compatible = "eswin,eic7700-qos-eth-clk-inversion", + .data = &eic7700_dwmac_data_clk_inversion, + }, { } }; MODULE_DEVICE_TABLE(of, eic7700_dwmac_match); -- 2.25.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/2] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing 2026-02-09 9:48 ` [PATCH v2 2/2] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing lizhi2 @ 2026-02-09 13:34 ` Andrew Lunn 0 siblings, 0 replies; 12+ messages in thread From: Andrew Lunn @ 2026-02-09 13:34 UTC (permalink / raw) To: lizhi2 Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan > static int eic7700_dwmac_init(struct device *dev, void *priv) > { > struct eic7700_qos_priv *dwc = priv; > + u32 eth_phy_ctrl_regset; > + int ret = 0; > + > + ret = eic7700_clks_config(dwc, true); No point initialising ret if the first thing you do is assign to it. > + if (ret) > + return ret; > + > + regmap_read(dwc->eic7700_hsp_regmap, dwc->eth_phy_ctrl_offset, > + ð_phy_ctrl_regset); > + eth_phy_ctrl_regset |= > + (EIC7700_ETH_TX_CLK_SEL | EIC7700_ETH_PHY_INTF_SELI); > + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_phy_ctrl_offset, > + eth_phy_ctrl_regset); regmap_set_bits(dwc->eic7700_hsp_regmap, dwc->eth_phy_ctrl_offset, EIC7700_ETH_TX_CLK_SEL | EIC7700_ETH_PHY_INTF_SELI); > + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_axi_lp_ctrl_offset, > + EIC7700_ETH_CSYSREQ_VAL); > + > + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_txd_offset, 0); > + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_rxd_offset, 0); > > - return eic7700_clks_config(dwc, true); > + return ret; returning ret here seems pointless. You already know it is 0. > } > > static void eic7700_dwmac_exit(struct device *dev, void *priv) > @@ -88,17 +124,33 @@ static int eic7700_dwmac_resume(struct device *dev, void *priv) > return ret; > } > > +static void eic7700_dwmac_fix_speed(void *priv, int speed, unsigned int mode) > +{ > + struct eic7700_qos_priv *dwc = (struct eic7700_qos_priv *)priv; > + u32 dly_param = dwc->eth_clk_dly_param; > + > + switch (speed) { > + case SPEED_1000: > + if (dwc->eth_rx_clk_inv) > + dly_param |= EIC7700_ETH_RX_INV_DELAY; > + break; > + case SPEED_100: > + case SPEED_10: > + break; > + default: > + dev_err(dwc->dev, "invalid speed %u\n", speed); > + break; > + } > + > + regmap_write(dwc->eic7700_hsp_regmap, dwc->eth_clk_offset, dly_param); > +} > + > static int eic7700_dwmac_probe(struct platform_device *pdev) > { > + const struct eic7700_dwmac_data *data; > struct plat_stmmacenet_data *plat_dat; > struct stmmac_resources stmmac_res; > struct eic7700_qos_priv *dwc_priv; > - struct regmap *eic7700_hsp_regmap; > - u32 eth_axi_lp_ctrl_offset; > - u32 eth_phy_ctrl_offset; > - u32 eth_phy_ctrl_regset; > - u32 eth_rxd_dly_offset; > - u32 eth_dly_param = 0; > u32 delay_ps; > int i, ret; > > @@ -116,13 +168,23 @@ static int eic7700_dwmac_probe(struct platform_device *pdev) > if (!dwc_priv) > return -ENOMEM; > > + dwc_priv->dev = &pdev->dev; > + > + data = device_get_match_data(&pdev->dev); > + if (!data) > + return dev_err_probe(&pdev->dev, > + -EINVAL, "no match data found\n"); > + > + dwc_priv->eth_rx_clk_inv = data->rgmii_rx_clk_invert; > + > /* Read rx-internal-delay-ps and update rx_clk delay */ > if (!of_property_read_u32(pdev->dev.of_node, > "rx-internal-delay-ps", &delay_ps)) { > - u32 val = min(delay_ps / 100, EIC7700_MAX_DELAY_UNIT); > + u32 val = min(delay_ps / 20, EIC7700_MAX_DELAY_STEPS); If the value it too big, please return -EINVAL. You have listed in the DT binding what the valid range is, not that you clamp to the maximum value. > > - eth_dly_param &= ~EIC7700_ETH_RX_ADJ_DELAY; > - eth_dly_param |= FIELD_PREP(EIC7700_ETH_RX_ADJ_DELAY, val); > + dwc_priv->eth_clk_dly_param &= ~EIC7700_ETH_RX_ADJ_DELAY; > + dwc_priv->eth_clk_dly_param |= > + FIELD_PREP(EIC7700_ETH_RX_ADJ_DELAY, val); > } else { > return dev_err_probe(&pdev->dev, -EINVAL, > "missing required property rx-internal-delay-ps\n"); RX and TX internal delays are generally optional, because most boards don't require them. Default to 0 if not supplied. Andrew --- pw-bot: cr ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-09 9:46 [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing lizhi2 2026-02-09 9:48 ` [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control lizhi2 2026-02-09 9:48 ` [PATCH v2 2/2] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing lizhi2 @ 2026-02-09 13:36 ` Andrew Lunn 2026-02-09 14:31 ` Russell King (Oracle) 2026-02-20 18:37 ` Marcel Ziswiler 3 siblings, 1 reply; 12+ messages in thread From: Andrew Lunn @ 2026-02-09 13:36 UTC (permalink / raw) To: lizhi2 Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan On Mon, Feb 09, 2026 at 05:46:28PM +0800, lizhi2@eswincomputing.com wrote: > From: Zhi Li <lizhi2@eswincomputing.com> > > v1 -> v2: For version 3, please include a patch to the SoC .dtsi file adding the Ethernet nodes. We like to see users of code being added. Andrew ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-09 13:36 ` [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 " Andrew Lunn @ 2026-02-09 14:31 ` Russell King (Oracle) 2026-02-10 10:21 ` 李志 0 siblings, 1 reply; 12+ messages in thread From: Russell King (Oracle) @ 2026-02-09 14:31 UTC (permalink / raw) To: lizhi2, Andrew Lunn Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan On Mon, Feb 09, 2026 at 02:36:11PM +0100, Andrew Lunn wrote: > On Mon, Feb 09, 2026 at 05:46:28PM +0800, lizhi2@eswincomputing.com wrote: > > From: Zhi Li <lizhi2@eswincomputing.com> > > > > v1 -> v2: > > For version 3, please include a patch to the SoC .dtsi file adding the > Ethernet nodes. We like to see users of code being added. In addition to Andrew's comments, before posting another series, please review https://docs.kernel.org/process/maintainer-netdev.html, particularly sections 1.4 and 1.6.1. Thanks. -- 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] 12+ messages in thread
* Re: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-09 14:31 ` Russell King (Oracle) @ 2026-02-10 10:21 ` 李志 2026-02-10 12:30 ` Russell King (Oracle) 0 siblings, 1 reply; 12+ messages in thread From: 李志 @ 2026-02-10 10:21 UTC (permalink / raw) To: Russell King (Oracle), Andrew Lunn Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan > -----原始邮件----- > 发件人: "Russell King (Oracle)" <linux@armlinux.org.uk> > 发送时间:2026-02-09 22:31:28 (星期一) > 收件人: lizhi2@eswincomputing.com, "Andrew Lunn" <andrew@lunn.ch> > 抄送: devicetree@vger.kernel.org, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, netdev@vger.kernel.org, pabeni@redhat.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ningyu@eswincomputing.com, linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, weishangjuan@eswincomputing.com > 主题: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing > > On Mon, Feb 09, 2026 at 02:36:11PM +0100, Andrew Lunn wrote: > > On Mon, Feb 09, 2026 at 05:46:28PM +0800, lizhi2@eswincomputing.com wrote: > > > From: Zhi Li <lizhi2@eswincomputing.com> > > > > > > v1 -> v2: > > > > For version 3, please include a patch to the SoC .dtsi file adding the > > Ethernet nodes. We like to see users of code being added. > > In addition to Andrew's comments, before posting another series, please > review https://docs.kernel.org/process/maintainer-netdev.html, > particularly sections 1.4 and 1.6.1. > Thanks for the comments. The v3 patch will target the net git tree. We will add the ethernet nodes and the corresponding clock node to eic7700.dtsi and eic7700-hifive-premier-p550.dts in v3 patch. Please note that the EIC7700 clock controller binding and driver are not yet merged upstream, so the clock nodes will not be functional until the clock driver is available. As a result, dtbs_check will currently report schema warnings/errors related to the clock nodes. This is a known and temporary limitation until the clock binding and driver are available upstream. Please let us know if this approach is acceptable. Best regards, Zhi Li ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-10 10:21 ` 李志 @ 2026-02-10 12:30 ` Russell King (Oracle) 0 siblings, 0 replies; 12+ messages in thread From: Russell King (Oracle) @ 2026-02-10 12:30 UTC (permalink / raw) To: 李志 Cc: Andrew Lunn, devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan Hi, On Tue, Feb 10, 2026 at 06:21:40PM +0800, 李志 wrote: > > -----原始邮件----- > > 发件人: "Russell King (Oracle)" <linux@armlinux.org.uk> > > 发送时间:2026-02-09 22:31:28 (星期一) > > 收件人: lizhi2@eswincomputing.com, "Andrew Lunn" <andrew@lunn.ch> > > 抄送: devicetree@vger.kernel.org, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, netdev@vger.kernel.org, pabeni@redhat.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ningyu@eswincomputing.com, linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, weishangjuan@eswincomputing.com > > 主题: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing > > > > On Mon, Feb 09, 2026 at 02:36:11PM +0100, Andrew Lunn wrote: > > > On Mon, Feb 09, 2026 at 05:46:28PM +0800, lizhi2@eswincomputing.com wrote: > > > > From: Zhi Li <lizhi2@eswincomputing.com> > > > > > > > > v1 -> v2: > > > > > > For version 3, please include a patch to the SoC .dtsi file adding the > > > Ethernet nodes. We like to see users of code being added. > > > > In addition to Andrew's comments, before posting another series, please > > review https://docs.kernel.org/process/maintainer-netdev.html, > > particularly sections 1.4 and 1.6.1. > > > Thanks for the comments. > > The v3 patch will target the net git tree. While it may be a fix, given that: > We will add the ethernet nodes and the corresponding clock node to > eic7700.dtsi and eic7700-hifive-premier-p550.dts in v3 patch. > > Please note that the EIC7700 clock controller binding and driver are not > yet merged upstream, so the clock nodes will not be functional until the > clock driver is available. As a result, dtbs_check will currently report > schema warnings/errors related to the clock nodes. This is a known and > temporary limitation until the clock binding and driver are available > upstream. I don't see much point to putting it in the net tree - you're addressing problems with a driver that is currently not in a usable state in mainline, so there's no need to rush to have this change in mainline. I think the net-next tree will do once it re-opens after v7.0-rc1 has been released. Thanks. -- 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] 12+ messages in thread
* Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-09 9:46 [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing lizhi2 ` (2 preceding siblings ...) 2026-02-09 13:36 ` [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 " Andrew Lunn @ 2026-02-20 18:37 ` Marcel Ziswiler 2026-02-26 3:20 ` 李志 3 siblings, 1 reply; 12+ messages in thread From: Marcel Ziswiler @ 2026-02-20 18:37 UTC (permalink / raw) To: lizhi2, devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel Cc: ningyu, linmin, pinkesh.vaghela, weishangjuan, dongxuyang Hi Zhi Li Sorry, to steal this thread, but I do have a quick question concerning Ethernet on the EIC7700. Every time I enable gmac0 in the device tree my EBC7700 stops booting (e.g. SD card is no longer detected) while Ethernet does seem to at least get detected. This has been seen using next-20260219, stable v6.19.2 [1] as well as 6.18.0-rc6 [2]. Any idea what could be going wrong? I admit so far I only do have one single EBC7700 at hand while waiting for further hardware to arrive. Thanks! [1] https://github.com/riscv/meta-riscv/pull/601 [2] https://github.com/eswincomputing/linux-next/tree/dev/test-upstream-v6.18-rc6 Cheers Marcel [snip] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-20 18:37 ` Marcel Ziswiler @ 2026-02-26 3:20 ` 李志 2026-02-27 9:52 ` Marcel Ziswiler 0 siblings, 1 reply; 12+ messages in thread From: 李志 @ 2026-02-26 3:20 UTC (permalink / raw) To: Marcel Ziswiler Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan, dongxuyang, ganboing, pritesh.patel Hi Marcel, Thanks for sharing the details. 1. I checked your log and noticed that the kernel cmdline already includes "clk_ignore_unused". Therefore, your issue does not appear to be the same as the one previously reported by Bo Gan. 2. I also verified that v6.19.2 already contains the two eMMC fix patches: https://lore.kernel.org/all/CAPDyKFqcMyM-=x+2FWNLhHY=gu5ApHNPQhp0xBKDJGr7BhEx4Q@mail.gmail.com/ https://lore.kernel.org/all/CAPDyKFrkEZDuMbGpfxismcx=vJkSSK_XbtB762+sUFocupT63w@mail.gmail.com/ A likely cause is that the eMMC DTS node is missing the AXI clock definition. Please refer to the DTS updates in the following pull request for reference: https://github.com/eswincomputing/linux-next/pull/20 3. In addition, please check whether CONFIG_GPIO_DWAPB=y is enabled in your kernel configuration. Since GMAC is built-in by default, it depends on GPIO being available during early initialization. Hope this helps narrow things down. Please let me know what you find. Best regards, Zhi Li > -----原始邮件----- > 发件人: "Marcel Ziswiler" <marcel@ziswiler.com> > 发送时间:2026-02-21 02:37:57 (星期六) > 收件人: lizhi2@eswincomputing.com, devicetree@vger.kernel.org, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, netdev@vger.kernel.org, pabeni@redhat.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, rmk+kernel@armlinux.org.uk, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org > 抄送: ningyu@eswincomputing.com, linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, weishangjuan@eswincomputing.com, dongxuyang@eswincomputing.com > 主题: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing > > Hi Zhi Li > > Sorry, to steal this thread, but I do have a quick question concerning Ethernet on the EIC7700. Every time I > enable gmac0 in the device tree my EBC7700 stops booting (e.g. SD card is no longer detected) while Ethernet > does seem to at least get detected. This has been seen using next-20260219, stable v6.19.2 [1] as well as > 6.18.0-rc6 [2]. Any idea what could be going wrong? > > I admit so far I only do have one single EBC7700 at hand while waiting for further hardware to arrive. > > Thanks! > > [1] https://github.com/riscv/meta-riscv/pull/601 > [2] https://github.com/eswincomputing/linux-next/tree/dev/test-upstream-v6.18-rc6 > > Cheers > > Marcel > > [snip] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing 2026-02-26 3:20 ` 李志 @ 2026-02-27 9:52 ` Marcel Ziswiler 0 siblings, 0 replies; 12+ messages in thread From: Marcel Ziswiler @ 2026-02-27 9:52 UTC (permalink / raw) To: 李志 Cc: devicetree, andrew+netdev, davem, edumazet, kuba, robh, krzk+dt, conor+dt, netdev, pabeni, mcoquelin.stm32, alexandre.torgue, rmk+kernel, linux-stm32, linux-arm-kernel, linux-kernel, ningyu, linmin, pinkesh.vaghela, weishangjuan, dongxuyang, ganboing, pritesh.patel Hi Zhi Li On Thu, 2026-02-26 at 11:20 +0800, 李志 wrote: > Hi Marcel, > > Thanks for sharing the details. > > 1. I checked your log and noticed that the kernel cmdline already includes > "clk_ignore_unused". Therefore, your issue does not appear to be the > same as the one previously reported by Bo Gan. Yes, that actually came from ESWIN's hifive-premier-p550_defconfig which I disabled now. > 2. I also verified that v6.19.2 already contains the two eMMC fix patches: > https://lore.kernel.org/all/CAPDyKFqcMyM-=x+2FWNLhHY=gu5ApHNPQhp0xBKDJGr7BhEx4Q@mail.gmail.com/ > https://lore.kernel.org/all/CAPDyKFrkEZDuMbGpfxismcx=vJkSSK_XbtB762+sUFocupT63w@mail.gmail.com/ Yes. > A likely cause is that the eMMC DTS node is missing the AXI clock definition. > Please refer to the DTS updates in the following pull request for reference: > https://github.com/eswincomputing/linux-next/pull/20 Ah, that one helped (;-p). BTW: For CPU frequency scaling to actually work one may additionally need CONFIG_RISCV_SBI_CPUIDLE=y. > 3. In addition, please check whether CONFIG_GPIO_DWAPB=y is enabled in your > kernel configuration. Since GMAC is built-in by default, it depends on > GPIO being available during early initialization. Yes, I also changed that from =m to =y (;-p). > Hope this helps narrow things down. Please let me know what you find. Yes, it all works now perfectly incl. CPU frequency scaling. See [1]. Next one would be working PCIe and USB. Unfortunately, for PCIe on EBC77 one would likely need some sort of an adapter cable/PCB. Maybe I can solder something together. Let's see... Thank you very much! [1] https://github.com/riscv/meta-riscv/pull/602 > Best regards, > Zhi Li Cheers Marcel > > -----原始邮件----- > > 发件人: "Marcel Ziswiler" <marcel@ziswiler.com> > > 发送时间:2026-02-21 02:37:57 (星期六) > > 收件人: lizhi2@eswincomputing.com, devicetree@vger.kernel.org, andrew+netdev@lunn.ch, davem@davemloft.net, > > edumazet@google.com, kuba@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, > > netdev@vger.kernel.org, pabeni@redhat.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, > > rmk+kernel@armlinux.org.uk, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, > > linux-kernel@vger.kernel.org > > 抄送: ningyu@eswincomputing.com, linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, > > weishangjuan@eswincomputing.com, dongxuyang@eswincomputing.com > > 主题: Re: [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing > > > > Hi Zhi Li > > > > Sorry, to steal this thread, but I do have a quick question concerning Ethernet on the EIC7700. Every time > > I > > enable gmac0 in the device tree my EBC7700 stops booting (e.g. SD card is no longer detected) while > > Ethernet > > does seem to at least get detected. This has been seen using next-20260219, stable v6.19.2 [1] as well as > > 6.18.0-rc6 [2]. Any idea what could be going wrong? > > > > I admit so far I only do have one single EBC7700 at hand while waiting for further hardware to arrive. > > > > Thanks! > > > > [1] https://github.com/riscv/meta-riscv/pull/601 > > [2] https://github.com/eswincomputing/linux-next/tree/dev/test-upstream-v6.18-rc6 > > > > Cheers > > > > Marcel > > > > [snip] ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-02-27 9:59 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-09 9:46 [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 RX sampling timing lizhi2 2026-02-09 9:48 ` [PATCH v2 1/2] dt-bindings: ethernet: eswin: add clock sampling control lizhi2 2026-02-09 13:21 ` Andrew Lunn 2026-02-09 9:48 ` [PATCH v2 2/2] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing lizhi2 2026-02-09 13:34 ` Andrew Lunn 2026-02-09 13:36 ` [PATCH v2 0/2] net: stmmac: eic7700: fix EIC7700 eth1 " Andrew Lunn 2026-02-09 14:31 ` Russell King (Oracle) 2026-02-10 10:21 ` 李志 2026-02-10 12:30 ` Russell King (Oracle) 2026-02-20 18:37 ` Marcel Ziswiler 2026-02-26 3:20 ` 李志 2026-02-27 9:52 ` Marcel Ziswiler
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox