+ Anji, Calvin, Prabhakar, Poonam. -----Original Message----- From: Madalin-cristian Bucur Sent: Tuesday, November 28, 2017 12:56 PM To: Andrew Lunn <and...@lunn.ch>; f.faine...@gmail.com; netdev@vger.kernel.org Cc: Bhaskar Upadhaya <bhaskar.upadh...@nxp.com>; Shengzhou Liu <shengzhou....@nxp.com>; York Sun <york....@nxp.com>; u-b...@lists.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....@freescale.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....@freescale.com> Signed-off-by: Shengzhou Liu <shengzhou....@freescale.com> Reviewed-by: York Sun <york...@freescale.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: