From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753342AbbHMQSK (ORCPT ); Thu, 13 Aug 2015 12:18:10 -0400 Received: from mail-bl2on0066.outbound.protection.outlook.com ([65.55.169.66]:64736 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752745AbbHMQSH (ORCPT ); Thu, 13 Aug 2015 12:18:07 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@caviumnetworks.com; Date: Thu, 13 Aug 2015 18:17:41 +0200 From: Robert Richter To: Marc Zyngier CC: Robert Richter , Thomas Gleixner , Jason Cooper , Tirumalesh Chalamarla , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v2 3/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154 Message-ID: <20150813161741.GO1820@rric.localhost> References: <1439477277-6157-1-git-send-email-rric@kernel.org> <1439477277-6157-4-git-send-email-rric@kernel.org> <55CCB393.1040909@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <55CCB393.1040909@arm.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [92.224.194.112] X-ClientProxiedBy: VI1PR06CA0029.eurprd06.prod.outlook.com (25.162.116.167) To BLUPR0701MB1601.namprd07.prod.outlook.com (25.163.84.150) X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1601;2:taypLHsfRc8wN79bvkgFtURFQTnwpAzgADEXO8zfGz7mgITdebS6BZfbJr0cvD8zEAXGld/6EIx+DMFvNstQV3Z/monRN/lFO3txbaUfefkr+V0NgaQDBQDS5CX1DDt7MmVi9xqZum5GHlnuOLmO0d8xvmAic1/CDyRbLCOOlMk=;3:mPPbtJqeqxCfGieTbMIfPCoMDgjkaoy4vKxy70cJmNCWbOOJkj9Fh6AZJdLRywP3STuquSLgkFFzt89CAPFMiGvA9n3byRHVJRDaYcNRAqb7PzHvMeMXIdM1O4hg3rp6RF24LKewjtikfcQ09vjOAw==;25:78G2gHoujYYCBx2RJY3A5zrMTw8wC7GwzdNGjWsiRyguHEEqyg4TwYuqswOOT//6c2g2xHuV5uZegJr3KNidFQVWCBQ24Bzdh57Mn/t1WIsXSz9iM3AYbdaMb7CUqH21J7c88+I9optf5nUk0NXHydLb8RsCnmDo+HSW87HQ7sErlBbiEYTqA+GtkoU9QHFcEfaZOBFfehwlLr6LUFeOFxW8SKlVe9pef51BMtrdQZlJIjxyZwrQxHRWHuAUdjPL X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1601; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1601;20:RFrKHdSkGv05/pFUn62hovp9DyTlTZe15OMjtdwxPbRS49WeDPUOmZ7f0mfGhhTKGkqqAfTlDYByl0GB9M3+W0bIx8AIySWURd0R36zTYs7Fb5fn7mb8EzX+NHMbEREvT3FjaCvurzZHrVaFMT92ox2AIS9uZdGaS2yJRZ0HYwjxhgD5avmjlIYD/bT+Ou7m/HXA9BKce8A6uuHO8C32AJQ2ufe5rj2YyYjbEUV9rA5tnZDAv3taHIUPRlDILUPPRHnzHy4SUsgQy/eLEtSmHinIoH7hzZ7++ZqpzCMadwovWH/LiEesS2Wc9d40bdLzgi1VaHIdG6Hxzwcb34570E7Yx69r8V44Isp2uD3JxaBcRtFK1laOAdFdVBWvAOrKrM53fy+/ucFzcWJhe0YPxF8E8HPbu+8mNm7i0JvFIUDiTPPoIPnuLGQZO1lboqScW3eLOyb2va1+ZzOs/eK8sXw6rg9OS+hlhKMafjIcTF21dUJP5pmUo5OJUsvTrwlU4Yw4UVepIZ+uP0k2NWotbWgHKbYhbuxLZ8DeYAlyOzQwr+BAyVNwyHhuVe4taBmzv9dTAvNnOYTtTVdoYX+sbEIZogkfE6wgbkMifeJOJDs=;4:MFegk8kT3spXoUjeVqsPGx9IbU4AhzxynR4FAa2xZr5ZOsHEbyBwijw+rSbs8J4AfKVVu2PC7Kg9W3+gCy3tiK2el84A0NdzgKLK7m9UYA407BP1SZWuCRQc86wRjppRrcawDRcQ0Q0xPN+oa83dZv8oGYgRBLMvOGzibV1dHPKo8aNeu0XeOlt9LOobGuEVyGJAqJvJR7TJw7glt9UevDr+W2Q+HpsQm5MAAkpbMPvj6O9jiGimyDKWcK4z9i8hncQMRGj8TVKyhRauDK+dEvXraD78ICLFMJF88UgMv9M= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BLUPR0701MB1601;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1601; X-Forefront-PRVS: 0667289FF8 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6069001)(479174004)(189002)(199003)(24454002)(76506005)(47776003)(87976001)(19580395003)(19580405001)(54356999)(106356001)(50986999)(97756001)(66066001)(2950100001)(64706001)(40100003)(122386002)(46406003)(76176999)(33656002)(86362001)(50466002)(105586002)(575784001)(23726002)(4001350100001)(83506001)(101416001)(42186005)(68736005)(81156007)(5001830100001)(189998001)(5001920100001)(5001960100002)(5001860100001)(4001540100001)(46102003)(97736004)(62966003)(77156002)(92566002)(77096005)(110136002);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0701MB1601;H:rric.localhost;FPR:;SPF:None;PTR:InfoNoRecords;MX:3;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0701MB1601;23:kTFgm6/7qd6FdjEfdO5LmaMBpiAIRfQJZoFHY8C?= =?us-ascii?Q?IC6FMtcr9blDNgNaEFGcmh2HgRNDmgzz6J7A5kYf2D9aGHY103m4sEYIVweW?= =?us-ascii?Q?wngf2TomRHAOZ6lXQdfcP2EnvqdZEwF9Wu2FqP09wjNKQGJviPJrdpCWzkkV?= =?us-ascii?Q?ZMshTdr5yKwNtNBEMR6IEC6/rqtiNXGQnU//Y4IGIIT9JS/fbcwkD2v4H7Hu?= =?us-ascii?Q?/1XHRgYNmbbNr5vBuPMeF6aU8KMkSDhyXdmQZXB5yHhbcmB5lWiH+kPKheG7?= =?us-ascii?Q?ovM3E0PURBYhyk4am1rDg5xX9LUCrzWWFPDcpWuw/uhAUL3Mj39g+4+ofx4F?= =?us-ascii?Q?XIGXTYzsN9j84Msif85GhGSVwLqpRU7OCkeEYQam2GVvYyny8OK4/g5atoAt?= =?us-ascii?Q?su2IjVTC6cF/ZVTEtAn3twTihmt6ebFJZKa5f/Ain7WUoqym2Q5yX/yueAAX?= =?us-ascii?Q?0sH+Od6h3HfwnLlrbm7hZyBdruTF28w2tvNdPuOdMgeLa9NwL2uzOdtNkycK?= =?us-ascii?Q?1IouorzpRDwmym5iWGzsfS7AhOzYWwu4C9VR+EptnnosAxJTAtmIS7fODdju?= =?us-ascii?Q?amgewsYiFyLlHnHqMwa/HHYdqvRUXSL81y7VFc5Q519M3zPKZqh72BaiRp83?= =?us-ascii?Q?fmw5YgNgtTCwVI7r+Clh85QZnPLyWzUvQQJ8a7PuTSWg2WEcKlRX4/7WnbRZ?= =?us-ascii?Q?e8ez4frZN0zy/VHYkpAdzRS2Rkb13/Ry8E0+Mb8a8DAbyMzVIsAr7SZ69O/b?= =?us-ascii?Q?teiBTSyJA+H+MuYZ7brfYu32X7EDlM+JkopiG4GcrnmNOee8gtCniUsNaiZj?= =?us-ascii?Q?n7OhGyzbT/zpw+SoCLC/7PezMtEGOlFm5LGkY4NU1Uvy+vhPG39rkw8Kv6Np?= =?us-ascii?Q?BkAYd0WeE853UCMA9NKLuTBXTPzmEFLTywdslhwKtM2T8Yg/GZclujNxmPwy?= =?us-ascii?Q?u9t9A5wZ8pYYSqhZR83U4fNSXWj+55wBNRcZ1/L59562Kv2Hz1MUE94vZ7ji?= =?us-ascii?Q?R4co/Crzzt94mBsOOjYEIaQIga5srioiTJV3j/VUYTbkf0BgfYtopUgFL+g2?= =?us-ascii?Q?ujYmV6aGapMrAUaN9twNZ9CEWyF3RJTs/qzgUPEWEX/IOyoTuCDU6ZeyFX17?= =?us-ascii?Q?qseauWoZlHX2aJunbFbOk5q+goiNqjugVgohAZO2ggdgzUJJWWJHklX830/g?= =?us-ascii?Q?CSAYqsauHgiOIZsusRLSOf4DrNGBooHO0LVFfvaOxmtyFHeppRO1LXiUAHjH?= =?us-ascii?Q?eqUznk01GPaULvsiXDpI=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0701MB1601;5:xoP32fNjLaClht+afcLeSYE1+qMI+hes+IUW8D4LzWYrxVU2vWpGeRuWyJpCKcCJvMY+l41N/CXILI1jpxGypSI9dPjzpg5qR937kfvOSRukHCJ1Mocd2mg+DrCovaHdw80+ABf81Ko1mSF/lLJWAA==;24:GKq/xe4pgn2nSguc21PbJHfY3iSbV9I8SSLwISuEPYCLJHLgfKndQpOxSaioCZoAf/PgSJvj3M5nDzOYV8aSZ/N6xEqWoUk9fQaHXb4j5Tw=;20:pctmpvroD7YhEW4BVl1s55kxZyNeP55g3FpZdWbVfKaehl1bjwjlRTEWOl7+2FPuF+YzvgNA3WF0LBsgwLa6Mg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2015 16:17:51.0744 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1601 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Marc, thanks for your quick review. On 13.08.15 16:11:15, Marc Zyngier wrote: > On 13/08/15 15:47, Robert Richter wrote: > > From: Robert Richter > > static const struct gic_capabilities gicv3_errata[] = { > > { > > + .desc = "GIC: Cavium erratum 23154", > > + .iidr = 0xa100034c, /* ThunderX pass 1.x */ > > + .iidr_mask = 0xffff0fff, > > + .init = gicv3_enable_cavium_thunderx, > > + }, > > I'm even more puzzled. You're working around a CPU bug based on the ITS > ID registers? Or have you swapped the detection methods for the two errata? :/ Right, I mixed this up... Must have starred on this for too long. Will fix that. Wrt midr: Originally this was written to support iidr. I wanted to keep the version check in the driver of the hw, an implementation outside of drivers/irqchip looked not appropriate here as it would rely then on arch arm64 only. This is the main reason. Apart from that, I think an implmentation based on struct arm64_cpu_capabilities, etc. would require much rework compared to my current easy implementation, e.g: * binding flags to callbacks and actually run them, * handing over private driver data (base addr for iidr detection) to a capabilty's match function. Overall this looked bloated. Now, that the MIDR also needs to be checked, it looked better to me to keep the gic hw detection at a single location in the driver. This also allows us to check a combination of midr and iidr values. I hope this sounds reasonable? -Robert