[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <DB3PR0402MB38492E028D1B09AFE15A5D4EEC3A0@DB3PR0402MB3849.eurprd04.prod.outlook.com>
Date: Tue, 28 Nov 2017 07:25:48 +0000
From: Madalin-cristian Bucur <madalin.bucur@....com>
To: Andrew Lunn <andrew@...n.ch>,
"f.fainelli@...il.com" <f.fainelli@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: Bhaskar Upadhaya <bhaskar.upadhaya@....com>,
Shengzhou Liu <shengzhou.liu@....com>,
York Sun <york.sun@....com>,
"u-boot@...ts.denx.de" <u-boot@...ts.denx.de>
Subject: [RFC] Support for SGMII 2500
Hi,
There is a disconnect between the SGMII 2500 support in u-boot and Linux.
Bhaskar is trying to add support for a SGMII interface working at 2.5Gbps
by using the PHY connection type "sgmii-2500" in the device tree:
phy-connection-type = "sgmii-2500";
This is supported by u-boot, in include/phy.h:
typedef enum {
PHY_INTERFACE_MODE_MII,
PHY_INTERFACE_MODE_GMII,
PHY_INTERFACE_MODE_SGMII,
PHY_INTERFACE_MODE_SGMII_2500,
...
static const char *phy_interface_strings[] = {
[PHY_INTERFACE_MODE_MII] = "mii",
[PHY_INTERFACE_MODE_GMII] = "gmii",
[PHY_INTERFACE_MODE_SGMII] = "sgmii",
[PHY_INTERFACE_MODE_SGMII_2500] = "sgmii-2500",
...
since this commit:
commit c35f8693942d8284c635592f263a0fe11abe1d1d
Author: Shengzhou Liu <Shengzhou.Liu@...escale.com>
Date: Thu Oct 23 17:20:57 2014 +0800
net/fm: add 2.5G SGMII support
As auto-negotiation is not supported for 2.5G SGMII, we need
to add a new type PHY_INTERFACE_MODE_SGMII_2500 to differentiate
SGMII-1G and SGMII-2.5G with different setting for auto-negotiation.
Signed-off-by: Shaohui Xie <Shaohui.Xie@...escale.com>
Signed-off-by: Shengzhou Liu <Shengzhou.Liu@...escale.com>
Reviewed-by: York Sun <yorksun@...escale.com>
In the Linux kernel we do not have a separate define for SGMII_2500, should we add
something like the change below?
Thanks,
Madalin
---
diff --git a/include/linux/phy.h b/include/linux/phy.h
index dc82a07..086f7a3 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -68,6 +68,7 @@ typedef enum {
PHY_INTERFACE_MODE_MII,
PHY_INTERFACE_MODE_GMII,
PHY_INTERFACE_MODE_SGMII,
+ PHY_INTERFACE_MODE_SGMII_2500,
PHY_INTERFACE_MODE_TBI,
PHY_INTERFACE_MODE_REVMII,
PHY_INTERFACE_MODE_RMII,
@@ -123,6 +124,8 @@ static inline const char *phy_modes(phy_interface_t interface)
return "gmii";
case PHY_INTERFACE_MODE_SGMII:
return "sgmii";
+ case PHY_INTERFACE_MODE_SGMII_2500:
+ return "sgmii-2500";
case PHY_INTERFACE_MODE_TBI:
return "tbi";
case PHY_INTERFACE_MODE_REVMII:
Powered by blists - more mailing lists