From patchwork Thu Mar 11 22:55:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Hancock X-Patchwork-Id: 1451583 X-Patchwork-Delegate: monstr@monstr.eu Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=calian.com header.i=@calian.com header.a=rsa-sha256 header.s=selector1 header.b=xp2zBaG/; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DxPT8158gz9sCD for ; Fri, 12 Mar 2021 09:56:41 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5E3E1828EA; Thu, 11 Mar 2021 23:56:26 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=calian.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=calian.com header.i=@calian.com header.b="xp2zBaG/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EA14882919; Thu, 11 Mar 2021 23:56:24 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx0d-0054df01.pphosted.com (mx0d-0054df01.pphosted.com [67.231.150.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A9BF6828B9 for ; Thu, 11 Mar 2021 23:56:21 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=calian.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=robert.hancock@calian.com Received: from pps.filterd (m0209000.ppops.net [127.0.0.1]) by mx0c-0054df01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 12BMkZjU015428; Thu, 11 Mar 2021 17:56:18 -0500 Received: from can01-to1-obe.outbound.protection.outlook.com (mail-to1can01lp2051.outbound.protection.outlook.com [104.47.61.51]) by mx0c-0054df01.pphosted.com with ESMTP id 375yymh9nm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 11 Mar 2021 17:56:18 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z+B+K/A0gtL1zJTl8VmXrxVnR11M6z/Zpwnh4XayJLXuMtaZ8QIznYKFcXmOlol09TwvVQb6uqd+/gm+TjSFVc65DkUjR4+t161m936adXaEmgjzAxmDsSq2ZCyvtIy0vCGQjaS8No3uFeGXn+w7ys4mokAgwzWwNKqo6ql4Fx63w0TldU2kPy0fmdJ9pMlXfgtr86OiuoBmgQZS3fcByKd+LT8wv6eZP5q0LYeeth8slfrxAdUmYOj2Dw6lyO1DUjj0/z1KfSFTqq5SskizxxO2PtbSKO5tAmE4IgraGmLTh/UlQ7KA+nBBuEe61JqViy2mcE6IHzc1PkfdVkOtQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=klvyRwtyBsyW0f95m0lpokp+irYn+fI1xbJ07jOfSS8=; b=eBX/967kWZg1wmugwUMtR23NyQ5G7cuOZNPrQnFy8CZKIRfx95zP0Ug/MJQBnIDw2R3lrfSr/+QWrg1bF57Iw9v6coa6owGdKIyP9YdR+45kw3gOsl8yH1KwGQMRfFs6IW2UjFq6KaW8C5NJnfAjqgutFKSoCIG0ODwgr7JptFRfjy4h9ciWM3q+y0x7IUCJew+R/vR2hxL0fMnNYbCKOjwGo+vzXiKcbDReS392WPJVJhwdTySst0EZARIw4VWQYX0JfCgBrz2Db4n0rSuAf3XyudqVp5zlR676O/sdxwHXQcSOohN3JkN4+bA1WVCMyboKl3zkCJhhJVFY811/aw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=calian.com; dmarc=pass action=none header.from=calian.com; dkim=pass header.d=calian.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=calian.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=klvyRwtyBsyW0f95m0lpokp+irYn+fI1xbJ07jOfSS8=; b=xp2zBaG/1U//yAbsLBtlSOx4TzD03suV9YRz5xhM9MuFHq0LI/G7VynnC+OUQ3BkSqLzgyK8kLDI3wY7KaHDp84QM76e1+uzjuY4TfafWZCM/wKrujos3dAEUE6qoEkq+RoR4YiXa1O/vWVBA6goxUfcIfitc4dnAv757H5/jTE= Authentication-Results: xilinx.com; dkim=none (message not signed) header.d=none;xilinx.com; dmarc=none action=none header.from=calian.com; Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) by YT1PR01MB2619.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.28; Thu, 11 Mar 2021 22:56:16 +0000 Received: from YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb]) by YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM ([fe80::90d4:4d5b:b4c2:fdeb%7]) with mapi id 15.20.3912.027; Thu, 11 Mar 2021 22:56:16 +0000 From: Robert Hancock To: michal.simek@xilinx.com Cc: joe.hershberger@ni.com, rfried.dev@gmail.com, u-boot@lists.denx.de, Robert Hancock Subject: [PATCH] net: gem: Fix setting PCS auto-negotiation state Date: Thu, 11 Mar 2021 16:55:50 -0600 Message-Id: <20210311225550.3840923-1-robert.hancock@calian.com> X-Mailer: git-send-email 2.27.0 X-Originating-IP: [204.83.154.189] X-ClientProxiedBy: DM6PR11CA0023.namprd11.prod.outlook.com (2603:10b6:5:190::36) To YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:f::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (204.83.154.189) by DM6PR11CA0023.namprd11.prod.outlook.com (2603:10b6:5:190::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 22:56:15 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 02375d10-28bf-47eb-1656-08d8e4e0e0aa X-MS-TrafficTypeDiagnostic: YT1PR01MB2619: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A/fwo6hQ/n7criymowGKxYDDOO0Hy1fUA28xw1+yrrjtW5i0aKkS3ZZwo+hvY3ZNyWIrwojHBjX5MjWGHlYE1PgmFgRlosklO1BGpta8WMMXlI9j21h4Vw54TVZ9MhFSIKO+dxTnr8GtaaqeJcRMgCBPNw4pGMQ0h71oS9Q/xXLjj3Cy3VJpTBsEJCaUt5WQxqB440TkK+zB9b0Foivc+Ezq/oYvkuT3oeH6RCRmPve7X+wz69j2M/Wq1L/2tS34/pf2pHokcrY7jcy+C4E2lh+1K48ZqvSFda8GoxGcSpxNaWBQFzdFNVniN9ElsMp1v0Q2Mogk/9sy6flPapSSRu4IY8BOjNAn2gqmiGWeVqdYYAVa0qSGy5KKngTzbuegzoQReI2Nlq5n6cGiy0aJMX1pn0OlMPQRU+cWBgf2zDJ6jqH3lewmxGfLzhs25fyRG9pEWeMTVeTJ0zWgaIyZ2dmrW7744QW2qnyg55O0HO/hYxSirBQo13lda6Od1vve7KpXuGhmFVeo+PjSaSybsAn6LWL7cTfiDz5OJYKt2vMHCBM/I3vm95rBIazxr6IOyflHLbJGbv+foZSR1GTeLg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(366004)(346002)(136003)(376002)(396003)(36756003)(52116002)(6916009)(6666004)(69590400012)(316002)(66476007)(1076003)(66946007)(66556008)(478600001)(26005)(44832011)(5660300002)(83380400001)(86362001)(186003)(956004)(8936002)(2906002)(8676002)(4326008)(6486002)(6512007)(107886003)(16526019)(6506007)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ko/h7PI1OSrIXmhno51kurd7lYpaR7aqrLQzMFBeo6extr/LP0WNLpuxSXjc9eUGw44qcBOK0E4viV1adxvhFJK8Lqm2hYxMMlh1vZVufFkiAEBE7Rio+xKqFnxjbznoc9Ggo8K0KJcVYwmLMeYZqcpwXNCkakG3YFmzU2+fFa5Nhnjcl3Jb9Bgc9cJauYkGyvLa32B6ecym522NJl/ds8B41DIQFxsVasWwIYW0LEeOoewxi4HflmdZ9+SAX0XrEkxJPvGTzHJ+Ym0N2WgjlheL7WtXdhIePgp8LSF2FvKDpPn9JiJS/rFy5MwJ1jK2t4aHyktebtHLatqLPGT9q5UZnl7uO/YAu4+WIP7qJ4nSX2IHWvG2+9hEluNRS2ttq/UnTRQwtqsAwJ/pTOj4tsx/Yu2z6OM37oUxDaGASInmS1PGtUyMlHlcwarZEYW/St/B3+bc85+nMRpj0S4FLNHMFyXHbz8gILxd/wGLGTugIFADK81dSmoPIhEOOIU4ET6zV7tUvXAdtYXOsq/Z/hu43KUxUnJoN7KzG8zTWQmVGNvXrbXGRFTYRGswCIc0gHmavKFGxD5tDADR5bPHlDwTPxj52HWRon5/0eDG8IZ9PUTW3JJ5Tg4+Z2yxaQ2CtOTb9V0szLSpWse8erBlITSH6YwzD61MoGvThCZXBri/IJ9Rb5hYpM2B/GcGLKTE8xPihvgHd1YmTm7A7IxoS2ODb31R56AMvQAwLdTkMw16yaWJfmv/VXkgKzJte/PSe6VJ2Tzb7FRdwC/jTsfGQrEtlLe/VhU0mierQhfLxiT3FCc1ZArfMtLTtaSD7srihmz0Z9jaQwDTJ24VfAGKE3X9q9yyyPp14GUEOAesjLLhFZa9bXz9917zsCLKMAf/6CW8Oyp7vX52/JXLeRqQzHcz0Z2OocxA3Fuj4tX8lqK684MiwiTHuJeHfdmgeg7V1dNW5MxvEVOmfZIChUzk9Q8/+koId9Hc3P8khI3hGCBhgEUW8n5P1eUxxT+ZiUxRC0tfQ9xxRKzAeVr4uaoU/qxqBWvzpsRG7OFbHEcVVqxLaE2f6iXoXZpcErFXo+6kSaTtc6Y5q+2NT8yGroOj9rXlsr8CMCnQqwTg72Md9H8Li/b55ufjjazhIDar8dEzhHtmkbLfF6i8hs5LswA+nKp9wMkDux+lSYG5PUg6OlDH+ETMDKqERluvaY6bYUM8C4LSpW3AnqigggDPKXpfNdTRnRUvZWqGGY1INVbMvoFWHzLD4Hbx1VBP227wStLkoZ4cqVHBanc5vp8pQCgfDthPDrJPwwsfHFl/LfN+B/OstLRkWC/3Lxq/tskxZh0d X-OriginatorOrg: calian.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02375d10-28bf-47eb-1656-08d8e4e0e0aa X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB3546.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 22:56:16.8164 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 23b57807-562f-49ad-92c4-3bb0f07a1fdf X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: US8BuvT50GZvEyBqX58ZEy7Amz9lJI8B2dIpZwFs7ymjdQbmnci7JmBVBr7sr0ggIiPcqS41pbO2oap1302GezzklCpLOYSuwnW7txXSXf4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT1PR01MB2619 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369, 18.0.761 definitions=2021-03-11_12:2021-03-10, 2021-03-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 clxscore=1011 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103110121 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean The code was trying to disable PCS auto-negotiation when a fixed-link node is present and enable it otherwise. However, the PCS registers were being written before the PCSSEL bit was set in the network configuration register, and it appears that in this state, PCS register writes are ignored. The result is that the intended change only took effect on the second network operation that was performed, since at that time PCSSEL is already enabled. Fix the order of register writes so that PCS registers are only written to after the PCS is enabled. Fixes: 26e62cc971 ("net: gem: Disable PCS autonegotiation in case of fixed-link") Signed-off-by: Robert Hancock Reviewed-by: Ramon Fried Reviewed-by: Ashok Reddy Soma --- drivers/net/zynq_gem.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index baf06a2ad8..ff59982267 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -454,14 +454,6 @@ static int zynq_gem_init(struct udevice *dev) priv->int_pcs) { nwconfig |= ZYNQ_GEM_NWCFG_SGMII_ENBL | ZYNQ_GEM_NWCFG_PCS_SEL; -#ifdef CONFIG_ARM64 - if (priv->phydev->phy_id != PHY_FIXED_ID) - writel(readl(®s->pcscntrl) | ZYNQ_GEM_PCS_CTL_ANEG_ENBL, - ®s->pcscntrl); - else - writel(readl(®s->pcscntrl) & ~ZYNQ_GEM_PCS_CTL_ANEG_ENBL, - ®s->pcscntrl); -#endif } switch (priv->phydev->speed) { @@ -480,6 +472,23 @@ static int zynq_gem_init(struct udevice *dev) break; } +#ifdef CONFIG_ARM64 + if (priv->interface == PHY_INTERFACE_MODE_SGMII && + priv->int_pcs) { + /* + * Disable AN for fixed link configuration, enable otherwise. + * Must be written after PCS_SEL is set in nwconfig, + * otherwise writes will not take effect. + */ + if (priv->phydev->phy_id != PHY_FIXED_ID) + writel(readl(®s->pcscntrl) | ZYNQ_GEM_PCS_CTL_ANEG_ENBL, + ®s->pcscntrl); + else + writel(readl(®s->pcscntrl) & ~ZYNQ_GEM_PCS_CTL_ANEG_ENBL, + ®s->pcscntrl); + } +#endif + ret = clk_set_rate(&priv->tx_clk, clk_rate); if (IS_ERR_VALUE(ret)) { dev_err(dev, "failed to set tx clock rate\n");