From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=a96bYg4c; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.167.66, mailfrom: mw@semihalf.com) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by groups.io with SMTP; Sun, 05 May 2019 19:37:21 -0700 Received: by mail-lf1-f66.google.com with SMTP id z124so1854282lfd.6 for ; Sun, 05 May 2019 19:37:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+Wy0hCyJQLrp38pYKAIzaKJySoO/dyBJLnA7gQgQdXU=; b=a96bYg4c67u1hJPBlEOWCR+40WBGrYwFlGOAXFrrn6e2tHnuholVuYlRpixKXXZQDv wiKYv7+nFCXvUz60gL5a9PolsT3hz7LtrF+fFvM9iDTstD576Ibghby0As9qVl+MDa/H 88U1z5+Ut2J8g1QJWP6VKtf04lSRteTi1w+wMQB5LxTz2AslLd1v45oo4SGBin6o4g4l JJ0dKK/yC5g3Fxs//tE0d2PHp0g19XuLrOK77FwYaj0c3GbXzFuRAzGxFPKtoK5ckSEr xUkht7SRYnoZFu+WQfhoeRP4djRLtEqcyQcBcwBiv1I59PNEqRdbg0PXaHRvDdsHMfrq jTBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+Wy0hCyJQLrp38pYKAIzaKJySoO/dyBJLnA7gQgQdXU=; b=qABjiFSWmrIlHmrnTv5NjKyaZTwiBtbL3Pgw+90oAYdNMj3SeEbr0egwI3ygL0uubt OwTvPI00CguiycfHNnWb2KgKjxWWFPUflW5i8D7WM5RqPkDBz5hdrmmR8sFHLKWOFCi6 CIdZpY30LphzfQlq859WPxjWl5rPKVzpiglutsul6P2lG/wo6nuBJvdDVfI4enJvumkL bXaK8b+CDoWG2pcDHyZXlb/eje7UJvuamfG0TMH1i+6gQ3v8O5ikMVYi0PsXaKPv7sHC kcwf5VRO81QuS/jQe17c+aODwnkphvj56Z3yWkgvOWiZNe/nQvS2ZBfAfeFc/g0Oo2xt z9tg== X-Gm-Message-State: APjAAAXUi+1Pd6OCkPzSGQ0FBZcKAopES7tJQ0EGCloiyIMfS8zvLcdk JrvqCHf7cb06scNq8urIw61H5xyNtiA= X-Google-Smtp-Source: APXvYqy4FFNyCw8ZOZxlwmkSUq7P3PHktCQM20cAd5uPuK+qaw7KaHGqvWz9qXbBku6lGS3Fy0yfEw== X-Received: by 2002:a19:520e:: with SMTP id m14mr11966031lfb.65.1557110239535; Sun, 05 May 2019 19:37:19 -0700 (PDT) Return-Path: Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id v6sm288378lfg.96.2019.05.05.19.37.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 05 May 2019 19:37:18 -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-platforms: PATCH v2 3/4] Marvell/Drivers: MvPhyDxe: Introduce 88E1112 initialization Date: Mon, 6 May 2019 04:37:06 +0200 Message-Id: <1557110227-31466-4-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1557110227-31466-1-git-send-email-mw@semihalf.com> References: <1557110227-31466-1-git-send-email-mw@semihalf.com> This patch adds 88E1112 PHY support and updates PortingGuide accordingly. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h | 17 ++++++++++- Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c | 31 ++++++++++++++++++++ Silicon/Marvell/Documentation/PortingGuide.txt | 7 +++-- 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h index 66974bb..cd5a475 100644 --- a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h +++ b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.h @@ -75,7 +75,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define MIIM_88E1111_HWCFG_FIBER_COPPER_RES 0x2000 typedef enum { - MV_PHY_DEVICE_1512 + MV_PHY_DEVICE_1512, + MV_PHY_DEVICE_1112 } MV_PHY_DEVICE_ID; typedef @@ -97,4 +98,18 @@ MvPhyInit1512 ( IN OUT PHY_DEVICE *PhyDev ); +/** + Initialize Marvell 88E1112 PHY. + + @param[in] MvPhyProtocol Marvell PHY protocol instance. + @param[in out] *PhyDevice PHY device structure. + +**/ +STATIC +EFI_STATUS +MvPhyInit1112 ( + IN CONST MARVELL_PHY_PROTOCOL *MvPhyProtocol, + IN OUT PHY_DEVICE *PhyDevice + ); + #endif diff --git a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c index 63af640..81f9c0f 100644 --- a/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c +++ b/Silicon/Marvell/Drivers/Net/MvPhyDxe/MvPhyDxe.c @@ -66,6 +66,7 @@ STATIC UINT8 * CONST PhySmiAddresses = PcdGetPtr (PcdPhySmiAddresses); STATIC MV_PHY_DEVICE MvPhyDevices[] = { { MV_PHY_DEVICE_1512, MvPhyInit1512 }, + { MV_PHY_DEVICE_1112, MvPhyInit1112 }, { 0, NULL } }; @@ -382,6 +383,36 @@ MvPhyInit1512 ( return EFI_SUCCESS; } +/** + Initialize Marvell 88E1112 PHY. + + @param[in] MvPhyProtocol Marvell PHY protocol instance. + @param[in out] *PhyDevice PHY device structure. + +**/ +STATIC +EFI_STATUS +MvPhyInit1112 ( + IN CONST MARVELL_PHY_PROTOCOL *MvPhyProtocol, + IN OUT PHY_DEVICE *PhyDevice + ) +{ + EFI_STATUS Status; + + MvPhyM88e1111sConfig (PhyDevice); + + if (PcdGetBool (PcdPhyStartupAutoneg)) { + Status = MvPhyConfigureAutonegotiation (PhyDevice); + if (EFI_ERROR (Status)) { + return Status; + } + + MvPhyParseStatus (PhyDevice); + } + + return EFI_SUCCESS; +} + EFI_STATUS MvPhyInit ( IN CONST MARVELL_PHY_PROTOCOL *Snp, diff --git a/Silicon/Marvell/Documentation/PortingGuide.txt b/Silicon/Marvell/Documentation/PortingGuide.txt index 2603980..9dee5c8 100644 --- a/Silicon/Marvell/Documentation/PortingGuide.txt +++ b/Silicon/Marvell/Documentation/PortingGuide.txt @@ -146,7 +146,7 @@ Example PHY Driver configuration ======================== MvPhyDxe provides basic initialization and status routines for Marvell PHYs. -Currently only 1518 series PHYs are supported. Following PCDs are required: +Currently only 1512 and 1112 series PHYs are supported. Following PCDs are required: - gMarvellTokenSpaceGuid.PcdPhyStartupAutoneg (boolean - if true, driver waits for autonegotiation on startup) @@ -162,6 +162,7 @@ MV_PHY_DEVICE_ID: typedef enum { 0 MV_PHY_DEVICE_1512, + 1 MV_PHY_DEVICE_1112, } MV_PHY_DEVICE_ID; It should be extended when adding support for other PHY models. @@ -170,9 +171,9 @@ Disable autonegotiation: gMarvellTokenSpaceGuid.PcdPhyStartupAutoneg|FALSE -assuming, that PHY models are 1512: +assuming, that PHY models are 1512 and 1112 for two consecutive ports: - gMarvellTokenSpaceGuid.PcdPhyDeviceIds|{ 0x0, 0x0 } + gMarvellTokenSpaceGuid.PcdPhyDeviceIds|{ 0x0, 0x1 } MDIO configuration -- 2.7.4