From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932191AbcCGTlg (ORCPT ); Mon, 7 Mar 2016 14:41:36 -0500 Received: from mail-bn1on0088.outbound.protection.outlook.com ([157.56.110.88]:18405 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753576AbcCGTkC (ORCPT ); Mon, 7 Mar 2016 14:40:02 -0500 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; vger.kernel.org; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com;vger.kernel.org; dmarc=none action=none header.from=opensource.altera.com; Authentication-Results: alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=none action=none header.from=opensource.altera.com; From: To: , , , , , , , , , , CC: , , , , , , Subject: [PATCHv2 09/11] EDAC, altera: Addition of Arria10 L2 Cache ECC Date: Mon, 7 Mar 2016 13:43:05 -0600 Message-ID: <1457379787-8327-10-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1457379787-8327-1-git-send-email-tthayer@opensource.altera.com> References: <1457379787-8327-1-git-send-email-tthayer@opensource.altera.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: BY2PR1001CA0010.namprd10.prod.outlook.com (25.164.163.148) To CY1PR03MB1486.namprd03.prod.outlook.com (25.163.17.16) X-MS-Office365-Filtering-Correlation-Id: 0d5e3305-77a7-4ee8-c807-08d346c044d4 X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1486;2:8Z6oofVrvQZ8LLzZ3z2V2CTDDHstvSxNsExXEqUyVXxPJJCktZv+fodaEpHypBD+GKFcntfJyOQTSJ0TEliYjMBZP7ci6TqTAJvWsS24XXmxrxKj4xqSChQ5u/zBf3wyYQSkJoPlEwDVbp5YFT4gOl9jZaPPLLuwH7D0Fpk9W2HoxXvjZAd4bXkRA5OH6KeL;3:tb+mU4IWPRvKKm911cwVH+csrA+SIusckf1oizH+YOxEyPMyApHRowr2LPmgB5/zy2xSRb/8ZyZnLD8dOmJpGPKQ3+HnY0b9bC8p3vtMP+9e23IgB+92zmDgfxsjIk81;25:pCz4QwpH4zH5XqWgnStuvI3NLR2Ybf+Meh14wWjZ4l4IYPK5cOnGsOAGsRIvdo7hq+urnhH7zffo+N6MJvnothwUKlb2pfQtIFtut10hgRGAt1vSIUCgQDTi1DyOAwPtdPA8HRUUMfkahPMDablN+VGBjLaMe9oq+q3322hSQk5uNhf91iLu7DT+8UVSV8m1i9JVNNQ64ZkrBvS2N0dpJ2U4HyrUN1rKU740JCXKMlUghnaymTRPtyTw12NhjI4CeaRAKpjsCPf4ZsW4L7gyIooGsf3RRyPK7jiwsxq3fNw1eHgZ59k73rUHW1ziic08Pjkdbvuu83hzsCOL5cTFZw==;20:en/leR/yv+wZt8yhVBZFqefi0LGXz3J91cght49rIbpjcbE0SowCYsfaFv3mxOx+Fs0Myyxz1M0BtfkOdpy/xJyujX4JDX/V3B4Hu58QfJKaFWac8HozxLgbiYf6aqyXf9oBNsAC/SK7U08klrNZwyMRO5NnH8NuajqD8/APVpk= X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1486; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:CY1PR03MB1486;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1486;BCL:0;PCL:0;RULEID:(601004)(2401047)(13018025)(13024025)(13015025)(13017025)(5005006)(13023025)(8121501046)(10201501046)(3002001);SRVR:BLUPR0301MB2020;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB2020; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1486;4:KN0e91rFxIcpUJIlSQvjxmF0UGnLQsEo+VlMbwXIJWRgSoi0td253u/PDy626E/oJhO7Wfcxf5GIbYkhSgQ+U0PaM3PfJsI8qkSE3CFTfrlCrxg5Jb4n5aXFO472MQAW5rmHzhGAxROOd9WkiD6Fu9G6LOEMA2Wm+g8C1oqu/asukeqZI2gri5QEte9XYg5xLC9mrUAYpZ59V4/5Giz+ULuxLiwNWt8+U5Fkioh/Eb1unMh0RJypHkeNTajUIykdDHXZmoC+Y/HfceXywmad2idli+83OUu8tU4uM1QNdEphaBA8Jz+CJpheDl+GLjbGkTfAqh5wXTeGzXY6FaqYm4rC4UKwORA8Wvwj0R1w3yRzvsjSf0xpQWZEjnejGUVC X-Forefront-PRVS: 087474FBFA X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(5003940100001)(4326007)(81166005)(92566002)(5001770100001)(2876002)(5004730100002)(5008740100001)(86152002)(2201001)(189998001)(77096005)(19580395003)(19580405001)(40100003)(2950100001)(2906002)(122386002)(107886002)(33646002)(48376002)(229853001)(47776003)(50986999)(76176999)(42186005)(66066001)(50226001)(6116002)(3846002)(87976001)(86362001)(575784001)(50466002)(4001430100002)(1096002)(586003)(921003)(1121003)(4720700001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1486;H:tthayer-HP-Z620-Ubuntu.137.57.187.33;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1486;23:wBtBg/1eS0WMXs6BVfzNrWg5uflsTvZSTsJsq/WI/?= =?us-ascii?Q?JZpC8c8xVYb7Lw57TqGLcpkTsoHHnsdqy3KtH+lR1KwbPPMeihz6523Ft0Z8?= =?us-ascii?Q?Z0cuaSD2U0kDXLgJJYDemPtRN+jc/pmcx7E5yv6Dh0E7GMYG6dWAifmy4eLs?= =?us-ascii?Q?sa8xNf9gwcBqoXWj2mi4aJveMTxO/cQ+bG3Ntwur2Wqu393rrVCywrFSOMFG?= =?us-ascii?Q?VoNK+c3UTQWr9X7Eznir7k9/NRH+2KSFdzOWsIDnHKFcKGZufwVWiDHpmUfH?= =?us-ascii?Q?1dKzb3ti+UJaSbN77OCa7pT4H2mwD+pccw+OE5X0v3+Jc8ocZ+NCSaIciyIE?= =?us-ascii?Q?EXcP3TkAuuFp8vhVE4sNqexkgFiHjHaetxXguo2rpcFDgIJJDcUJ73sJ+Gf0?= =?us-ascii?Q?buTe8hB9NhEQwAtUeezLgg7W7po8frJt27PlS9gTCfOBr2TIxBENM1b1YN+s?= =?us-ascii?Q?m1fjT9s33fWfabnoXDh0xW2I4XGwXCdHA3beErWpWUEfiSr17MKQ9oCrjZfZ?= =?us-ascii?Q?z8Uq1og+kBpEwDRb/yIvvOJptEKslDYU0OoXsgPzosFAcOAmcO3Zh8yUMk8y?= =?us-ascii?Q?yKdkjTPKhZsYcRAfnpi2XX+8iH1LmLji7ytyXRgDd8jKz0IUOH+weKaKT+01?= =?us-ascii?Q?3RkxI9bZOEny5FYn+9OYDprAC4ICPQg+ZmdoI9ZnYsjEMc2bY+770aP8whBV?= =?us-ascii?Q?qjsZ1++YnGkbrhhjVMMFZ2a/0Ewjun0Rild+10sDsH7fITToPCG7tpBXg2i5?= =?us-ascii?Q?S1a1yTC6mg0wuuX7DC1Zlh6lqfokZrHIl57+zm5K2YHUXhNE2vo7hqttA0mq?= =?us-ascii?Q?pdYBSf+LC6HkiUnZR6OPDl9P+L6fLG5o8E5dTrrNm740xxBqLPnb1erwbtj/?= =?us-ascii?Q?alGgBXfj3g5GwVKbWQTXb0LMjeZVrnchDEzkhE8ywabEqGgYLEQBw0Qsg9Zb?= =?us-ascii?Q?38hnERxl58ld+fJuL3zR72pcdXPIVCjbBnJ5InsCAtzLgBynDGqKAKMiPeKQ?= =?us-ascii?Q?wDMm9SbJJrzxeXSpTRj6DAp/CdtIti7mPJcCA1QOMpZ6yIcXFi7SkDh96Wh6?= =?us-ascii?Q?1pq2VdIL9dCpao4q0EAzmp+E0H2eRX60RDQO0KRgstYBrauZdN+udZ6ITyaB?= =?us-ascii?Q?tZWtAZO9Pbu/BI7hNsXUIilKcIMXval?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1486;5:rbgFz/n/Wg1OHXC8QgTEAS/7pZE+HamPnrnSmlZy9u1G3VuuRcQ4qxXk7v3EIjyLNK2FVBA7gcPV0nqHWAjFv7Ahb+aUgRqOqHOXGKEyHu5BtzLyhGaXL8s8DrAJ8Y9zKSKnCPaJfGy4UB3VU19RMg==;24:HGzu+TYF7TF6jIit5zJVJzw8/PTd5tFghFWqyUXRXgppOuB+yu/P0gt/NUpkhQNdFif9uKxaGcbWB2ZQn4z0HqW9DmDKr8ULc9v6E26eeKA=;20:rEtL4qEsgGny0q+i0eKEBdkHFCHn7W9EMMq7JbDhdENKlJdYvygJapkyuYDjMjkP79PAxC7LtwHpmD16ibY0Ja+gnIIvunkkB8VXcAe67LqdbRnmpFTWaYQoLOwKxt/E30isOMl23zW4uOHY0Loz1d5Z4R5xx1N3vFNhdvBe24E= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1486 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BY2FFO11FD037.protection.gbl X-Forefront-Antispam-Report: CIP:66.35.236.227;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(50466002)(956001)(50986999)(77096005)(2950100001)(19580405001)(19580395003)(76176999)(189998001)(86362001)(575784001)(33646002)(86152002)(2201001)(40100003)(105606002)(21840400001)(85426001)(229853001)(106466001)(122386002)(16796002)(81166005)(87936001)(66066001)(1096002)(1220700001)(2906002)(2876002)(4326007)(5001770100001)(4001430100002)(586003)(3846002)(6116002)(92566002)(47776003)(5004730100002)(3720700001)(5008740100001)(48376002)(5003940100001)(11100500001)(107886002)(6806005)(50226001)(7099028)(921003)(4720700001)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0301MB2020;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;MLV:sfv;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD037;1:0mI3+Ndgod3JxG3Qkc2CHS4JsR8TpFS3H0LgGy1YVLjVKJUg+szZKjDEzxRNYX3/OpGOJtgRqhwHWnnI7cBq7eQ/BvFUCtUqT4NtqHn0RSMJYvzA++Dhp8S9vUF4u3+oYrLqiDfF8nIzGO1J4shi3FxZqMhxIpTWLx2fGAiW1JV17GT3v63nLCRgrC1jofoZNEfA3W3jP7SvcLXFsuqJAqtlIoD2ZaMxKCBmazjirk3ijqUcRGGlI0N0FtUNuSWIrq6oNDHeoBIyCAUFoEE8dfm7ywj4osj5NCGhHjGTuPDpypLXCxQSCQRsGwfrosbjT9+IffZD6d0gTG933djLrxlCTwx1H7/RUWeYqTqZU6KrwhY8Ry43sZNAxfAqF3rPBq9v6yUx4dii9Lq6SZfxrN72p1jEKnIWCrPxOv4GJgsMnCRJNF7KY0NsRhEMLH2eQr17g01zvlZhGM3co8/W8/DFf7D9/kVY7Ersafi6Mp4= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2020;2:fFdl2Rjwu3UuFI/M3iTOYYPkxr2tHaZkY0U+FMPUMcawVfBO6S4lLI5hvD5nvL3MwOQQyTHF/vCjZ/IcYmWzuosLq53/khv+WleMTwtDivN8XSEAF8WzEhbGf5Zbn/r3A4n56OBQeaveuyoMzVorRvfVfRLTOAq1aR/1DmoJCm5UX5jLUPiTYwyo0gcYYDx3;3:kU5eqkOkUJAsfSDKdK/BRZFSgf+0WB1v21HXrhoAYzbMsfGCVHarBoeVgIoUcOaDj4FLB/IPc/tG4Gs+SOVqJZKqjUxuhBCP2tIKAawV+NJHIA33pTV5X0DoSVeOwcjyYgyZI1yFt47STlhyA9NHLan/SsiPe9UdHYcO2I9Gkf/4XcX4jdjgXQ7fRtZcwafPjuXXS6zutBk0Y7X+C8aWrTnFkXU2ML/QV2L5i3NIB6tFwQgjVO7XDyNod04i3uzN;25:o/wkjKXbw8pz/HxmKqv13yUXXSZ1xvxckmPuxXs+/DJl1hHB6sImIlchbkdldEbDNCr0pNi76coYdV3540uaGq+0C6E44sTyGgwKvXvi2XEqwUj1qFZYTG7NQIQZ69VpxKoI0QUbCxU34yjpasZ+YXcVYuyG0CRYc1XzCzCR2XCuUM14Gy+mCU6909y/j/oM5idKqew9pDcefDKkVoEimHE+KSYgJ0vIDMKgVfse/KKmSfVvPi6/WXWpH/ZHULh0m29izNTUaHFTm+2LlBj/xCcpkx6LfUIrKHgjYQIRZaSrsza/YGppNpD8Y1AFcXh7Un60QlNqMMuWmRtwnurHHg== X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3001016);SRVR:BLUPR0301MB2020; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2020;20:yqwe+vTv6IpmWQApNwL5bG4w4KSP+GhKb3WkmgZozvKRo34QiFodjdCRpJPfUWgmcFyol0q7eDm0kJ8elcCH4l+iGKmQZyVdFk8eAycs+2dsLN5mGifBEfD6OrTXXU2csdjMJygEzWvQT+sgMhqLvkTEfVJX47MKuaSR0zBLT7o=;4:xH98sL+/hu7szP0GWU220gnvabH6D+KUdtopYdfcEpWyCdKS21feJomwIKrBWt6u7LHkYQUzaahYhJiECGYj8tWicp5BgWPjSSAqrPdKxW8o3pi+GGB0BKQnVHDAULLW308kkbkkVd2hTiEqiB+UIrWH2rMIAbMfPzC1iW6IIhsDdGl6XHNhKVL8q7xCGFu7ASHmzVhahNAtz0I45BAGVLgcb6dJ3DV2S/S+3QwEboP6CuOBbBFiwmfRqlC8I5XOU3b3GYjM4uhfOLxwDogkqyc3rAc6BGLU56BHI2GR39j70OfkvTR9UN5ud5g48vSSwkDLdhre7e2RRiWAQKlQ07+AP5qTO/I7gIjbvIiKGpOo9eSkSzr3289dVle2e8549B/XEAlLMVy6pzrcsgPB5bx1AnSYoAJYX61Rkfaz+LmPHvVbyZlxhwivd3wravLYePoMLkNg5bHxIzEXo/b59Q== X-Forefront-PRVS: 087474FBFA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB2020;23:3fw/m1m7JZIdCOJFyL+iBCa4lLhfK0eJBZumgrN?= =?us-ascii?Q?thoWTEqzrhOZIaAK4akVdh00k7O2iku/jAfXOm+9s/r2TRniMsqXjHabH6dt?= =?us-ascii?Q?FSAGJJU0S1lu63rHEgtYp5F0SbLk2bgEXSbvTvP+yg2J0Q6vYu3DDW4a++/I?= =?us-ascii?Q?Ww0Ue0JLXAl9GBFwmwumIhVdN2XdP2f+v4IRTYS/CXqpq4p2RAvduIOAuuSX?= =?us-ascii?Q?5kYbRzPz2kpNEwY87iHSPILXAjkRgxVxfb1OoMSBKQiPZBqLqh0WvDTLT/TK?= =?us-ascii?Q?VVdOsnlCPJ5e3N1hmyvJjWecg8lpo+pHrBZ+hxumWrzQZo4hyiLWSnrGcNEO?= =?us-ascii?Q?xiaqxF+8ZVGuDi+gUqX2tjOqcia1n6g3ZLUEiSVIRx2IA286RwwvpsIoA25J?= =?us-ascii?Q?TUcRgPqrdu784g9kSBgAgqd79MP90zFntCXHX73uROfTMLSOmC3BKANeKEyR?= =?us-ascii?Q?W7pNVRkE0jrZoV5+BDeiDNLk3oyE9JHOTMQUIEklN3A4PzRcMgf3rW1y9BC0?= =?us-ascii?Q?V08Y9ef1QQEm9/JAoikPIK1hjSVeiBsFBHB6SJPr71ZFZMe44UzgvdqVdnYo?= =?us-ascii?Q?drNAHWARHOtxXDJ81UA6ZVoE9Bbn1eZS4Q+JDFrqv4MiZpQa3VjnMmspOSJH?= =?us-ascii?Q?ovMf1PMPsGZZnQHpEssv6KUpbhOp7U3DN/aqQqYcuKaDevzzFDCKSj8xm5+e?= =?us-ascii?Q?yVTaPULcGmb0VXMWcRF8D1reTUkUG5yV5nNnCqT+rjiFN1Kv0HcCRpFeQgFN?= =?us-ascii?Q?S2jURGXuT+wbu3RVBu4VUxhM9ktoZk+PweMlt0dXLEgxXVpt2CKwfIAikp3U?= =?us-ascii?Q?XPXiujd/mfzKwcgKhmzVmkRSUE51F/9IJFmf1qaBz2tEhqVf26Wru3bz9BPX?= =?us-ascii?Q?CTqCpSDlFTJBpXM4l68PqYDQYBvmoH72XDRw72Bo9Cw7WkgV26/v9OwKOfMv?= =?us-ascii?Q?CE89C5QcTKsDG8/sCnao34vyZJivyA5YlKPvsB2yQNHueaSbp7l6WrAG1hKo?= =?us-ascii?Q?JIl5scu2buRHkpXeU1s77X02s+jmROfzd9PzIfSEII/cy5GXNde3sP0OzVt4?= =?us-ascii?Q?xIKWXfuRgo/2fc6Qmdn6K7+qXWg/XPwuthS/FzwhPuNHYQznEwmCEhgZb58I?= =?us-ascii?Q?BPZX7dQnLKanKiwHC4f8BOpbq7FQHmlzRL7tFLCS/1w0yRSzkwkk55Xnmccs?= =?us-ascii?Q?/C7NCnYdBVCG/iAvR4DknLtuLSqkVQhC9nLr9ZUXlPn6m1dUqZ//NHSnd0Pv?= =?us-ascii?Q?sxpLDhBDMKBcL+Dvm9pcVe9R/LZ0a1AKXvTjeYDq1ysITyhV7fZ9wEWR55bu?= =?us-ascii?Q?r+K1HYcQxVa55IEpabQtOhsXLa0cyBTTWs6JovojyUNaE2F9HjuxBRmUKi2b?= =?us-ascii?Q?buRBv+gITcvmKyPsQcfGCBQB3QFp74eEZe529Mrim4TPmxlMNR7e56aXG/HA?= =?us-ascii?Q?iWD+dh9LLjd7KOYt/H+n/PzkGLLuO8Fg=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2020;5:nUoAeyYjmDfJEJ19h1YM2InI3oOfqAbcLFyu4DIgTIUdEb3Lj3we8LfKXhqe1QZP7QuVK+ZHi1O+gzwhGT6wfzTZJc48qf16NNDJ3V+VxjFb7JBXAgL40j3SWMWOJZK0gfVB0BmiAdG5DKecg2d4ng==;24:DA0vHpKNrUTOedYe3HmWoNj5WLuDCSvOBnUbrFxKLwh19A86MV0cvHypMYlj3TGVmfw947Uplf83JawazUjtOscfhacW3F2P6lozFbq5WxQ=;20:r4U6Am6RGZsVSZZ/NlFjmmkZmBxGCkHEgH13t5PXtCIf75iS+g/7Tvd/2HcTl5WEQUg5FVMBJ07WNU3OGYc8sIrH3wRuUMIrbN/0oTeZmfYjtzis3E23j+7lLl1rOcEuN5z5Fq4AqUmFfjvlo1tq1n1NMOz49YyIPQ1MRi30+Bk= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2016 19:39:58.9492 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a;Ip=[66.35.236.227];Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0301MB2020 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thor Thayer Addition of the Arria10 L2 Cache ECC handling. Addition of private data structure for Arria10 L2 cache ECC and the initialization function for it. Signed-off-by: Thor Thayer --- v2: Split large patch into smaller patches. Addition of Arria10 L2 cache dependency check and private data. --- drivers/edac/altera_edac.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ drivers/edac/altera_edac.h | 21 +++++++++++++++- 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c index 11b7291..8afdf8b 100644 --- a/drivers/edac/altera_edac.c +++ b/drivers/edac/altera_edac.c @@ -549,6 +549,7 @@ module_platform_driver(altr_edac_driver); const struct edac_device_prv_data ocramecc_data; const struct edac_device_prv_data l2ecc_data; +const struct edac_device_prv_data a10_l2ecc_data; static irqreturn_t altr_edac_device_handler(int irq, void *dev_id) { @@ -687,6 +688,8 @@ static void altr_create_edacdev_dbgfs(struct edac_device_ctl_info *edac_dci, static const struct of_device_id altr_edac_device_of_match[] = { #ifdef CONFIG_EDAC_ALTERA_L2C { .compatible = "altr,socfpga-l2-ecc", .data = (void *)&l2ecc_data }, + { .compatible = "altr,socfpga-a10-l2-ecc", + .data = (void *)&a10_l2ecc_data }, #endif #ifdef CONFIG_EDAC_ALTERA_OCRAM { .compatible = "altr,socfpga-ocram-ecc", @@ -970,6 +973,40 @@ static int altr_l2_check_deps(struct platform_device *pdev, return -ENODEV; } +static int altr_a10_l2_check_deps(struct platform_device *pdev, + struct altr_edac_device_dev *drvdata) +{ + void __iomem *status_base, *base = drvdata->base; + const struct edac_device_prv_data *prv = drvdata->data; + + if ((readl(base + prv->ecc_en_ofst) & prv->ecc_enable_mask) != + prv->ecc_enable_mask) { + edac_printk(KERN_ERR, EDAC_DEVICE, + "L2: No ECC present, or ECC disabled\n"); + return -ENODEV; + } + + /* A10 L2 cache status registers are not contiguous with base */ + if (!devm_request_mem_region(&pdev->dev, ALTR_A10_L2_ECC_STATUS, + 2 * sizeof(u32), dev_name(&pdev->dev))) { + edac_printk(KERN_ERR, EDAC_DEVICE, + "Unable to request mem region\n"); + return -EBUSY; + } + + status_base = devm_ioremap(&pdev->dev, ALTR_A10_L2_ECC_STATUS, + 2 * sizeof(u32)); + if (!status_base) { + edac_printk(KERN_ERR, EDAC_DEVICE, + "Unable to ioremap L2 status\n"); + return -ENOMEM; + } + + drvdata->status = status_base; + + return 0; +} + const struct edac_device_prv_data l2ecc_data = { .setup = altr_l2_check_deps, .ce_clear_mask = 0, @@ -991,6 +1028,26 @@ const struct edac_device_prv_data l2ecc_data = { .irq_flags = 0, }; +const struct edac_device_prv_data a10_l2ecc_data = { + .setup = altr_a10_l2_check_deps, + .ce_clear_mask = ALTR_A10_L2_ECC_SERR_CLR, + .ue_clear_mask = ALTR_A10_L2_ECC_MERR_CLR, + .clear_err_ofst = ALTR_A10_L2_ECC_CLR_OFST, + .ce_status_mask = ALTR_A10_L2_ECC_SERR_PEND, + .ue_status_mask = ALTR_A10_L2_ECC_MERR_PEND, + .err_status_ofst = ALTR_A10_L2_ECC_STAT_OFST, + .dbgfs_name = "altr_l2_trigger", + .alloc_mem = l2_alloc_mem, + .free_mem = l2_free_mem, + .ecc_enable_mask = ALTR_A10_L2_ECC_EN_CTL, + .ecc_en_ofst = ALTR_A10_L2_ECC_CTL_OFST, + .ce_set_mask = ALTR_A10_L2_ECC_CE_INJ_MASK, + .ue_set_mask = ALTR_A10_L2_ECC_UE_INJ_MASK, + .set_err_ofst = ALTR_A10_L2_ECC_INJ_OFST, + .trig_alloc_sz = ALTR_TRIG_L2C_BYTE_SIZE, + .irq_flags = IRQF_SHARED, +}; + #endif /* CONFIG_EDAC_ALTERA_L2C */ MODULE_LICENSE("GPL v2"); diff --git a/drivers/edac/altera_edac.h b/drivers/edac/altera_edac.h index 43e0dae..a9177c8 100644 --- a/drivers/edac/altera_edac.h +++ b/drivers/edac/altera_edac.h @@ -196,12 +196,13 @@ struct altr_sdram_mc_data { }; /************************** EDAC Device Defines **************************/ - +/***** General Device Trigger Defines *****/ #define ALTR_UE_TRIGGER_CHAR 'U' /* Trigger for UE */ #define ALTR_TRIGGER_READ_WRD_CNT 32 /* Line size x 4 */ #define ALTR_TRIG_OCRAM_BYTE_SIZE 128 /* Line size x 4 */ #define ALTR_TRIG_L2C_BYTE_SIZE 4096 /* Full Page */ +/******* Cyclone5 and Arria5 Defines *******/ /* OCRAM ECC Management Group Defines */ #define ALTR_MAN_GRP_OCRAM_ECC_OFFSET 0x04 #define ALTR_OCR_ECC_REG_OFFSET 0x00 @@ -218,6 +219,24 @@ struct altr_sdram_mc_data { #define ALTR_L2_ECC_INJS BIT(1) #define ALTR_L2_ECC_INJD BIT(2) +/************* Arria10 Defines *************/ +/* Arria 10 L2 ECC Management Group Defines */ +#define ALTR_A10_L2_ECC_CTL_OFST 0x0 +#define ALTR_A10_L2_ECC_EN_CTL BIT(0) + +#define ALTR_A10_L2_ECC_STATUS 0xFFD060A4 +#define ALTR_A10_L2_ECC_STAT_OFST 0x0 +#define ALTR_A10_L2_ECC_SERR_PEND BIT(15) +#define ALTR_A10_L2_ECC_MERR_PEND BIT(31) + +#define ALTR_A10_L2_ECC_CLR_OFST 0x4 +#define ALTR_A10_L2_ECC_SERR_CLR BIT(15) +#define ALTR_A10_L2_ECC_MERR_CLR BIT(31) + +#define ALTR_A10_L2_ECC_INJ_OFST ALTR_A10_L2_ECC_CTL_OFST +#define ALTR_A10_L2_ECC_CE_INJ_MASK 0x00000101 +#define ALTR_A10_L2_ECC_UE_INJ_MASK 0x00010101 + struct altr_edac_device_dev; struct edac_device_prv_data { -- 1.7.9.5