From patchwork Mon Sep 4 10:46:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ran Wang X-Patchwork-Id: 809603 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xm6Zm6mchz9s8J for ; Mon, 4 Sep 2017 21:10:24 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id AAC40C21F26; Mon, 4 Sep 2017 11:09:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAD_ENC_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 7FBDAC21F5E; Mon, 4 Sep 2017 11:05:26 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4BA48C21EDF; Mon, 4 Sep 2017 11:04:28 +0000 (UTC) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0058.outbound.protection.outlook.com [104.47.34.58]) by lists.denx.de (Postfix) with ESMTPS id 65098C21EE1 for ; Mon, 4 Sep 2017 11:04:24 +0000 (UTC) Received: from DM5PR03CA0043.namprd03.prod.outlook.com (10.174.189.160) by BN6PR03MB3315.namprd03.prod.outlook.com (10.174.233.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Mon, 4 Sep 2017 11:04:22 +0000 Received: from BY2FFO11OLC004.protection.gbl (2a01:111:f400:7c0c::136) by DM5PR03CA0043.outlook.office365.com (2603:10b6:4:3b::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Mon, 4 Sep 2017 11:04:21 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BY2FFO11OLC004.mail.protection.outlook.com (10.1.15.184) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Mon, 4 Sep 2017 11:04:21 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v84B46Zb024642; Mon, 4 Sep 2017 04:04:18 -0700 From: Ran Wang To: open list , York Sun Date: Mon, 4 Sep 2017 18:46:50 +0800 Message-ID: <20170904104655.29103-4-ran.wang_1@nxp.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170904104655.29103-1-ran.wang_1@nxp.com> References: <20170904104655.29103-1-ran.wang_1@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131489966614259217; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(356003)(2906002)(69596002)(1076002)(85426001)(7416002)(50466002)(8656003)(189998001)(8936002)(86362001)(498600001)(5660300001)(8676002)(106466001)(50226002)(105606002)(626005)(48376002)(4326008)(305945005)(81166006)(81156014)(33646002)(77096006)(36756003)(47776003)(68736007)(6636002)(2950100002)(97736004)(50986999)(6666003)(76176999)(53936002)(104016004)(5003940100001)(54906002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB3315; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC004; 1:QzwWG9edfcSteyuA8aW+Tttn/kyBNvEW3KbfH766H469N5sAEvNYGQvCMHl5YD7yQ+h6IAivSDrK+6V+EiqIDUmDcIIdSSUVM/lQbqgbHESNsfQPE/xB3fduFbtovkMe MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 191871ac-6e33-4578-2611-08d4f384b209 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR03MB3315; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB3315; 3:vPVQgdcU9w9hwnEQB4fHoufUDv8TuVWmCMmIxMJEZpCvKjZ2Y/Wvc8w1c0O/dZ8ngmOaMZsfXPJ45Mucmvql6eaMXYb/AuCyru8LStFFX574g9XqUmAwBy0tAUvSZA1JHKg5dopXuCSO0+RckWaE4V1CUUYNlaDK3jaNDnYRSx7YFTl7xSUWtyybSkjgCf7XU0U+g9EXazlzTdR/NXLJ7PjM4KrPPhZwWcVnZJiBKQYTc7tK9vOCIo/MO5ZlZWYdIcgq49EELBpK4RPcKMihe8ebwG44XZul8Jd1Hu3m7imeRC2+8EG7hfoPp8uDRh/5RaBOoAjjBJ8Ks76zGSXXdg==; 25:IzXJz31XwNE7ul9vtFO/ScOU6L6BW9LAx2wTAh+p8eKwO4f9+/kB8TcHHgs9O0S5bZH7vCGRXnFRsoNafcVTgbHcFYhdMfd2KabjLy3avDmmexc6av3iJAN/eLbesNRObHjkoXKjoRcVLNIvPLG+nT0NRCOrfmQwC7RaShVDJH+mWyMawUgzHASibn61oGM8lRJbrDbm8I9iQEGaKMd/aLJ/kScF1udTJ49h0lrurXXISUNXkIgT1GvCiXnR8WEKb6u0Cs6Lw/ax2SMkwnXelm8LxfZ50kWE1ziYtlwHSyJABp9GSS+iof2jV/d9fm3PvLsMBu1OcPbssF9Ck4VI5Q==; 31:G0uN7RWXm8GOL4m6z7jhAevlDHtchW3TZDSRUDeQEX1MC+kBWooRrTxjpL+MiYjsH8vjiVTJfx2OjYX/tDmhHTLxbRqsPY6FgBh/79/qvax8o9MVH4oL5Mf0br2EZ00unAl7e+mO7+6aUe0HE3rg8ihc85miH6YNeBM14e56uVCQ+XW6p+CtIEzr5OVGXBAy7vZZtKgtUpawg8rG1YyVPOO7n8RztyWsxV5X+D8dgk8= X-MS-TrafficTypeDiagnostic: BN6PR03MB3315: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6096035)(20161123561025)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123563025)(20161123559100)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR03MB3315; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR03MB3315; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB3315; 4:cN28pkYMoc6r3H3/6qlvusS6uSdV/nFlOPTXl6yFM/I+wCnlw4p4+/sNdwVQlfK/aaEdyozSZcdG6Na5lbIsSpa1aMVWUtbprN7IX45UITvpK5SBDjAQ2dHypQq727Xlkg22O0SysEphl9I8ONm5RGu+aBSMHS7BcbGqbIyFiq+JMg7SoCxI55ZAN4DeBNQnQc65tIwMdMCNZ5CLBY1/gooBzyK6EWzLkpugo30UyINmlzX5t51AGC31o0CBuKCi4H2VDfugY0YAME/l63/H0O6z/YE1S67sNHFJkgxZqHc= X-Forefront-PRVS: 0420213CCD X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB3315; 23:CRpcGh1X4HYoKgnYF0cgTlIvdVRMMHKI0UQ+1ldQ7?= y08ufClNY0timXU4bkLZPHSzlxytpqoCJSfA+Z7qKgAFAcCN7bhCEheVZlAk7YCwCGMicSlrC401CL+KOWvAIz8uK9/Qkzynczee5NLsr5hWLGymnGnBiYfsl0lw0ijMUvDNcZNaJtvWtK5LzupOHk/Asp3p5MOqet/HZi7qrEvsVtQ+YCcTLsIxaNfqycVv1yRstg9XlVvWL1GvgmJaJ9/H2JB9upRNqmSlHe9eC8egsxGsYOXpH4VEyFpfWlk4R5vXDFsX6yiXscL10x9kH17paGTWFXc4XRM+u9CBN4cd2WMR9AyOvo1aFOqxhQWk714c4qtqXu2IMHGY7buY5zJD+lET3/8wirgxo0bXs/DvwwAt63ZYytUbHiLKw+oiAhEFNPplCJ0W5D+LtSvCKWKmD+sg7y5qy0JdfSuFGB+QKigX8bzxfBNHGp3NPCwRLx9jWvCYvYO5ke8qwHbQByR1zPGq/HXKm5fiAkjGqsweMajNUNzEHREr430EzAOEsxs4WyUoj5HRABGhbF9CZ8yixfkQO509qzJvuVQDTOJOfEknKYp0Qzzot9xiQ9NwVRt9RNeWaXqtDUEYjkjd10OTl6L+C8tvmQt5RjavArLB+2xuCYapc6qfJ4hG3rEl0ks4I4XW31Gdpc2JpaUx2fQua+9G8Jzex6v1Dm/8ccHL8cL8TJ2uXwt0EHR6dZ4hhqSIa0wJFj/6z1gFmsNa2biRFYeC3xyi1cO6dfD/ef5GDOkbqRHWHJAZJD02OjC9ZNKCJEfRNy4MPn/dWA068Im6hJWGI1giMWa8KVHV5HFEoSfAdVr4//7pGk6EQRprIwjED+TS7uRU0kMRTi6KSV9f5JsntP0XnwUdd7k1Xw/3AIjfHeCDV4IGQIYeSZwe5mCeV2dm/+xIas0Z2W4vCKc1cDiFMFWmkfF8YeECL8FpfXUnW6xgmIQ0BmfHpSKjw2g70i64hu9g8PV7kFfwMqULEcrD0ygXcnPlywD5H+gYDz2dpZm+RW6NPwXdxsvhZuBVqC++DUIJaHi4m5HvmkkVFN4sKuO2/65OoypvnWUPqJ29b0N6kHP5M2pDhGj27XXhQKjHX1rDLjKufXC30mo X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB3315; 6:DwybRSdCXaJ2dgD2n9NNYIHenEp8a1yeuiMnstxWeaaAUJzyjtT2r2QFU930IVAcs/RXk+JBmREV8Lz26w3wYv258W/SzPSxc1EXKtAEcFe/oFPLFlPwe22gUtfylFZ+696/8MeSFqjYpwRsuYseeS6uIhKr/e29yci0L7qk8FxQ6zQh0ST9H/jzz97qzTMSsqlSd/lSXvnp/onb2i6hw2T9vWFxb/ETfdrEYD2n0knHi3ucFyfaOrtk/Ofltj+mjFTmrjf14VXK0yeaCkz9VKol71LxLRe1x/1tP9+2ZckvaN+pp6qt33MzhNfXYOsO3ca/kgpBRzKRAon1cAcTDg==; 5:sEa6KXRGUajMtZSB19N+WPibCLh7PhCYaKpy+XvCkSsPbEDj0yv9OGi56lVpCQ7wR+wRYNoTeB5rMe4nl67rm/mE9C52rTs69vS6Jo22Wg0cBM6ejgGxuaTeMXniS1QCA7cpUmJPlOll0LJg7MNbFyCp2GsgmYS/pRp2m75SS0Y=; 24:0xbpZ3ZwlfeUvFRk77XxQdWZfnIT/jxZPSbnbgIGRoaMC6/QL4IROXq1D/idzKfqB7grKP2AqeBbEdHwzMmGbyAQ5VqKM9DgArAR6MyJ500=; 7:n1h27V+MwmzQ9P3+LBLSXcyC4m+gg70nM2L1fWCkH/357tpTCSCwqSoCDdaG+wiqvxhoYXs1vBPIAFDgCYXcm4OyHMT8DrdhUVgvAjZrbOsd5PipMcCRpnAZQEeUg4CvF0WXhqVVOB47xTzTLjAyfQ46H2+CJ3tE7AiTmtUdBe7VI5xFyp2g8zaJOX4C/3H8ChDDdIZdXueDzZjfDwWq/+hWO5W+/6kRjDdbmCKeQKI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2017 11:04:21.3167 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB3315 Cc: Priyanka Jain , Suresh Gupta , ran.wang_1@nxp.com Subject: [U-Boot] [PATCH v5 4/9] armv8: Add workaround for USB erratum A-008997 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Low Frequency Periodic Signaling(LFPS) Peak-to-Peak Differential Output Voltage Test Compliance fails using default transmitter settings Change config of transmitter signal swings by setting register PCSTXSWINGFULL to 0x47 to pass compliance tests. Signed-off-by: Sriram Dash Signed-off-by: Rajesh Bhagat Signed-off-by: Suresh Gupta Signed-off-by: Ran Wang --- Change in v5: Use scfg_clrsetbits32() instead. Change in v4: Update commit message about register setting. Clean up the math in set_usb_pcstxswingfull(). Rename USB_PCSTXSWINGFULL to SCFG_USB_PCSTXSWINGFULL. Change in v3: Use inline function to make code cleaner. Correct typo of 'CONFIG_ARCH_LS1043A'. Change in v2: In function erratum_a008997(): 1.Put a blank line after variable declaration. arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 6 ++++++ arch/arm/cpu/armv8/fsl-layerscape/soc.c | 24 ++++++++++++++++++++++ .../include/asm/arch-fsl-layerscape/immap_lsch2.h | 4 ++++ 3 files changed, 34 insertions(+) diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig index 6677f2309a..9449d629ea 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig @@ -24,6 +24,7 @@ config ARCH_LS1043A select SYS_FSL_ERRATUM_A010539 select SYS_FSL_ERRATUM_A009008 select SYS_FSL_ERRATUM_A009798 + select SYS_FSL_ERRATUM_A008997 select SYS_FSL_HAS_DDR3 select SYS_FSL_HAS_DDR4 select ARCH_EARLY_INIT_R @@ -48,6 +49,7 @@ config ARCH_LS1046A select SYS_FSL_ERRATUM_A010539 select SYS_FSL_ERRATUM_A009008 select SYS_FSL_ERRATUM_A009798 + select SYS_FSL_ERRATUM_A008997 select SYS_FSL_HAS_DDR4 select SYS_FSL_SRDS_2 select ARCH_EARLY_INIT_R @@ -86,6 +88,7 @@ config ARCH_LS2080A select SYS_FSL_ERRATUM_A009203 select SYS_FSL_ERRATUM_A009008 select SYS_FSL_ERRATUM_A009798 + select SYS_FSL_ERRATUM_A008997 select ARCH_EARLY_INIT_R select BOARD_EARLY_INIT_F @@ -235,6 +238,9 @@ config SYS_FSL_ERRATUM_A009008 config SYS_FSL_ERRATUM_A009798 bool "Workaround for USB PHY erratum A009798" +config SYS_FSL_ERRATUM_A008997 + bool "Workaround for USB PHY erratum A008997" + config MAX_CPUS int "Maximum number of CPUs permitted for Layerscape" default 4 if ARCH_LS1043A diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c b/arch/arm/cpu/armv8/fsl-layerscape/soc.c index 6238953658..99fba5fcaa 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c @@ -95,6 +95,28 @@ static void erratum_a009798(void) #endif /* CONFIG_SYS_FSL_ERRATUM_A009798 */ } +#if defined(CONFIG_ARCH_LS1043A) || defined(CONFIG_ARCH_LS1046A) +static inline void set_usb_pcstxswingfull(u32 __iomem *scfg, u32 offset) +{ + scfg_clrsetbits32(scfg + offset / 4, + 0x7F << 9, + SCFG_USB_PCSTXSWINGFULL << 9); +} +#endif + +static void erratum_a008997(void) +{ +#ifdef CONFIG_SYS_FSL_ERRATUM_A008997 +#if defined(CONFIG_ARCH_LS1043A) || defined(CONFIG_ARCH_LS1046A) + u32 __iomem *scfg = (u32 __iomem *)SCFG_BASE; + + set_usb_pcstxswingfull(scfg, SCFG_USB3PRM2CR_USB1); + set_usb_pcstxswingfull(scfg, SCFG_USB3PRM2CR_USB2); + set_usb_pcstxswingfull(scfg, SCFG_USB3PRM2CR_USB3); +#endif +#endif /* CONFIG_SYS_FSL_ERRATUM_A008997 */ +} + #if defined(CONFIG_FSL_LSCH3) /* * This erratum requires setting a value to eddrtqcr1 to @@ -243,6 +265,7 @@ void fsl_lsch3_early_init_f(void) erratum_a008336(); erratum_a009008(); erratum_a009798(); + erratum_a008997(); #ifdef CONFIG_CHAIN_OF_TRUST /* In case of Secure Boot, the IBR configures the SMMU * to allow only Secure transactions. @@ -520,6 +543,7 @@ void fsl_lsch2_early_init_f(void) erratum_a010539(); erratum_a009008(); erratum_a009798(); + erratum_a008997(); } #endif diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h index 323c098888..1601ec6baa 100644 --- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h +++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch2.h @@ -340,10 +340,14 @@ struct ccsr_gur { #define SCFG_BASE 0x01570000 #define SCFG_USB3PRM1CR_USB1 0x070 +#define SCFG_USB3PRM2CR_USB1 0x074 #define SCFG_USB3PRM1CR_USB2 0x07C +#define SCFG_USB3PRM2CR_USB2 0x080 #define SCFG_USB3PRM1CR_USB3 0x088 +#define SCFG_USB3PRM2CR_USB3 0x08c #define SCFG_USB_TXVREFTUNE 0x9 #define SCFG_USB_SQRXTUNE_MASK 0x7 +#define SCFG_USB_PCSTXSWINGFULL 0x47 #define SCFG_SNPCNFGCR_SECRDSNP 0x80000000 #define SCFG_SNPCNFGCR_SECWRSNP 0x40000000