From patchwork Thu Aug 4 20:57:07 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Richter, Robert" X-Patchwork-Id: 9264255 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9305F6048B for ; Thu, 4 Aug 2016 20:59:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 81F761FF8F for ; Thu, 4 Aug 2016 20:59:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7627527DC2; Thu, 4 Aug 2016 20:59:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C29001FF8F for ; Thu, 4 Aug 2016 20:59:21 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bVPiA-0003MB-Ij; Thu, 04 Aug 2016 20:57:50 +0000 Received: from mail-by2nam03on0047.outbound.protection.outlook.com ([104.47.42.47] helo=NAM03-BY2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bVPi6-0003In-G6 for linux-arm-kernel@lists.infradead.org; Thu, 04 Aug 2016 20:57:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=m5FQmlMi6vH6edpauyIq/KY8fmZ9gyoiFmm76+ewM4I=; b=IrnBlUSVdkNyUXzyZ3/P0NylEmMR0MdygPUDTAsyY49qFsprIVyvuKA74TowhMmpeofMrYnG5IlgGQYIIOpecQsIGcaar5bdDfFIKIjmxHoc2ghQnLgi1rY9taicj0qpbF297eGeCuH1F/BDrNphGRWWdwTF0ziPdwHmIQMZOqk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@cavium.com; Received: from rric.localdomain (78.53.86.203) by BL2PR07MB2338.namprd07.prod.outlook.com (10.167.101.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15; Thu, 4 Aug 2016 20:57:17 +0000 Date: Thu, 4 Aug 2016 22:57:07 +0200 From: Robert Richter To: , , , Subject: [PATCH] arm64: Add workaround for Cavium erratum 26026 Message-ID: <20160804205707.GJ2151@rric.localdomain> References: <1470302117-32296-1-git-send-email-mbrugger@suse.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1470302117-32296-1-git-send-email-mbrugger@suse.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [78.53.86.203] X-ClientProxiedBy: HE1PR01CA0059.eurprd01.prod.exchangelabs.com (10.165.170.155) To BL2PR07MB2338.namprd07.prod.outlook.com (10.167.101.16) X-MS-Office365-Filtering-Correlation-Id: 9d3d65be-c5c7-4064-923d-08d3bca9ee09 X-Microsoft-Exchange-Diagnostics: 1; BL2PR07MB2338; 2:6v0LI5A+jRF4PTJmZZP+ywRTY+5RgshRrKGT0AYpyKSV4dpByRV47ej/OTfrVVzxG/xyY0UuiUhQoyYjAAyenLIu5OpEGyaTj38odn6jmIisGt3YztTaF6Rp8uBWST24uWujrXF11npF0eN5MWmnyyZX4Jhj5/DdTpiCMQjyr2P4Rs5fB4lCCyX8WIuB9FkJ; 3:r3csttep1e5vyhTjFMqFwqmhVpt25DTNEzVvGqiuDWtzg6G1h/1sR7pgo9K4TeyXPFKzkdZSty5qLGJsmBae4HLoFd66f/vMqD86A/U75IeTdtfLCYvHsgW7q92b9fJw; 25:I/4SX9gm9hEmX+9ZjgKUeXxhXudlfKlK8KOz2bPLFGQ23tJXMwBXyhADv5Yf++yRuFLTdd9wcY3IoT+mScVFPzKWATtq1Qz42KjBEd6KEznnJQuulP2RDtVlr6HHWqcFRnMzo5+KOLCuHnYGQVP+eP/7kyWmOTDuTpxCESB24MvRAz+s1jP/4uY4mQnbvR6izwnCAyVNRW94MopNfMfgjtzfuDlACdpWBW1uGgB1TB8epKXessW7LKWc6KW0Pls2HQbacU4cIwpR/ibvaNnz1cLM48bkPdeVbuM4LqaT6DfNCi8VOvHeGkez1Y3tRiX0fq3ORfsEaW2vIHAc21d3+0mz2CJXT4H3ltUXa1x0DpgbYmRn9Xs8Rih83b+ycUctLW/VdlojBOXegNGdT9zUXZSpmafa106jPlxctrBa9uA= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR07MB2338; X-Microsoft-Exchange-Diagnostics: 1; BL2PR07MB2338; 31:gkpUFhSVprPMUL3iJok0VUSplRpa+fz7lz8WHA9xrTwp2m0l/BjKKtB6aQU32ZA2S3WXQFYg4d5mAOOUUDR7gCcpKs9ClcR1/p8ouGt4CeeMxbD4EF+k/MM/AuKRuZFYg7cqYZ1vMbeCdXlqRvj5QpHFEi+F44njy2smGVDMwk5O3uO5z0f03PfXpoJRLRQUGaRH7mTeKtqnC2b5wr8ol2zSWUjELthseFCKrYTodLk=; 20:d+0GZXSbea5NTHxT+gLoNM35TJCKUk3BMjFQl2xgC3zy3SLLAfrvvb7Ppo2CiRs9qtd1SoMrtwvEcRpTDKdcjR79+hm3jPK2JQafmHdZgnDZGkV/TE3snlbIoU46rY1GmsLEUuYot/rR6FtDgtAiRVvjltlvatfXYQOJMv8NqqGEnGfF7rcrwLy2OQYXuMJXlwr9uB+tKPiqu2FBOTrtnsNNKyqqWbhhjHHZoDmickkee1otwoqSG1ArQOo95JACPCcrWWRVAol4S9bRAZ29gjhY4PX0aqTDEktBURWrPVviwI1a084anFijAvQfLc28drAw/Xs7NAw9kst4At+l46tlwR0/kqmE+ToLIUc7zSTbYuPogCsqbAvnltrD71Z99XBMMLFoMTOWUztdAxqV3W494mFpOQ1Gk+SRswRyJ8e+uc2dpsEMBh996iDUv6HzKHrU/oxu98UfTwi4wHpkxzKB3vSlHngm7jqDl7WJVOoEyE8tB5DXNIyBbOrJGLDv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001); SRVR:BL2PR07MB2338; BCL:0; PCL:0; RULEID:; SRVR:BL2PR07MB2338; X-Microsoft-Exchange-Diagnostics: 1; BL2PR07MB2338; 4:XuDrMRfmIcB0GmmLhP8BBHjRxQ5gCZlffnJOWxbqaJG2zGuH0mHMnbHvsph698gfdVQQWzltN5p/WqZQzRsNbHxn02+foW22oysk2TzAfIWKiukHIhvZCTXtMLAEPU4hTjcou+70OvEwchxHTQiQDVuOjmHdCXFnumjrG37Y07Aw4Wr62xwfAh4rV8vJHfPwqlMDw9RPdEKfrO1q3gYKozpE0H0X79d65XhdH6iwjlzv0X/jwctKVpc7OIHNZBOjUaVbQp/T6RcvodqLqg7ikV0Bfkc0a5hBUKXzD1nszW3o1JruaZtVecDpoOsZWavU9dwocj8aUxFmhoRRRSN8JTwoncjnY1JLqkO8nEpappzRFUznAsUuC64clSJFYEGd X-Forefront-PRVS: 00246AB517 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(189002)(199003)(229853001)(305945005)(77096005)(7846002)(68736007)(9686002)(2950100001)(101416001)(7736002)(8676002)(105586002)(81156014)(92566002)(7416002)(106356001)(46406003)(97756001)(81166006)(50466002)(6116002)(1076002)(66066001)(3846002)(19580405001)(33656002)(4326007)(86362001)(47776003)(189998001)(586003)(4001350100001)(97736004)(23726003)(5001770100001)(2201001)(76176999)(19580395003)(50986999)(54356999)(83506001)(2906002)(42186005)(575784001)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BL2PR07MB2338; H:rric.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR07MB2338; 23:j7B2kdT+imLLoLXP/44C1YCH6KaT5oLcIze4A5HaN?= =?us-ascii?Q?b0t2slbFB4yT8qFMQxMMBRoK5i3+rH8Px4NUu313tPSQ0uLB/vDFTVn0cwMJ?= =?us-ascii?Q?zMajOFIZwaIx+priyn798ohoC6xziQzbI6pvlVksnsNHtaCBezk6dSUiwMWd?= =?us-ascii?Q?UO7QjWq91IC1DWSr1Ws4SPG8+IoZBgh5rCIOziyC0fQwQ1+Rk0DA9kgPgCT5?= =?us-ascii?Q?mSVaYPpD172AvP4MW8aCQbvJDkp7eCMMGk/J1i27qAEfEeEbXDEwMqT5E3eX?= =?us-ascii?Q?z/1dQgi5iDBudZVuuIGcvjIB8RzQVFIoMZgvuyayu98HcnyOG9uXCvtXnmQ1?= =?us-ascii?Q?xM+AMHh8R9qd9m9EQSr5myy7B/xnxmbd0UkEphYCDUF+qRvL9n6VJei0+CUB?= =?us-ascii?Q?cRy7OvAeQ6N+1hbskvQAubNCXuTkJAG7rvPGaJ6PINrDgczz8E3mFWhRjurJ?= =?us-ascii?Q?smUwgHyBVlmIBz4Xy4/qhPaDKJoE1nZJfk29Rrndn9U404BAPCGlRNXQ5ZeJ?= =?us-ascii?Q?LtOE1Whr23B5rN1Oyp5HQOThM5rWw5KUgO8Ju+qbd5/kcRZFMXMjBTMATlto?= =?us-ascii?Q?Dxo+Yeyktwti1/Bj1qyCeezYOa/Pzfqx8/YoO4+zd+OqcJGIS/QA6B0qWL2K?= =?us-ascii?Q?wWZhlz4/I8ut44zeMwGH+ozJ5g/cHu92jqU3Had/KBiiLEpOMONdFhhPjKaY?= =?us-ascii?Q?m5Q+6HCppJq8B1pPlpoQrJquOFoFRg+2KHuD/G6PXPdmZModdyX+zX9/6qlZ?= =?us-ascii?Q?01mqWCthUA5s8dMI0k46irMT6TmIftkjLFh1EOYByk4va4UXY2XT5az5CUV1?= =?us-ascii?Q?FgkN4uEv2sIvaDbG2fhhdBNZ1gWacRRUS5fQgu+wiY3iNWl2xM8fyuDZsLoI?= =?us-ascii?Q?UY9xDLk4jmRMj+Om7QyBcmgbTW2ZLS8aZli8eTO3927qdMIHE4b+LANV7xfA?= =?us-ascii?Q?qr/nVjL5ouA+ve2HAE0b/KcdHMLmCFT3tj/rjtGu0nK8fXBSOLU1Oz7QhDh3?= =?us-ascii?Q?+PfzYkAMl7RAWRs3BRWmct7HeK4fESlRcMTReN3PyM234lcAcHquTp34d5gM?= =?us-ascii?Q?z9KH9zhxaPDRI+zjn8xit2KlIYQXmCikX67YY686fP56ikGmV+/aI/5uAP5T?= =?us-ascii?Q?BPFwFmQ9EaVIBS/YLo9bZYj22ORv+8IbVrwG0snF8A9bLwKpCL8KviY7FCLj?= =?us-ascii?Q?dPVpqo9KSVP7/JzGigCm3tbJRSQlVQPBMuLtJB17qT/IM+EtGrVjdKcIA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BL2PR07MB2338; 6:mJUsR0J6p9fSV1sxGxem+p7e3LeyVRV8Fuk0gwK1b2vX9fyBXqlWu18lVRBJ8gLrM/nk+jgggEdmnKBb9I1RxeGXrSypF8TqRmFYWkaKDVxBQQ72IJ2OJ2TjLSlLma2KrPYD0ydRh5wO4C+K8No1IFxdn0L5hxnpxY8IPs0v9fMygW1jPQ+atgPykngN1KBVTFT6sq7ZH/0eDhjrVDkKLDwHAsytT+DGnbryL6KQ4UeDpUrmE+s2xwhRgfSjoHyim6y41KqV94v6t26W5OPtcC0GAw+sZyphBZtVtY2APAw=; 5:yH3YH8NzYJiaY/6kcCRfYj9qTkoR2tr5ONX5hRiFQG2pK1eAsmRvwMvSxiizY9K3Vf3CVP9ANQ/KbbKAX7T6LdspAqWMC4UJmWNR3BP/yDWeZrggnO17Soi2BXJ1jUGvmr7fvImqLC8GRBEuZCHfbg==; 24:wwEbekp8LEa3GSj5r91mf6RhO094UaFrwdz5+qFzfo82v40S5DmXwS1Jasc/1bmFJ2f1Lha7FHXgI2jO6AlF6YfL+DasRFRLH9ZUMuDiaPw=; 7:Wu+J3i5Abt+hhNq9Zd5DeBSlcMqW9nz/3UoiR1w1pl8hwrA016F1x13InmygGy8Fcsh1R7uYOYA8HNOiCmPjMqMjzXhmAiz+MWW6ANrHHOOeG1rME7xqr211ur3A2GZxB3gO6u9aZIPXSEaH2NzVdqSG6paTiVc1aD5rHD9+48gR0n46rcVglwGJUkMVtTFkNYzt2D5M2D6vuyID01i2v1GFkgDL4aOxuk1OAzEjTboSU7H2LNMzBZxL1JQ3xdtv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2016 20:57:17.7918 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR07MB2338 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160804_135746_861196_C4C32A1D X-CRM114-Status: GOOD ( 11.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, Matthias Brugger , kvm@vger.kernel.org, suzuki.poulose@arm.com, zlim.lnx@gmail.com, rkrcmar@redhat.com, david.daney@cavium.com, agraf@suse.de, linux-kernel@vger.kernel.org, ard.biesheuvel@linaro.org, lorenzo.pieralisi@arm.com, james.morse@arm.com, dave.long@linaro.org, pbonzini@redhat.com, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The patch below is on top of Matthias' patch series: arm64: Implement IPI based TLB invalidation The series is used to enable a workaround for Cavium ThunderX pass 1.x systems. -Robert From abb99ee83473d9ecffb4fdaae9c69435ca670bc8 Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Fri, 29 Jul 2016 09:40:04 +0200 Subject: [PATCH] arm64: Add workaround for Cavium erratum 26026 STX may return a wrong status value if the store was successful. This may happen on ThunderX T88 pass 1.x cpus if a broadcast TLBI is executed on another cpu in parallel to an STX. As a result atomic or non-blocking implementations can behave incorrectly. Use IPIs that call local TLBIs on other cpus to avoid this. Applies to ThunderX T88 pass 1.x cpus. Signed-off-by: Robert Richter --- Documentation/arm64/silicon-errata.txt | 1 + arch/arm64/Kconfig | 14 ++++++++++++++ arch/arm64/kernel/cpu_errata.c | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/Documentation/arm64/silicon-errata.txt b/Documentation/arm64/silicon-errata.txt index 4da60b463995..0d870d934528 100644 --- a/Documentation/arm64/silicon-errata.txt +++ b/Documentation/arm64/silicon-errata.txt @@ -58,5 +58,6 @@ stable kernels. | Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 | | Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 | | Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 | +| Cavium | ThunderX Core | #26026 | CAVIUM_ERRATUM_26026 | | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 | | Cavium | ThunderX SMMUv2 | #27704 | N/A | diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 5a0a691d4220..8cbd9043ec6f 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -457,6 +457,20 @@ config CAVIUM_ERRATUM_23154 If unsure, say Y. +config CAVIUM_ERRATUM_26026 + bool "Cavium erratum 26026: STX may return wrong status value" + default y + help + STX may return a wrong status value if the store was + successful. This may happen on ThunderX T88 pass 1.x cpus if + a broadcast TLBI is executed on another cpu in parallel to + an STX. As a result atomic or non-blocking implementations + can behave incorrectly. Use IPIs that call local TLBIs on + other cpus to avoid this. + Applies to ThunderX T88 pass 1.x cpus. + + If unsure, say Y. + config CAVIUM_ERRATUM_27456 bool "Cavium erratum 27456: Broadcast TLBI instructions may cause icache corruption" default y diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c index af716b65110d..1e1753a6408e 100644 --- a/arch/arm64/kernel/cpu_errata.c +++ b/arch/arm64/kernel/cpu_errata.c @@ -90,6 +90,14 @@ const struct arm64_cpu_capabilities arm64_errata[] = { MIDR_RANGE(MIDR_THUNDERX, 0x00, 0x01), }, #endif +#ifdef CONFIG_CAVIUM_ERRATUM_26026 + { + /* Cavium ThunderX, pass 1.x */ + .desc = "Cavium erratum 26026", + .capability = ARM64_HAS_NO_BCAST_TLBI, + MIDR_RANGE(MIDR_THUNDERX, 0x00, 0x01), + }, +#endif #ifdef CONFIG_CAVIUM_ERRATUM_27456 { /* Cavium ThunderX, T88 pass 1.x - 2.1 */