From patchwork Thu Jun 17 14:35:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1493559 X-Patchwork-Delegate: priyanka.jain@nxp.com 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=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=RU45wRrM; 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)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4G5Ply29lZz9sT6 for ; Fri, 18 Jun 2021 00:37:34 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5FE1982BB8; Thu, 17 Jun 2021 16:36:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="RU45wRrM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 793CE82B00; Thu, 17 Jun 2021 16:36:24 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2062b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::62b]) (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 C730382A1A for ; Thu, 17 Jun 2021 16:36:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=vladimir.oltean@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QPKQ8pSu0UV44Vvrs4h9N2amm+KQOEeivwiQ926w9+1+msF/ByvU37PoTdTP/iuDkjmGokNOfjj7xSYrKiJLybe723zp38Wj+/UHsXRVf+/R3FC2f95lA/rfmRrHjI8pPzXi7oO/Q2NYLa7/8OLWvGQagrz92GXvGAbLPHu+Gz0QvqNn1Dr63NiJCMaDoI+b6vPGaHaIbXIbSiuEmIiFLW6/TjQoDk1qe2wHhYDbZMwC1KxkzYX9jluwEUYUHmH/UcneKoeRjNVZkxr/Vs4JxoaPySe5bwRfXD69GxNjWh7munxgxgHYcEGbkIh1CeNSlKtzGZfoc0XaxmpumJU6EQ== 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=FU9VVxasgvwsKHjU2fljqxbE9yPXzr3j2fS8tzsfPZw=; b=dcp8ArwW9Mo0jYt7943v17K4SK+vjDbm3Gutsao3HR9FatsPYzKu5zFNfXwpIZpz8KuMVDMQDxzaPA1ZF6R8OVa6tGSyCqEcXL06iDsPZdww9wFT4uNon/QZcqpZn8e8RQiFRn/zka0Mt31EU5XGa9Oc30Nh9/7ibjQS+RJ8i8g08hr3NWsNl3OisFfwDl+whlVnjJ9Ck03uGpyalU4iBYsCXIOd9mFbpgfbHNY90QNAT2YzeMsUkg26HfN1I51K7w00fo3hVPcUH/xX2Vir8qQoQE8EqaQjTsUhmqj8JWF6tg8UQ4N0VUF59xIi0tmqUWs8PIb5QeTJDyj7mlzAhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FU9VVxasgvwsKHjU2fljqxbE9yPXzr3j2fS8tzsfPZw=; b=RU45wRrM+GLkIGcxeExdcezpMdy4QKDw1T2BzGY0veybdGQYHkR0gO+oy5RMK2XuD/lK1DzdqPGqwK/lYAQCJBxuroXSlULV50rwZdbCe89Tr0/KgSOVmSa7zdL//ztbF6+dj/dfQSL1beefQVBrj9OmgEEiRJqC4X8QQgHUM2c= Authentication-Results: ni.com; dkim=none (message not signed) header.d=none;ni.com; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by VI1PR04MB3965.eurprd04.prod.outlook.com (2603:10a6:803:3e::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.18; Thu, 17 Jun 2021 14:36:18 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::b1a0:d654:a578:53ab]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::b1a0:d654:a578:53ab%7]) with mapi id 15.20.4219.025; Thu, 17 Jun 2021 14:36:18 +0000 From: Vladimir Oltean To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Claudiu Manoil , Priyanka Jain , Bin Meng Subject: [PATCH 6/6] drivers: net: fsl_enetc: force the RGMII MAC speed/duplex instead of using in-band signaling Date: Thu, 17 Jun 2021 17:35:54 +0300 Message-Id: <20210617143554.2104712-7-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210617143554.2104712-1-vladimir.oltean@nxp.com> References: <20210617143554.2104712-1-vladimir.oltean@nxp.com> X-Originating-IP: [188.26.224.68] X-ClientProxiedBy: AM0PR02CA0004.eurprd02.prod.outlook.com (2603:10a6:208:3e::17) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (188.26.224.68) by AM0PR02CA0004.eurprd02.prod.outlook.com (2603:10a6:208:3e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Thu, 17 Jun 2021 14:36:17 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d7bc2b81-f11b-4d1c-690f-08d9319d4495 X-MS-TrafficTypeDiagnostic: VI1PR04MB3965: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:454; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 06uvWCFlQPJmh0DXw0CTbcKUE+KQNkjSe0b8am3LeSox1ERbNb3MUDkhWPWLGBY/IKF/5cOXdaRZKbmA2iTIftLzzsmAR/H++1oWiLV40LqHSAFmLD6FB1+VCGDj+uBrA868q1KRD5AgbRF2ugERkVlxJidemzOgJxVDDLxO3XFXSP8/cv2US+RvV0yzY5dMTDcHkLPZr+bORA9EnL5aY3y+boipGXKRBQ3sBUaz7O/RM+F1d+ZJ07Dg1COeikegUyNoOusCyw5b6+fKZ03A9ybKeCdDl2/SA/YrdG1SHEQzoX6CGWVm0Zh65cI01zMa1+axTc65Ex5XUGykiOX1ermlHqx3fnxrThaCTK6XjwE+nUFeLYkxUrt3WQ9KclEg1WHpKbi5JuDWz+jX9j5mwhzemu5dLdHXSO+8eUammbR3taC8tkwqCLIKE5U4E4OTmRCCi0kn8GmHjw57cZA3OVfD1IVn19yBscfqpPZ9kP1fU03Y46E+mnJldGNyt8lL1tsmDrzGc65Jgcp0skGWBoExypU2wVJMTKCq3hq8h9gOY+1+TrGHeznOtkhgBoxbBKCuRDO/te5NgnkN1PNdQoMi4iz6mIWGy5VC3YiwqUJ3/TbZECttDK9xpf4zdSn8Gv8HLPiyzfS9fnguAg1uWuwJPcGdB1uGgPT+NCT/Ww4dp67P8WV+3DsYQ8CBZrLP6QGEBCKUAt9tuQ6r75MqZrl6FbElkmT7YbbNKQqK4Mng0Ge5tb2t/dsb3cGJiVMg1lvz6UC6dLtP0JckbmZI01lRbArxBOtqCJQoxZmWol4qsUfkyZQAZ4EObvGZiBzW X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5136.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(110136005)(83380400001)(66476007)(36756003)(54906003)(1076003)(498600001)(66946007)(44832011)(966005)(4326008)(186003)(66556008)(38350700002)(86362001)(6512007)(2616005)(8676002)(2906002)(5660300002)(6666004)(52116002)(8936002)(26005)(38100700002)(6486002)(6506007)(16526019)(956004)(69590400013); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sru31J+37tsayqtcqdWf2cseCFBjYSIShMBDZoUfHx4LuLjXyFIDMDn21h0zy2+aocOMF5DbKwsoJT43+EJfv58pTkA8sZGdxN/GCtQ3IIv8qVSvA9SE8krZTyIkZMwz/KsoOHNl9OgPv9OWvauSoiM0Y0sojwPTxYkp/TGeLtJ8Al339voV4SXtNiGzIodC3unyxukyNolEbedossZXyQ9Aw24B7kevwtchhSGwq4CpExWzdYS7Jic+HVhLAmnd927NMlJyfDIljnodmc87PgJAO/JJlWNaI3ZBLfVKMqoy4uK5WjKRFYPO/h7dShQ9TSR2lI44VObB+R9smUP2JOra/Juu2qWakwerq3ucUYkFkELK9jp0TpPybRw7a1f+5Oaa3l1fNV/atKgzslDh0L2BTi6P1map4FsqclnmpfcocwpE5xOIljvdxI76TZDEwakE+QOCcP0j4Xn5aKzkKuPzBdzQ1jKwIKH0PVb2yCwKo0trWUFpT2FvMCvF1gPWplGbW/thX8D+Ys2dQMrh0gTI78tpwiocxa27y425lO15oxH6fMjHjevFcckLmF4CqgP3SKAciNVM2UKtuJIdNaLZ5/n7HPa8BFTfnEsofbpbyJ+KHLs+p6UxmL8ih4bLin3Rl1waSyT9ASGr8ANMpO3QNQpn4nN4bffGV10BJwUsJ/608oZfxZCeI9H9MmRegUgL7wFVfeBg0J8r8dcJ/C0QCauR/ih7aamYv9CFY5W2lVBxFucU1axLL8hKhMX4Llxddz702MsmObQ/bcn61TL953pGaz6n8LW11ayCp0IlMworPy25swnzH2fvxxv4QzNrcaGGHmRbLFwCSeJcsRgx98NK6wEZ2gkurPu1KmNmVkPJhhS3/dl3F5Y16P78HEPPcSUS7Bwz0TgepasXzWS61l/diEKeT8VclL91D8qlaTjuiPoJ/nAenj8acp5YKGmrvZG31dmWtbj8B2UTRkaRwBTpuNKDtK2vOmMom12CIGXw/rexMfj6J9WxvAADNw0wmkUcqrUj+oRVdDyMCSXRgPCLFsnfmn/4q4+E1v42q/GUqkp4sjoZHBKBR2L/mCdoc8+lJn6KrZBq6Yj1LFm3mgUm5L7a9frAJtiNWrkscqdqGlca9ygjSMRlJkrpFd7btdabqjwpJ3VUaYcSay5aux4uaO5gn+r//MrjfSiE+ACRce57r9RwxIrcIRXgoF7jXDPciqqjOxgX25OuYJqVNd3JbZGDshFTYWNqBnEaOgx9sso83ifOfwrglCFYLIrFls4sJiNz+M/QbWczZPNOst34uGzRIFk69iHw08NQoeiFHz0/r2Gt8aGP0eHj X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7bc2b81-f11b-4d1c-690f-08d9319d4495 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 14:36:18.3002 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lL7iv03yysk9k1H4jV1RSfd3jcBMJj6gHrSfLvGQsHkwW6GLT0BoTAbLyltsMCcjxeL4SxTberMJ1mt76RWQJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3965 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.103.2 at phobos.denx.de X-Virus-Status: Clean The same considerations apply to U-Boot as to Linux: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=c76a97218dcbb2cb7cec1404ace43ef96c87d874 This change is needed in order for enetc to be able to operate in RGMII fixed-link mode. Signed-off-by: Vladimir Oltean --- drivers/net/fsl_enetc.c | 44 ++++++++++++++++++++++++++++++----------- drivers/net/fsl_enetc.h | 5 +++++ 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c index 5961775024ff..de1e42f907e7 100644 --- a/drivers/net/fsl_enetc.c +++ b/drivers/net/fsl_enetc.c @@ -178,21 +178,43 @@ static int enetc_init_sgmii(struct udevice *dev) } /* set up MAC for RGMII */ -static int enetc_init_rgmii(struct udevice *dev) +static void enetc_init_rgmii(struct udevice *dev, struct phy_device *phydev) { struct enetc_priv *priv = dev_get_priv(dev); - u32 if_mode; + u32 old_val, val; - /* enable RGMII AN */ - if_mode = enetc_read_port(priv, ENETC_PM_IF_MODE); - if_mode |= ENETC_PM_IF_MODE_AN_ENA; - enetc_write_port(priv, ENETC_PM_IF_MODE, if_mode); + old_val = val = enetc_read_port(priv, ENETC_PM_IF_MODE); - return 0; + /* disable unreliable RGMII in-band signaling and force the MAC into + * the speed negotiated by the PHY. + */ + val &= ~ENETC_PM_IF_MODE_AN_ENA; + + if (phydev->speed == SPEED_1000) { + val &= ~ENETC_PM_IFM_SSP_MASK; + val |= ENETC_PM_IFM_SSP_1000; + } else if (phydev->speed == SPEED_100) { + val &= ~ENETC_PM_IFM_SSP_MASK; + val |= ENETC_PM_IFM_SSP_100; + } else if (phydev->speed == SPEED_10) { + val &= ~ENETC_PM_IFM_SSP_MASK; + val |= ENETC_PM_IFM_SSP_10; + } + + if (phydev->duplex == DUPLEX_FULL) + val |= ENETC_PM_IFM_FULL_DPX; + else + val &= ~ENETC_PM_IFM_FULL_DPX; + + if (val == old_val) + return; + + enetc_write_port(priv, ENETC_PM_IF_MODE, val); } /* set up MAC configuration for the given interface type */ -static void enetc_setup_mac_iface(struct udevice *dev) +static void enetc_setup_mac_iface(struct udevice *dev, + struct phy_device *phydev) { struct enetc_priv *priv = dev_get_priv(dev); u32 if_mode; @@ -202,7 +224,7 @@ static void enetc_setup_mac_iface(struct udevice *dev) case PHY_INTERFACE_MODE_RGMII_ID: case PHY_INTERFACE_MODE_RGMII_RXID: case PHY_INTERFACE_MODE_RGMII_TXID: - enetc_init_rgmii(dev); + enetc_init_rgmii(dev, phydev); break; case PHY_INTERFACE_MODE_XGMII: case PHY_INTERFACE_MODE_USXGMII: @@ -546,10 +568,10 @@ static int enetc_start(struct udevice *dev) enetc_setup_tx_bdr(dev); enetc_setup_rx_bdr(dev); - enetc_setup_mac_iface(dev); - phy_startup(priv->phy); + enetc_setup_mac_iface(dev, priv->phy); + return 0; } diff --git a/drivers/net/fsl_enetc.h b/drivers/net/fsl_enetc.h index 110c1d78fbc6..a4409505e043 100644 --- a/drivers/net/fsl_enetc.h +++ b/drivers/net/fsl_enetc.h @@ -77,6 +77,11 @@ enum enetc_bdr_type {TX, RX}; #define ENETC_PM_IF_MODE 0x8300 #define ENETC_PM_IF_MODE_RG BIT(2) #define ENETC_PM_IF_MODE_AN_ENA BIT(15) +#define ENETC_PM_IFM_SSP_MASK GENMASK(14, 13) +#define ENETC_PM_IFM_SSP_1000 (2 << 13) +#define ENETC_PM_IFM_SSP_100 (0 << 13) +#define ENETC_PM_IFM_SSP_10 (1 << 13) +#define ENETC_PM_IFM_FULL_DPX BIT(12) #define ENETC_PM_IF_IFMODE_MASK GENMASK(1, 0) /* buffer descriptors count must be multiple of 8 and aligned to 128 bytes */