From nobody Mon Feb 9 00:02:24 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+39930+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+39930+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1556841038; cv=none; d=zoho.com; s=zohoarc; b=EfyuQKUH4gEb25E+X7ZjMv+tZ+i7RzldOE/y4Z5QxhDvHxsLkcuQYRx+GiLW45VSayUTzWs3tq4SU/L6XwTtAAYRczilGbKPG9fim73Z0YIYKztaPp2tK6kx+MfExcjWjKuPgJmp0fpH2LJCgN+FFtJqohrh3me1lXRD6MwpaEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1556841038; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=M2Vy97oa/mAAznCMK/sBUNGCvq2tOMrUo1i/SQpbFwU=; b=kjQiSmHJcnJ0CAwDdK0ML1CI4dS1Ze/OJLIvmO3x66/xCtR5zXVBTbsnTKUoqhqnlPh5tHg1LMfIdX/hk4U+ClVWyHV7lSzGhRdI6Aeunb6pQAHNHqmSKTr7c65zLUlXzYhYV5/3UnRZsOd9ZP3aUpqggfjmlzlNAn8nm9LCyoQ= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+39930+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1556841038868921.5924011823037; Thu, 2 May 2019 16:50:38 -0700 (PDT) Return-Path: X-Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by groups.io with SMTP; Thu, 02 May 2019 16:50:38 -0700 X-Received: by mail-lj1-f193.google.com with SMTP id s7so3808746ljh.1 for ; Thu, 02 May 2019 16:50:37 -0700 (PDT) X-Gm-Message-State: APjAAAUFWvFgQ63Nu9VHa0nykhlU1/17C6VATlUpPELCK0HtLIqgD1fT hVsITIHwcmqxMB1ksdgqLnGFxLM2aNU1iA== X-Google-Smtp-Source: APXvYqxs5cNmOdayr8xgTw1o99hnanU+vM68mdWsGxVFwP89G/ghi+ey7LSCz3/3T4PRhVwi9ifslw== X-Received: by 2002:a2e:81d3:: with SMTP id s19mr3715029ljg.43.1556841035548; Thu, 02 May 2019 16:50:35 -0700 (PDT) X-Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id o17sm74078lji.23.2019.05.02.16.50.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 02 May 2019 16:50:34 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com, kostap@marvell.com, Jici.Gao@arm.com Subject: [edk2-devel] [edk2-platforms: PATCH 2/4] Marvell/Drivers: MvPhyDxe: Improve 88E1510 initialization Date: Fri, 3 May 2019 01:50:14 +0200 Message-Id: <1556841016-10342-3-git-send-email-mw@semihalf.com> In-Reply-To: <1556841016-10342-1-git-send-email-mw@semihalf.com> References: <1556841016-10342-1-git-send-email-mw@semihalf.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mw@semihalf.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1556841038; bh=RwIgkq8kQvN3D7NPSPJ4Kx6RZ+H7kpHC1x4TWUkp2Fg=; h=Cc:Date:From:Reply-To:Subject:To; b=rzaKqWg0Rmr99HP+pJ3gaerMZjxJkg6DlVChfXR1Q3BPDfiWzMPk+xPbjNytamDAEjq bADj2tYpfOc7b8Z8DJEenPCd5LuxmgP85/brfGTlNbeCxFbUxqbVd7OdD3UnUP6uczGmj vrBYooYWAyU3b4JdTIYI3dUK1MVEb8HahEo= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This patch adds only a non-functional change, extracting common startup autonegotiation configuration into a separate routine. It will be re-used in 88E1112 PHY support addition in a following patch. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c | 86 +++++++++++++------- 1 file changed, 57 insertions(+), 29 deletions(-) diff --git a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c b/Silicon/Marv= ell/Drivers/Net/MvPhyDxe/MvPhyDxe.c index 9be0489..780e8bd 100644 --- a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c +++ b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c @@ -251,6 +251,58 @@ MvPhyParseStatus ( return EFI_SUCCESS; } =20 +/** + Configure PHY device autonegotiation. + + @param[in out] *PhyDevice A pointer to configured PHY device stru= cture. + +**/ +STATIC +EFI_STATUS +MvPhyConfigureAutonegotiation ( + IN OUT PHY_DEVICE *PhyDevice + ) +{ + UINT32 Data; + INTN Index; + + /* Read BMSR register in order to check autoneg capabilities and status.= */ + Mdio->Read (Mdio, PhyDevice->Addr, PhyDevice->MdioIndex, MII_BMSR, &Data= ); + + if ((Data & BMSR_ANEGCAPABLE) && !(Data & BMSR_ANEGCOMPLETE)) { + + DEBUG ((DEBUG_INFO, + "%a: Waiting for PHY auto negotiation...", + __FUNCTION__)); + + /* Wait for autonegotiation to complete and read media status */ + for (Index =3D 0; !(Data & BMSR_ANEGCOMPLETE); Index++) { + if (Index > PHY_AUTONEGOTIATE_TIMEOUT) { + DEBUG ((DEBUG_ERROR, "%a: Timeout\n", __FUNCTION__)); + PhyDevice->LinkUp =3D FALSE; + return EFI_TIMEOUT; + } + gBS->Stall(1000); /* 1 ms */ + Mdio->Read (Mdio, PhyDevice->Addr, PhyDevice->MdioIndex, MII_BMSR, &= Data); + } + + PhyDevice->LinkUp =3D TRUE; + DEBUG ((DEBUG_INFO, "%a: link up\n", __FUNCTION__)); + } else { + Mdio->Read (Mdio, PhyDevice->Addr, PhyDevice->MdioIndex, MII_BMSR, &Da= ta); + + if (Data & BMSR_LSTATUS) { + PhyDevice->LinkUp =3D TRUE; + DEBUG ((DEBUG_INFO, "%a: link up\n", __FUNCTION__)); + } else { + PhyDevice->LinkUp =3D FALSE; + DEBUG ((DEBUG_INFO, "%a: link down\n", __FUNCTION__)); + } + } + + return EFI_SUCCESS; +} + STATIC VOID MvPhy1512WriteBits ( @@ -282,8 +334,7 @@ MvPhyInit1512 ( IN OUT PHY_DEVICE *PhyDev ) { - UINT32 Data; - INTN i; + EFI_STATUS Status; =20 if (PhyDev->Connection =3D=3D PHY_CONNECTION_SGMII) { /* Select page 0xff and update configuration registers according to @@ -321,34 +372,11 @@ MvPhyInit1512 ( if (!PcdGetBool (PcdPhyStartupAutoneg)) return EFI_SUCCESS; =20 - Mdio->Read (Mdio, PhyDev->Addr, PhyDev->MdioIndex, MII_BMSR, &Data); - - if ((Data & BMSR_ANEGCAPABLE) && !(Data & BMSR_ANEGCOMPLETE)) { - - DEBUG((DEBUG_ERROR, "MvPhyDxe: Waiting for PHY auto negotiation... ")); - for (i =3D 0; !(Data & BMSR_ANEGCOMPLETE); i++) { - if (i > PHY_AUTONEGOTIATE_TIMEOUT) { - DEBUG((DEBUG_ERROR, "timeout\n")); - PhyDev->LinkUp =3D FALSE; - return EFI_TIMEOUT; - } - - gBS->Stall(1000); /* 1 ms */ - Mdio->Read (Mdio, PhyDev->Addr, PhyDev->MdioIndex, MII_BMSR, &Data); - } - PhyDev->LinkUp =3D TRUE; - DEBUG((DEBUG_INFO, "MvPhyDxe: link up\n")); - } else { - Mdio->Read (Mdio, PhyDev->Addr, PhyDev->MdioIndex, MII_BMSR, &Data); - - if (Data & BMSR_LSTATUS) { - PhyDev->LinkUp =3D TRUE; - DEBUG((DEBUG_INFO, "MvPhyDxe: link up\n")); - } else { - PhyDev->LinkUp =3D FALSE; - DEBUG((DEBUG_INFO, "MvPhyDxe: link down\n")); - } + Status =3D MvPhyConfigureAutonegotiation (PhyDev); + if (EFI_ERROR (Status)) { + return Status; } + MvPhyParseStatus (PhyDev); =20 return EFI_SUCCESS; --=20 2.7.4 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#39930): https://edk2.groups.io/g/devel/message/39930 Mute This Topic: https://groups.io/mt/31476853/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-