From patchwork Thu Oct 15 13:02:34 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gong Qianyu X-Patchwork-Id: 530675 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 682D61402D0 for ; Fri, 16 Oct 2015 00:11:22 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id F1E314B736; Thu, 15 Oct 2015 15:10:23 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id u2c1gyHhhKC7; Thu, 15 Oct 2015 15:10:23 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id DA7394B74E; Thu, 15 Oct 2015 15:10:08 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 102504B6F2 for ; Thu, 15 Oct 2015 15:09:57 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Zh3XoaVK6SLl for ; Thu, 15 Oct 2015 15:09:56 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0117.outbound.protection.outlook.com [207.46.100.117]) by theia.denx.de (Postfix) with ESMTPS id 20C184B6F5 for ; Thu, 15 Oct 2015 15:09:43 +0200 (CEST) Received: from DM2PR03CA0002.namprd03.prod.outlook.com (10.141.96.12) by BY2PR03MB508.namprd03.prod.outlook.com (10.141.143.27) with Microsoft SMTP Server (TLS) id 15.1.293.16; Thu, 15 Oct 2015 13:09:40 +0000 Received: from BN1AFFO11FD017.protection.gbl (2a01:111:f400:7c10::148) by DM2PR03CA0002.outlook.office365.com (2a01:111:e400:2428::12) with Microsoft SMTP Server (TLS) id 15.1.300.14 via Frontend Transport; Thu, 15 Oct 2015 13:09:40 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD017.mail.protection.outlook.com (10.58.52.77) with Microsoft SMTP Server (TLS) id 15.1.293.9 via Frontend Transport; Thu, 15 Oct 2015 13:09:39 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t9FD95wb032237; Thu, 15 Oct 2015 06:09:36 -0700 From: Gong Qianyu To: Date: Thu, 15 Oct 2015 21:02:34 +0800 Message-ID: <1444914162-34502-10-git-send-email-Qianyu.Gong@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1444914162-34502-1-git-send-email-Qianyu.Gong@freescale.com> References: <1444914162-34502-1-git-send-email-Qianyu.Gong@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD017; 1:x2C+dLjnVxZ7/RveTUzAnPcRfBAL94Wb/eyEeSHr1DLqZ+NKLsrAOZalRZI0zyvSIiyhSr6IR4aYWRD0PEpR+klahCyyEDcOmqajqfQ8tyFt/aGYexo7pCvHWfjwMzab5HhUx29MjZ5gXelMlRpDjCKuRPwlaZhu6tKJp/d5UepPojQ67kC7Y3L0j19OK+TAI5WqBC1dO/DS6TxSyoHqkCs04Wm5qi5Vwc0BjM0+/jKo+FiKhtW8DovJEucudmBr2WzL1RySn68noME6e3TwbjKI0QzscOCo+PfVnpfs/Hy8lr/uH2e4XKXpYu0fIJnyXiqZSAN9SJpBOIIEN0Hn0J19i9QghpaBGAjclX88wKr1DYp521XAMqrh+xPw0VFLcenPtpguBDh9AvGBwDPA5Q== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(47776003)(50466002)(104016004)(69596002)(5008740100001)(106466001)(2351001)(19580395003)(77096005)(105606002)(11100500001)(6806005)(76176999)(189998001)(92566002)(5007970100001)(86362001)(19580405001)(36756003)(5003940100001)(64706001)(50226001)(2950100001)(110136002)(5001960100002)(229853001)(107886002)(50986999)(450100001)(87936001)(46102003)(97736004)(81156007)(85426001)(48376002)(217873001)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR03MB508; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB508; 2:7WXeZq43f0f62PWXUSqJmgR8jhKxc2rMAakzYJZVJBdpal3vKdaxHRticPre0nm6OWT/QciNUIAjtR/A71RNDvV9coopI7wmMBtc7L8a2c84C84ONpweePOsuYSL8jEe5vSg9WBdC3iJ7P5PUP5aU3HC8BMUocrqkh/Jss9YUDA=; 3:87YgmofQSrcTRJcHWCC9+h9qTTeJOrKcrNljbYv9hrd96xPTSviSK0hgneG+s6ffCgzxFwCsP6Qn+qygXj2TeMMzJ8n7MhnO6qD2I4566shHug2qZIDb8lxzcHVuK7vfUn5KwelgagsEVtujNIWQz4H5KcPTiRg272+0K0rx16dZh0yaYePlNjFtXfvcpkZzBycmQjin/WS0qH2r9b2nmGml+h5KdWbhg22oYJUG6BM=; 25:mfGLcpFMSBGUbOdc4q6g7St84kSGCLCbIQZ/TAkcHjtMEiNEreiVRMgdzDjRz0PkOH+R0VJad2nqgqn2uc4y2hGL8K94Gz1Ba6Vbc09wb0R3EpwpO81TfsfvARXvFbBKgbjv0MI/xuIbDQADOaM1MGDenP85D32X0WoSTXfk39mZqRNfS429aBHk/iaSYSvbDOXxroBCveYW7bxP/mJ18X1D8FK4uOt/O2mApvIdfLjFDYtnAyFHxzJpOIkt7i7xlVbn2mrcAfWmYMKab7tstw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB508; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB508; 20:y3pjkfTUlpJFTUunyUACyo2r4xQG1dMoofDcjNjCfjUu69Gw+DrXqnydijY1ncg1MX/1ivhNTz+vw7TOYpm0g6pUoeQGSRk3faZwSDDkPahT41TDiBkNjaFAtW4Mdq83wrE7Uuh1GSr+oxmqBu/n9A1uG10WPSKKM8h7655tuZJzwwSGKkbLcEI9IKBA2hBnuYK0FMgJ4IdJr0DMzTmtTx7jyKT8bVd1E6HnwF0wFff52W8A0nYHbC9xRtzA9rEwsRcIMD5RP3Ta9TcvHUAn0R+ei03Eefo2YCXeHeNNV2cHqH9vPD08n5V2qdbmLsnqomKJmVNtc4cmt8T88tAWkLJskfKiEsm6Wup6EDBWTnk=; 4:bJertNujzWGzpT3n9d63KzzVFs1wld3kkfOCxLXJ4FwiL8MOhN8SMH5C1+jGpQw03G6I70hetFWxOfWg+RyII/y1VH/+R+28np39cgn6EW1WCNq8YpQOxTEpTBU23eIoaGab1IMYsNRUjBWhOxgWhCvzbF0WVHSxVs7xQXeNOAt9NPurlWQ7wkFeyWZhAMRe8G5vsHlBbWdKU2EdKgn10WLYy1YI8KkO2mq2C4ZoET8tziQcVi9kbErycxm+6KW2P3gl028HsgQjIF6R9FTyxhZlfm9J29zIxnvbn9JZHXMVuavWvOKSe6NAmkh3PWct0Jjgk9daoA2t7MV4q+tn6TVbl3CxtAFOuAEvkkjopuY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001); SRVR:BY2PR03MB508; BCL:0; PCL:0; RULEID:; SRVR:BY2PR03MB508; X-Forefront-PRVS: 0730093765 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB508; 23:MvY8t4n/DSl+zklVCrrRijVK/Y9QtUA73hqRMI40/0?= =?us-ascii?Q?QL1DEjONsBCWDOk2l9koiHk1AYMT8pfnoeU+b2BGUXRoB+XuYmXTBg7hXqwI?= =?us-ascii?Q?rcCiaXeJAlhYS8+5i4C/ml/9ASanN86Q6AbaYF2lTgSDe99+NqpBT2yguudI?= =?us-ascii?Q?Vqp9ZhAp2ljzAWv+bmg3gTrNoLZUg7WGuDVQwPIXEegsSk7bkqk+gi8DA/fi?= =?us-ascii?Q?HSqVrCbjRDfD3y5+XWyFD+NAPN2bWFM1Ux3Pq6R/iMllJCERVw05E7gB+8E7?= =?us-ascii?Q?yXQFcnkV2kp7GXBNlWjIMQKMCG3q7lLL/f0WWNsiV0AAgwxPeqk6MFJBGZJR?= =?us-ascii?Q?aNNBhGW0t6Bt28mTqL8WjriW1dvY0aMyfOYr7bYZDjPR53GJdB9NMginhzIv?= =?us-ascii?Q?tQSjENsZMDSMavZXRundBOpZs68k7NQ+O7J6XXerIoiZftXkymlbX5htylcU?= =?us-ascii?Q?lZ2rP9eFjhSguxC5X7J/TlEsbJXfkPt3Ae6De4lqkLQx8UMCQhaSikEXaCSx?= =?us-ascii?Q?rS/Gt5xnQMxVbevoEOHDV8Od9trAhxedhtKrUSIB0N2jlrRxsewJqqSzL6iG?= =?us-ascii?Q?+FOq260nBNTUL2fN59JDR4UCSeEI/oQRuRbcP2JBba52RStYGql3fuK33ONI?= =?us-ascii?Q?YGOlTUptTdpyH5sBfsJaPYd385M0nIzoBfncMHVnNdONf6PdT/Qn/9sJlroB?= =?us-ascii?Q?cauah1xLQObRV/9+roSCJ44A+2Uh1vsEteh5wnNCXrRpbZ1Vp9yDwypGSS1C?= =?us-ascii?Q?+H498pR3MOdSzuIdlPuFUx+NIKfjXwNNuhYO6ulSLZ4oRoC+cRqDex85vrmQ?= =?us-ascii?Q?OJJhj3+BlMyufvCbTzjfuUzXG7otLzPvMq3e3mn66gUEaQfJ3dYDuN8Nhb+c?= =?us-ascii?Q?yOHHlgwRB4q9tXZlQvtXFz19vIRYojIdP/vPyPJZcGZBdIbatfqTKlOr4P36?= =?us-ascii?Q?gDCYBXAfZTL3Lr6/JRYNdfZMan9ckeXYnaigo0gOQibB4L9zc+isnwOg9VdJ?= =?us-ascii?Q?H2qFi8Z8UIHHM2AG7D4nxgvEckgrta0MRsfms7sSAuJh46BuEpDETcqYskZF?= =?us-ascii?Q?LIqOXDQEW9GjCqHNmZjct0Sao6IkTwnEk3Dk3H1UwytH72tkWF2qQ9oZ3VxT?= =?us-ascii?Q?arK/LiVCXBxmPgshMrvtMN3B5xnNGktHN6Nrc2HuvxZKQyUs2Gy0Nsj4+9iy?= =?us-ascii?Q?7VHn7Hcbt6s0Q=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB508; 5:fBojZM2n4M6cko8L2dPg6zIV3kXvyrDpO67MWaXtxRCbTEapuEDg28S6Eaq+JUgZxA4VuiissymL7XpjxIEqIErOjfvxVCJlePgpiD4w5a+rZmHZHVOIIXn9QhNRQi7G+CmUZuRMV6zRc1T9yYwPNA==; 24:s+sGVcQscAnMGcEpoKrSzIbllDABxp2lcRaRTZSEkLeP8WibXvyOloqo1voAdK0mrri93Wrzwkrpi0W227zdm6ES9ggMc2BIn6OJkpcQEtE=; 20:/5oEBG2HiiyxIEoVh6tF3RqPmq71bSBvd+XjQPNcwyVghqtqe7zikWe+sN1YxQ2IQdcokbWJGlcMumoPF6znyw== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2015 13:09:39.4599 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB508 Cc: B07421@freescale.com, Gong Qianyu , alison.wang@freescale.com, B48286@freescale.com, Wenbin.Song@freescale.com Subject: [U-Boot] [Patch V5 09/17] net/fm: Add QSGMII PCS init X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Shaohui Xie QSGMII PCS needed to be programmed same as SGMII PCS, and there are four ports in QSGMII PCS, port 0, 1, 2, 3, all the four ports shared port 0's MDIO controller, so when programming port 0, we continue to program other three ports. Signed-off-by: Shaohui Xie Signed-off-by: Mingkai Hu Signed-off-by: Gong Qianyu --- V5: - No change. V4: - Remove the "if(priv->phyaddr%4 != 0)" condition in qsgmii_loop. V3: - No change. V2: - No change. drivers/net/fm/eth.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c index 38828c8..3220ae6 100644 --- a/drivers/net/fm/eth.c +++ b/drivers/net/fm/eth.c @@ -41,28 +41,35 @@ static void dtsec_configure_serdes(struct fm_eth *priv) bus.priv = priv->mac->phyregs; bool sgmii_2500 = (priv->enet_if == PHY_INTERFACE_MODE_SGMII_2500) ? true : false; + int i = 0; +qsgmii_loop: /* SGMII IF mode + AN enable only for 1G SGMII, not for 2.5G */ value = PHY_SGMII_IF_MODE_SGMII; if (!sgmii_2500) value |= PHY_SGMII_IF_MODE_AN; - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x14, value); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x14, value); /* Dev ability according to SGMII specification */ value = PHY_SGMII_DEV_ABILITY_SGMII; - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x4, value); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x4, value); /* Adjust link timer for SGMII - 1.6 ms in units of 8 ns = 2 * 10^5 = 0x30d40 */ - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x13, 0x3); - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x12, 0xd40); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x13, 0x3); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x12, 0xd40); /* Restart AN */ value = PHY_SGMII_CR_DEF_VAL; if (!sgmii_2500) value |= PHY_SGMII_CR_RESET_AN; - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0, value); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0, value); + + if ((priv->enet_if == PHY_INTERFACE_MODE_QSGMII) && (i < 3)) { + i++; + goto qsgmii_loop; + } #else struct dtsec *regs = priv->mac->base; struct tsec_mii_mng *phyregs = priv->mac->phyregs; @@ -91,6 +98,7 @@ static void dtsec_init_phy(struct eth_device *dev) #endif if (fm_eth->enet_if == PHY_INTERFACE_MODE_SGMII || + fm_eth->enet_if == PHY_INTERFACE_MODE_QSGMII || fm_eth->enet_if == PHY_INTERFACE_MODE_SGMII_2500) dtsec_configure_serdes(fm_eth); }