From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:4010:c07::242; helo=mail-lf0-x242.google.com; envelope-from=mw@semihalf.com; receiver=edk2-devel@lists.01.org Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 482F021CEB134 for ; Thu, 26 Oct 2017 18:10:52 -0700 (PDT) Received: by mail-lf0-x242.google.com with SMTP id a132so5675043lfa.7 for ; Thu, 26 Oct 2017 18:14:38 -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=+pgbiwN6vf/suH442VjrtTqEaZr6+AdUix4BO1mVPTY=; b=ygsgnWv+rTBPi7+1sxNpMSkey9I9u+YBFedAKUCTQAU8AuS8QaU7EUUG9kwsyeM7vP JuRJsfZMQuyKUFImDV10ARF/p0qfz5b/wHHfcl3w3uPtMqKl6ILEfgu9hP+TH3Fs1Vkk xQ6khTDAl4Lt/k4e+ftFsMa28xN2xq6RuSwEjJXUD1j14AdYtrUabhlwF4uh3vgCase6 lUxej6uzlZ9yeJa5gWF0PtF1gOWgTg9AwoJwmkKsLTW9W5IFQhmobmZXSkK/vMi54eKC VFFOFddlGlHqsChYzh1NpyTHcZ9ID0hI6GAYGqt+D6vkUqb08GaLzlihwYZCA/gqPTHj 7Q7A== 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=+pgbiwN6vf/suH442VjrtTqEaZr6+AdUix4BO1mVPTY=; b=Gjcu42SEJBfsEYZKu5MND6Jr+Amn9RrbbTBl5VbhCyLylQr1KzmopIlQtKP7jgNx9W MCDANxc7CaguVq2rr0jmrsAalyDltJDW7/sFghlffhqEpQkkBbthZOcyFQlt1B83Nu/z KsHctjeDf7Re1YFdFJQ9Q/TnkoGoZ5H/lzBIAZxRb1sRHJIJOFoWi8QPDChCjLC8DAGd x30hWQ75Uvqnu2xeKuNoXEcUHrqOghtPr/7RvN98wduWH2ucJDYtuuSpJ05V1MGvBYgX AOFo+2Kzm53WJrAd8KTCmGkLoRMxE3k8rXJhmuPdYANiB/uWXCn2Oz80R5E+XsBRiddB JD5Q== X-Gm-Message-State: AMCzsaXqozCVrmDsnp7EKXkj/NhPJ3Wf2VvCKFIsY0FnkMWp7/WM10kG Y8jfY3uCMn/4EVLV61pKX+HRC+z1x8w= X-Google-Smtp-Source: ABhQp+Q274TFsQTP84M1Lyr2TJa4D1Wck8k+uXSao69POHwtJzYd8jnQdKtsb4ko+QAcYHDh2IQAiA== X-Received: by 10.46.80.30 with SMTP id e30mr11003707ljb.126.1509066876806; Thu, 26 Oct 2017 18:14:36 -0700 (PDT) Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id m9sm1675702ljb.61.2017.10.26.18.14.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 26 Oct 2017 18:14:36 -0700 (PDT) From: Marcin Wojtas To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, nadavh@marvell.com, neta@marvell.com, kostap@marvell.com, jinghua@marvell.com, mw@semihalf.com, jsd@semihalf.com Date: Fri, 27 Oct 2017 03:13:49 +0200 Message-Id: <1509066832-5285-8-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1509066832-5285-1-git-send-email-mw@semihalf.com> References: <1509066832-5285-1-git-send-email-mw@semihalf.com> Subject: [platforms: PATCH v2 07/10] Marvell/Drivers: Pp2Dxe: Change settings for the always-up link X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2017 01:10:52 -0000 Currently initial forcing link status happened for all ports, not only marked as 'always-up'. Although this didn't actually matter for the MAC settings, because MAC is automatically updated with PHY HW polling feature of the controller, perform mv_gop110_fl_cfg only when the appropriate flag is true. Also in such case, force the link as up, using a new library routine. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.c | 25 ++++++++++++++++++++ Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.h | 6 +++++ Platform/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c | 6 ++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.c b/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.c index 53154db..c2d0199 100644 --- a/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.c +++ b/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.c @@ -4804,6 +4804,31 @@ MvGop110PortEventsMask ( return 0; } +/* + * Sets "Force Link Pass" and "Do Not Force Link Fail" bits. + * This function should only be called when the port is disabled. + */ +VOID +MvGop110GmacForceLinkModeSet( + IN PP2DXE_PORT *Port, + IN BOOLEAN LinkUp + ) +{ + UINT32 RegVal; + + RegVal = MvGop110GmacRead (Port, MVPP2_PORT_AUTO_NEG_CFG_REG); + + if (LinkUp) { + RegVal |= MVPP2_PORT_AUTO_NEG_CFG_FORCE_LINK_UP_MASK; + RegVal &= ~MVPP2_PORT_AUTO_NEG_CFG_FORCE_LINK_DOWN_MASK; + } else { + RegVal &= ~MVPP2_PORT_AUTO_NEG_CFG_FORCE_LINK_UP_MASK; + RegVal |= MVPP2_PORT_AUTO_NEG_CFG_FORCE_LINK_DOWN_MASK; + } + + MvGop110GmacWrite (Port, MVPP2_PORT_AUTO_NEG_CFG_REG, RegVal); +} + INT32 MvGop110FlCfg ( IN PP2DXE_PORT *Port diff --git a/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.h b/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.h index a7011f7..3ebe294 100644 --- a/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.h +++ b/Platform/Marvell/Drivers/Net/Pp2Dxe/Mvpp2Lib.h @@ -504,6 +504,12 @@ MvGop110XlgPortLinkEventMask ( IN PP2DXE_PORT *Port ); +VOID +MvGop110GmacForceLinkModeSet ( + IN PP2DXE_PORT *Port, + IN BOOLEAN LinkUp + ); + INT32 MvGop110FlCfg ( IN PP2DXE_PORT *Port diff --git a/Platform/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c b/Platform/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c index 2827976..4a1b9d5 100644 --- a/Platform/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c +++ b/Platform/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c @@ -1310,7 +1310,11 @@ Pp2DxeInitialiseController ( NetCompConfig |= MvpPp2xGop110NetcCfgCreate(&Pp2Context->Port); MvGop110PortInit(&Pp2Context->Port); - MvGop110FlCfg(&Pp2Context->Port); + + if (Pp2Context->Port.AlwaysUp == TRUE) { + MvGop110GmacForceLinkModeSet (&Pp2Context->Port, TRUE); + MvGop110FlCfg (&Pp2Context->Port); + } Status = gBS->CreateEvent ( EVT_SIGNAL_EXIT_BOOT_SERVICES, -- 2.7.4