From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com --- Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]: - Remove blank line between Fixes and SoB tags - Submit without mail server mangling the patch - Minor tweaks to subject line and commit message - CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28) #define REG2_ADCBYPASS BIT(30) #define REG2_CLKINSEL BIT(31) #define ETH_REG3 0x4 @@ -65,7 +66,7 @@ static void gxl_enable_internal_mdio(struct gxl_mdio_mux *priv) * The only constraint is that it must match the one in * drivers/net/phy/meson-gxl.c to properly match the PHY. */ - writel(FIELD_PREP(REG2_PHYID, EPHY_GXL_ID), + writel(REG2_RESERVED_28 | FIELD_PREP(REG2_PHYID, EPHY_GXL_ID), priv->regs + ETH_REG2);
/* Enable the internal phy */
Hi,
Thanks for your patch.
FYI: kernel test robot notices the stable kernel rule is not satisfied.
The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#opti...
Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree. Subject: [PATCH v2] net: mdio: mux-meson-gxl: set 28th bit in eth_reg2 Link: https://lore.kernel.org/stable/20250331074420.3443748-1-christianshewitt%40g...
On 31/03/2025 09:44, Christian Hewitt wrote:
From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com
Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]:
- Remove blank line between Fixes and SoB tags
- Submit without mail server mangling the patch
- Minor tweaks to subject line and commit message
- CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28) #define REG2_ADCBYPASS BIT(30) #define REG2_CLKINSEL BIT(31) #define ETH_REG3 0x4 @@ -65,7 +66,7 @@ static void gxl_enable_internal_mdio(struct gxl_mdio_mux *priv) * The only constraint is that it must match the one in * drivers/net/phy/meson-gxl.c to properly match the PHY. */
- writel(FIELD_PREP(REG2_PHYID, EPHY_GXL_ID),
- writel(REG2_RESERVED_28 | FIELD_PREP(REG2_PHYID, EPHY_GXL_ID), priv->regs + ETH_REG2);
/* Enable the internal phy */
Reviewed-by: Neil Armstrong neil.armstrong@linaro.org
On Mon, Mar 31, 2025 at 07:44:20AM +0000, Christian Hewitt wrote:
From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com
Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]:
- Remove blank line between Fixes and SoB tags
- Submit without mail server mangling the patch
- Minor tweaks to subject line and commit message
- CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28)
It must have some meaning, it cannot be reserved. So lets try to find a better name.
Andrew
On Mon, Mar 31, 2025 at 03:43:26PM +0200, Andrew Lunn wrote:
On Mon, Mar 31, 2025 at 07:44:20AM +0000, Christian Hewitt wrote:
From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com
Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]:
- Remove blank line between Fixes and SoB tags
- Submit without mail server mangling the patch
- Minor tweaks to subject line and commit message
- CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28)
It must have some meaning, it cannot be reserved. So lets try to find a better name.
Indeed, that was my thoughts as well, but Andrew got his reply in before I got around to replying!
On Mon, Mar 31, 2025 at 9:55 AM Russell King (Oracle) linux@armlinux.org.uk wrote:
On Mon, Mar 31, 2025 at 03:43:26PM +0200, Andrew Lunn wrote:
On Mon, Mar 31, 2025 at 07:44:20AM +0000, Christian Hewitt wrote:
From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com
Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]:
- Remove blank line between Fixes and SoB tags
- Submit without mail server mangling the patch
- Minor tweaks to subject line and commit message
- CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28)
It must have some meaning, it cannot be reserved. So lets try to find a better name.
Indeed, that was my thoughts as well, but Andrew got his reply in before I got around to replying!
The datasheets don't have much in the way of information about this register bit. The Amlogic GXL datasheet is notoriously inaccurate.
ETH_REG2 0XC8834558 29:28 R 0x1 reserved
It claims the bit is read only while the BSP hard codes the setting of this register. I am open to any name for this register bit. This is the only thing holding up distro netbooting for these very popular chip family.
-- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic
On Mon, Mar 31, 2025 at 03:09:00PM -0400, Da Xue wrote:
On Mon, Mar 31, 2025 at 9:55 AM Russell King (Oracle) linux@armlinux.org.uk wrote:
On Mon, Mar 31, 2025 at 03:43:26PM +0200, Andrew Lunn wrote:
On Mon, Mar 31, 2025 at 07:44:20AM +0000, Christian Hewitt wrote:
From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com
Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]:
- Remove blank line between Fixes and SoB tags
- Submit without mail server mangling the patch
- Minor tweaks to subject line and commit message
- CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28)
It must have some meaning, it cannot be reserved. So lets try to find a better name.
Indeed, that was my thoughts as well, but Andrew got his reply in before I got around to replying!
The datasheets don't have much in the way of information about this register bit. The Amlogic GXL datasheet is notoriously inaccurate.
ETH_REG2 0XC8834558 29:28 R 0x1 reserved
It claims the bit is read only while the BSP hard codes the setting of this register. I am open to any name for this register bit. This is the only thing holding up distro netbooting for these very popular chip family.
Which interface mode do we think this affects?
As a suggestion, maybe call it:
REG2_<interfacemode>_EN
and possibly add a comment "This bit is documented as reserved, but needs to be set so that <interfacemode> can pass traffic. This is an unofficial name."
On Mon, Mar 31, 2025 at 4:30 PM Russell King (Oracle) linux@armlinux.org.uk wrote:
On Mon, Mar 31, 2025 at 03:09:00PM -0400, Da Xue wrote:
On Mon, Mar 31, 2025 at 9:55 AM Russell King (Oracle) linux@armlinux.org.uk wrote:
On Mon, Mar 31, 2025 at 03:43:26PM +0200, Andrew Lunn wrote:
On Mon, Mar 31, 2025 at 07:44:20AM +0000, Christian Hewitt wrote:
From: Da Xue da@libre.computer
This bit is necessary to enable packets on the interface. Without this bit set, ethernet behaves as if it is working, but no activity occurs.
The vendor SDK sets this bit along with the PHY_ID bits. U-boot also sets this bit, but if u-boot is not compiled with networking support the interface will not work.
Fixes: 9a24e1ff4326 ("net: mdio: add amlogic gxl mdio mux support"); Signed-off-by: Da Xue da@libre.computer Signed-off-by: Christian Hewitt christianshewitt@gmail.com
Resending on behalf of Da Xue who has email sending issues. Changes since v1 [0]:
- Remove blank line between Fixes and SoB tags
- Submit without mail server mangling the patch
- Minor tweaks to subject line and commit message
- CC to stable@vger.kernel.org
[0] https://patchwork.kernel.org/project/linux-amlogic/patch/CACqvRUbx-KsrMwCHYQ...
drivers/net/mdio/mdio-mux-meson-gxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mdio/mdio-mux-meson-gxl.c b/drivers/net/mdio/mdio-mux-meson-gxl.c index 00c66240136b..fc5883387718 100644 --- a/drivers/net/mdio/mdio-mux-meson-gxl.c +++ b/drivers/net/mdio/mdio-mux-meson-gxl.c @@ -17,6 +17,7 @@ #define REG2_LEDACT GENMASK(23, 22) #define REG2_LEDLINK GENMASK(25, 24) #define REG2_DIV4SEL BIT(27) +#define REG2_RESERVED_28 BIT(28)
It must have some meaning, it cannot be reserved. So lets try to find a better name.
Indeed, that was my thoughts as well, but Andrew got his reply in before I got around to replying!
The datasheets don't have much in the way of information about this register bit. The Amlogic GXL datasheet is notoriously inaccurate.
ETH_REG2 0XC8834558 29:28 R 0x1 reserved
It claims the bit is read only while the BSP hard codes the setting of this register. I am open to any name for this register bit. This is the only thing holding up distro netbooting for these very popular chip family.
Which interface mode do we think this affects?
As a suggestion, maybe call it:
REG2_<interfacemode>_EN
and possibly add a comment "This bit is documented as reserved, but needs to be set so that <interfacemode> can pass traffic. This is an unofficial name."
I found this on the zircon kernel:
#define REG2_ETH_REG2_REVERSED (1 << 28)
pregs->Write32(REG2_ETH_REG2_REVERSED | REG2_INTERNAL_PHY_ID, PER_ETH_REG2);
I can respin and call it that.
-- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
On Mon, Mar 31, 2025 at 05:21:08PM -0400, Da Xue wrote:
I found this on the zircon kernel:
#define REG2_ETH_REG2_REVERSED (1 << 28)
pregs->Write32(REG2_ETH_REG2_REVERSED | REG2_INTERNAL_PHY_ID, PER_ETH_REG2);
I can respin and call it that.
Which interface mode is being used, and what is the MAC connected to?
"Reversed" seems to imply that _this_ end is acting as a PHY rather than the MAC in the link, so I think a bit more information (the above) is needed to ensure that this is the correct solution.
On Mon, Mar 31, 2025 at 7:59 PM Russell King (Oracle) linux@armlinux.org.uk wrote:
On Mon, Mar 31, 2025 at 05:21:08PM -0400, Da Xue wrote:
I found this on the zircon kernel:
#define REG2_ETH_REG2_REVERSED (1 << 28)
pregs->Write32(REG2_ETH_REG2_REVERSED | REG2_INTERNAL_PHY_ID, PER_ETH_REG2);
I can respin and call it that.
Which interface mode is being used, and what is the MAC connected to?
"Reversed" seems to imply that _this_ end is acting as a PHY rather than the MAC in the link, so I think a bit more information (the above) is needed to ensure that this is the correct solution.
The SoC can be connected to an external PHY or use the internal PHY. In this gxl_enable_internal_mdio case, we are using the internal PHY.
Sorry about leaving this out in the last email and causing another RT. I'm not very familiar with ethernet underpinnings so I don't want to use the wrong terms.
-- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
linux-stable-mirror@lists.linaro.org