From nobody Mon Feb 9 11:29:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+59358+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+59358+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1589310018; cv=none; d=zohomail.com; s=zohoarc; b=IwICURz53BnuUi6xhwfwRj+L17J/wlwc/7pDJxU7orkMTXXiTjaMOvksZoZYOnxeA3suxvrAztAL+YVEnzLAp43kf1tWwYOKPMF6cHWgZMbxDkakkD2kk63MGHm9lRTAwqcC+zmhHTDbOcGaF0HPhFspmz+/QOz6ZXrf2JNHFrQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589310018; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=b9m9cRA7btAa7XCXXFh60sva6ko3zwv9ZjShtZZvlh4=; b=BiqT5+p+6jDyRnGVTyN7V8/ldEDjbh4WhpbJsNTIaUjfTBeH7K6CY15vOVCVK/nISZy2zd/RbwzGHl1n9fYuyGIj/MMQ9DjvczKgHvE4O6H99bO75H49R5sBVe1q1BGw0QasbXTP8hwucpHsvOTU8gI85xoGY/5/Ak6N7tVko04= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+59358+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1589310018591927.5157850729435; Tue, 12 May 2020 12:00:18 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id tpuqYY1788612xcvLe4omvQv; Tue, 12 May 2020 12:00:18 -0700 X-Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by mx.groups.io with SMTP id smtpd.web12.1777.1589310016908086647 for ; Tue, 12 May 2020 12:00:17 -0700 X-Received: by mail-lj1-f193.google.com with SMTP id u15so14950541ljd.3 for ; Tue, 12 May 2020 12:00:16 -0700 (PDT) X-Gm-Message-State: DMwkW3fRGNlmPznTYw8aRhRXx1787277AA= X-Google-Smtp-Source: ABdhPJw0TOPqcD9Y4PDODgR7wWxgO0uhefPWXnM0WJXHKTcoZFvPat0IBQbmJ/ujYzeVooSXXi3DHA== X-Received: by 2002:a2e:9bc4:: with SMTP id w4mr15378773ljj.178.1589310014842; Tue, 12 May 2020 12:00:14 -0700 (PDT) X-Received: from gilgamesh.semihalf.com (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id 5sm98247lju.87.2020.05.12.12.00.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 May 2020 12:00:14 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: ard.biesheuvel@arm.com, leif@nuviainc.com, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com, kostap@marvell.com Subject: [edk2-devel] [edk2-platforms: PATCH 1/3] Marvell/Library: UtmiLib: update USB2.0 analog settings Date: Tue, 12 May 2020 20:59:29 +0200 Message-Id: <1589309971-12939-2-git-send-email-mw@semihalf.com> In-Reply-To: <1589309971-12939-1-git-send-email-mw@semihalf.com> References: <1589309971-12939-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=1589310018; bh=dikOQtI8DvMFVb/jn71Q13xkZ1UoOq+B4gVrusK/ngQ=; h=Cc:Date:From:Reply-To:Subject:To; b=ahMeGgVdM/771Ojca1IiJOs7Hep0OXC2PP6gwr4lEOSk2P6ED6gcyCd6WT5U7974JGV QU9OxNwAqBOJjl1bxRJ9dNY6kXCJi5RGygIT7yTE6sOR+d/OxT7yIKcikxomhfZJZYhUC pueYx+DVP9BpqWo2QfGKIZ2P2TRizNryu/U= 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 introduce following modifications, allowing to overcome the instabilities observed with certain USB2.0 endpoints: * Add additional step which enables the Impedance and PLL calibration. * Enable old squelch detector instead of the new analog squelch detector circuit and update host disconnect threshold value. * Update LS TX driver strength coarse and fine adjustment values. Signed-off-by: Grzegorz Jaszczyk Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h | 10 +++++++- Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c | 26 ++++++++++++++------ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h b/Silicon/Marv= ell/Library/UtmiPhyLib/UtmiPhyLib.h index 20e3133..8659110 100644 --- a/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h +++ b/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.h @@ -44,6 +44,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define UTMI_CALIB_CTRL_REG 0x8 #define UTMI_CALIB_CTRL_IMPCAL_VTH_OFFSET 8 #define UTMI_CALIB_CTRL_IMPCAL_VTH_MASK (0x7 << UTMI_CALIB_CTRL_= IMPCAL_VTH_OFFSET) +#define UTMI_CALIB_CTRL_IMPCAL_START_OFFSET 13 +#define UTMI_CALIB_CTRL_IMPCAL_START_MASK (0x1 << UTMI_CALIB_CTRL_= IMPCAL_START_OFFSET) +#define UTMI_CALIB_CTRL_PLLCAL_START_OFFSET 22 +#define UTMI_CALIB_CTRL_PLLCAL_START_MASK (0x1 << UTMI_CALIB_CTRL_= PLLCAL_START_OFFSET) #define UTMI_CALIB_CTRL_IMPCAL_DONE_OFFSET 23 #define UTMI_CALIB_CTRL_IMPCAL_DONE_MASK (0x1 << UTMI_CALIB_CTRL_= IMPCAL_DONE_OFFSET) #define UTMI_CALIB_CTRL_PLLCAL_DONE_OFFSET 31 @@ -54,8 +58,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define UTMI_TX_CH_CTRL_DRV_EN_LS_MASK (0xf << UTMI_TX_CH_CTRL_= DRV_EN_LS_OFFSET) #define UTMI_TX_CH_CTRL_IMP_SEL_LS_OFFSET 16 #define UTMI_TX_CH_CTRL_IMP_SEL_LS_MASK (0xf << UTMI_TX_CH_CTRL_= IMP_SEL_LS_OFFSET) +#define UTMI_TX_CH_CTRL_AMP_OFFSET 20 +#define UTMI_TX_CH_CTRL_AMP_MASK (0x7 << UTMI_TX_CH_CTRL_= AMP_OFFSET) =20 #define UTMI_RX_CH_CTRL0_REG 0x14 +#define UTMI_RX_CH_CTRL0_DISCON_THRESH_OFFSET 8 +#define UTMI_RX_CH_CTRL0_DISCON_THRESH_MASK (0x3 << UTMI_RX_CH_CTRL0= _DISCON_THRESH_OFFSET) #define UTMI_RX_CH_CTRL0_SQ_DET_OFFSET 15 #define UTMI_RX_CH_CTRL0_SQ_DET_MASK (0x1 << UTMI_RX_CH_CTRL0= _SQ_DET_OFFSET) #define UTMI_RX_CH_CTRL0_SQ_ANA_DTC_OFFSET 28 @@ -63,7 +71,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent =20 #define UTMI_RX_CH_CTRL1_REG 0x18 #define UTMI_RX_CH_CTRL1_SQ_AMP_CAL_OFFSET 0 -#define UTMI_RX_CH_CTRL1_SQ_AMP_CAL_MASK (0x3 << UTMI_RX_CH_CTRL1= _SQ_AMP_CAL_OFFSET) +#define UTMI_RX_CH_CTRL1_SQ_AMP_CAL_MASK (0x7 << UTMI_RX_CH_CTRL1= _SQ_AMP_CAL_OFFSET) #define UTMI_RX_CH_CTRL1_SQ_AMP_CAL_EN_OFFSET 3 #define UTMI_RX_CH_CTRL1_SQ_AMP_CAL_EN_MASK (0x1 << UTMI_RX_CH_CTRL1= _SQ_AMP_CAL_EN_OFFSET) =20 diff --git a/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c b/Silicon/Marv= ell/Library/UtmiPhyLib/UtmiPhyLib.c index 3881ebd..60ea06e 100644 --- a/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c +++ b/Silicon/Marvell/Library/UtmiPhyLib/UtmiPhyLib.c @@ -117,24 +117,34 @@ UtmiPhyConfig ( RegSet (UtmiBaseAddr + UTMI_PLL_CTRL_REG, Data, Mask); =20 /* Impedance Calibration Threshold Setting */ - RegSet (UtmiBaseAddr + UTMI_CALIB_CTRL_REG, - 0x6 << UTMI_CALIB_CTRL_IMPCAL_VTH_OFFSET, - UTMI_CALIB_CTRL_IMPCAL_VTH_MASK); + Mask =3D UTMI_CALIB_CTRL_IMPCAL_VTH_MASK; + Data =3D 0x7 << UTMI_CALIB_CTRL_IMPCAL_VTH_OFFSET; + RegSet (UtmiBaseAddr + UTMI_CALIB_CTRL_REG, Data, Mask); + + /* Start Impedance and PLL Calibration */ + Mask =3D UTMI_CALIB_CTRL_PLLCAL_START_MASK; + Data =3D (0x1 << UTMI_CALIB_CTRL_PLLCAL_START_OFFSET); + Mask |=3D UTMI_CALIB_CTRL_IMPCAL_START_MASK; + Data |=3D (0x1 << UTMI_CALIB_CTRL_IMPCAL_START_OFFSET); + RegSet (UtmiBaseAddr + UTMI_CALIB_CTRL_REG, Data, Mask); =20 /* Set LS TX driver strength coarse control */ - Mask =3D UTMI_TX_CH_CTRL_DRV_EN_LS_MASK; - Data =3D 0x3 << UTMI_TX_CH_CTRL_DRV_EN_LS_OFFSET; - /* Set LS TX driver fine adjustment */ + Mask =3D UTMI_TX_CH_CTRL_AMP_MASK; + Data =3D 0x4 << UTMI_TX_CH_CTRL_AMP_OFFSET; Mask |=3D UTMI_TX_CH_CTRL_IMP_SEL_LS_MASK; Data |=3D 0x3 << UTMI_TX_CH_CTRL_IMP_SEL_LS_OFFSET; + Mask |=3D UTMI_TX_CH_CTRL_DRV_EN_LS_MASK; + Data |=3D 0x3 << UTMI_TX_CH_CTRL_DRV_EN_LS_OFFSET; RegSet (UtmiBaseAddr + UTMI_TX_CH_CTRL_REG, Data, Mask); =20 /* Enable SQ */ Mask =3D UTMI_RX_CH_CTRL0_SQ_DET_MASK; - Data =3D 0x0 << UTMI_RX_CH_CTRL0_SQ_DET_OFFSET; + Data =3D 0x1 << UTMI_RX_CH_CTRL0_SQ_DET_OFFSET; /* Enable analog squelch detect */ Mask |=3D UTMI_RX_CH_CTRL0_SQ_ANA_DTC_MASK; - Data |=3D 0x1 << UTMI_RX_CH_CTRL0_SQ_ANA_DTC_OFFSET; + Data |=3D 0x0 << UTMI_RX_CH_CTRL0_SQ_ANA_DTC_OFFSET; + Mask |=3D UTMI_RX_CH_CTRL0_DISCON_THRESH_MASK; + Data |=3D 0x0 << UTMI_RX_CH_CTRL0_DISCON_THRESH_OFFSET; RegSet (UtmiBaseAddr + UTMI_RX_CH_CTRL0_REG, Data, Mask); =20 /* Set External squelch calibration number */ --=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 (#59358): https://edk2.groups.io/g/devel/message/59358 Mute This Topic: https://groups.io/mt/74165929/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-