From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965707AbcAURdR (ORCPT ); Thu, 21 Jan 2016 12:33:17 -0500 Received: from mail-bl2on0065.outbound.protection.outlook.com ([65.55.169.65]:27679 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965404AbcAURdK (ORCPT ); Thu, 21 Jan 2016 12:33:10 -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: spf=none (sender IP is ) smtp.mailfrom=tthayer@opensource.altera.com; From: To: , , , , , , , , , , CC: , , , , , , Subject: [PATCHv8 4/4] ARM: socfpga: Enable OCRAM ECC on startup Date: Thu, 21 Jan 2016 11:34:28 -0600 Message-ID: <1453397668-32094-4-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1453397668-32094-1-git-send-email-tthayer@opensource.altera.com> References: <1453397668-32094-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: CY1PR08CA0036.namprd08.prod.outlook.com (25.163.94.174) To BY1PR03MB1482.namprd03.prod.outlook.com (25.162.210.140) X-MS-Office365-Filtering-Correlation-Id: 011ce886-dcfb-43cf-2bfe-08d32288ec25 X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1482;2:6ttdOSJV40gs51c4qBH4XZDA186MsQ0bl/56IgqR/gfxLd6saZEAAjl6ygkWFzJa5az6rj48Mq5aeQHY80op0vKJw8KNcm3g5xeIav/Ax7JL4Wd233PV19Ccjvs/FKE0gzMzrwER1MwFIZsi2KDsGnn5skhE9Y3TwwZh9Bk7PCiWP4FMn1/Ecm2+eXRR7B9c;3:yvAuosEYoFBestgNfHIQCMJDkDItqNXYJMIpQBlyfLdeLJyfR67yo6Y6nTiLs9cRyNCChl42Lh5UOTjn1snS3FROy0TUtvSV0J3ziGBiWmn+KuQd2EMF28tvYXXFUEJp;25:9M9QrR6zw277U3RvF8X7KktvC5oziAlEEn3Td6KNlESqedmov0swXVWo0lc1zrTDwXfjlKJeYUJVUeGFJ0yJOwPB8B/WvpqXA72v81DcqJ+jkFWApNKKGTuGI+9EVmcXlPMBmdZ2+6ccpJUQkVxvzWMOqq1kHpeyd5K55jsY4fu04g6pcOIn6IyC5Gt5zvybnRAEXcF7djI8o2uN+JlS0vQbwPBRzgkSw0wsrbBP+vKsFe6kQe48rAq/OGiFHDfL;20:2qTY4V8PbKi6nqKNhlKpYRjnBafZ51OhP2KgUvqissjh0WvPBygHz4XjVTeksvoCtGZllxsUPLMoJQtGBHe3iekMmtBTkUvEZ3lWDPR8ZJGgHmzJ7Y5uoNJF0lIOXZFRoKoL0KFWvwefKh2iBkRCfFRTagFWKCXYTwqa84rKILk= X-Exchange-Antispam-Report-Test: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR03MB1482;UriScan:(80048183373757)(204874498639787);UriScan:(80048183373757)(204874498639787); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046);SRVR:BY1PR03MB1482;BCL:0;PCL:0;RULEID:;SRVR:BY1PR03MB1482;BCL:0;PCL:0;RULEID:(601004)(2401047)(13024025)(13023025)(520078)(13018025)(13015025)(8121501046)(13017025)(5005006)(3002001)(10201501046);SRVR:BY2PR03MB427;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB427; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1482;4:icrBoHi9HMOjUmtkSsihGbV6H5o7+rGPCx+Sf1gTS4NP7kXLRKMx5+i4wbvXtHV+LSJFhohVRuT79PRy0NAPE3Ch9LzpqZnui8TGviCX+Mdh6pIhf2Krv9Ib05xuAjdbJwAEufqs2WC4AqPv1Tt/xFJdgv0JI/n9EdC8SI/7ZeZ34EMV7YXbX4Fo41emFUNd1kylTJ9rLXnJNOuK+1qHBqnEmAsOBeQxvhxuHJ6i3ObUY3iMNt82AuX9fQ/cKMRYp2wmqIWQCnyWZG363PSwv6kDSMdVucz/OZrkrE4M84eMBYzFZ+XdyxOfjNCKxbVyRlWhQkN7aCUqw+BORh8B8IHZwDkAmCdSywco7eL2GcHcPbHElCFIayrIoxemtLLIQ+6Nl0fYsxikDWxHe43Ra3h+AVmKtvwzp/Yr8xu/BS4VIjGGDy6T9lGiN19cque8BmrSF6bjaqvwnwxhXnjiew== X-Forefront-PRVS: 08286A0BE2 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(6009001)(199003)(189002)(586003)(2950100001)(47776003)(92566002)(4001430100002)(1096002)(575784001)(5004730100002)(42186005)(3846002)(86362001)(4326007)(6116002)(106356001)(2906002)(15975445007)(77096005)(105586002)(189998001)(19580405001)(50226001)(5008740100001)(122386002)(229853001)(53416004)(33646002)(5001770100001)(50986999)(97736004)(86152002)(19580395003)(107886002)(87976001)(2201001)(5001960100002)(40100003)(76176999)(5003940100001)(101416001)(66066001)(50466002)(81156007)(2876002)(48376002)(69596002)(921003)(2004002)(1121003)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR03MB1482;H:tthayer-HP-Z620-Ubuntu.altera.com;FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;BY1PR03MB1482;23:1VE3XNE56WY3u5kAz5q+OedRdMxcKQkuMQSLvAr3R?= =?us-ascii?Q?6f4WSx6KZ3ysjiN3Tcx8lPXcIOti+xXuxtiRUlgaWNWvGvjPkfDZ4zGRfGlP?= =?us-ascii?Q?HD7SkpnIHsN6upYkVlCn4tLFa1LQN+nuQis4qTGvMSYUAzYDJDy0DJITlQqv?= =?us-ascii?Q?zQnoJPDpiHCYEmOkVbnLfUgjSjxK74utR5KszjQXrETtIZ2Hr/WT9Y9KTBTE?= =?us-ascii?Q?LAELibhDMp42yDlQ9An6K/FpqS51ni9bX4mKjRDBWPqIR9r9e06a0sLXmqX1?= =?us-ascii?Q?sjRKlpAhlCrcWdbNeugg7e7xiuxlhAKi5Ppq+fLabeFQWw0g1ebCvkH7w9aI?= =?us-ascii?Q?0AYfq73fmdUt3uGTO3hb+jmXwrK1tPZPdt3wqnxSBGDtEPLVmHQcMB/NCQgv?= =?us-ascii?Q?/bO08I067eYMbr0eLgBj9g7ahgKV6v8msZildiUhtzeV/aUQ1xdozU1CInVN?= =?us-ascii?Q?MQTlsZTA3voAhs67RJbcJFJazjRC25qfKuoRdwLYvqT+6jH/2NDKI9+XiDp4?= =?us-ascii?Q?iWHXEOFAfuXygI07b7DdPYS7hwSbD0GNYQBJhc0oyobECdP9pL7R6c18jJJJ?= =?us-ascii?Q?1FKwTe0TYx2IVnlM7289EElMtDRiis8sHzUrhXsghc11N6PlCUrVVkw3tVGZ?= =?us-ascii?Q?26yKfRiZ8gLwJwHlXmeEQcRpQINtR+EbzMSndCGAsPP1wE/NeA36SOu1wqtc?= =?us-ascii?Q?HYq3MvGykSJuxfjvearCK7aoelQBDN0VoJD0HRChzv+LwvHfnrUWdLiwYiSb?= =?us-ascii?Q?mTpY9pyo7hbGxP9cBIWXgErhB0Hvh/m+r6TYmQCcVmGoOoT7vu8KHjBh8Mob?= =?us-ascii?Q?tQLp0DGQ7ONQrTm05E0kE36QiFjlxumI/fbh3+SMs6zBuZFBVX6A3h4ySiL/?= =?us-ascii?Q?hZnl3G2EYrXON5wdRnhWupjhJ/y2x4ggIW5VIa9wfQdAVUzhwiNPbGNcUuJk?= =?us-ascii?Q?ibGQviobhtXZhscVtOi0puS59g2DXJY+jWAijmEJxZp0g+8QsCgmdt/fjY8Q?= =?us-ascii?Q?100sYh4OOcUgFslErJJoUCVSAmR72fj9JIIyHkuoz0LMeh2gVP/E7tfX2Q40?= =?us-ascii?Q?uttBsW4fHR4qra/qYmsaJLokJ+kPrtXik50znDU4tdAavjJdbl9A+/VWZk/V?= =?us-ascii?Q?gaeAdT5vw+xAQldVAfiiJusdvrfGBYBVHZseKZp6+dFyIjeYOEusUOJISsQS?= =?us-ascii?Q?hP00kteJGQ2fWNgjrEsgY1XxQTJbcbk4AVmXeFkDkql5Ce0kqUK9SNMbiGju?= =?us-ascii?Q?vso1fix9nYSToHuo8BrJXTo2YEORNrhhcpZKiXxYbxhcjvyvgsFoPV11kSEo?= =?us-ascii?Q?Rhn5bEhG5wu5VL6DtUDLxpsolOSMrpArux4R2ni5YeL?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BY1PR03MB1482;5:A1MC4Mx/n6ij7dnVVl6eeVY6I/HN3OmgSiaBhwOyiNq25kgfA1pNUzajJ8B5fpnYPCU7EmqJCWjXa55PEDZagd26hVWr+4n6AzutXcRxbnJtwPFMS1LrlK2Qu0XpfJrzVwOZwdXfVSn9ZZLO8DaJEg==;24:jiIjusnT0CT69Q/t7F36+Nfi3Mq/WjtrP38GHJvMj7Y7+adsNKetynvVOSbtspk5K6MpT4MyizQl63rjlbDVlpjH8XjOGGSEQVrnNSLV4r4=;20:/sccF7tVLh8gyk7OBFtZcjPAj8CpT32Yoyitro38pGJa3FselrXVVV9rQwfipW4ktg0dTddVFI4ac2XZbiTmMRAsY+1rx2zPJS4ys8nHunl2FPfUJYh0nW0r0YswZzQaMhKSnjH3dne2Ign7eIZgYXKMlk8xJBVHtU2qdy1a36E= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB1482 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BL2FFO11FD023.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD023;1:S1Q3MyksHmKo72MED5e2fOqlRK0rjfEAs89i4LHy7XzwA1ckYCjzKEq/l2MpG3n3fZPHAbzcd4BItkd524r0HeTno7tSOYWbX9eJPzrZDLnP2urO09880fIbMFckpuaOYY8AxcnOduKlRZ4sD520XHTfVuIG8gEif+RXzRwpDW0IOdiqhUPql5xngiFJU/smKQi14vJDg026cRbw/6tUBuGUOSj1sBtf0cLdpohGrPF6Yp5XtRsG8WbUJaq6xq4qqsqHP/8noN2WUX3X0S58LxHgHK6v8NqtE7rnhHJ95Yw6DidNjtxJBUhrHTr5NY8U5AHXAN4U8bEBlLtTeCrqiXDZ4y2OUJ/YaIfrHd2oSjW3VXJJIrD8INrAF4ot2aWsi6CectcocQZU1N0Sz3UGwVW6+opiiJP2cf6AQVrfn4twPOQsjBtRRm6E9bX+iSgfH0WRhlK3mjYiQ8+Fo4lFnQ== X-Forefront-Antispam-Report: CIP:66.35.236.227;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(86362001)(1096002)(5003940100001)(586003)(97736004)(33646002)(50226001)(229853001)(87936001)(19580405001)(2876002)(50986999)(5008740100001)(86152002)(76176999)(47776003)(85426001)(6116002)(106466001)(66066001)(50466002)(575784001)(6070500001)(19580395003)(15975445007)(4001430100002)(77096005)(122386002)(2201001)(189998001)(40100003)(5001960100002)(2906002)(5001770100001)(105606002)(3846002)(48376002)(16796002)(1220700001)(21840400001)(956001)(81156007)(5004730100002)(107886002)(92566002)(6806005)(53416004)(2950100001)(4326007)(11100500001)(7099028)(921003)(2004002)(217873001)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR03MB427;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB427;2:m+/lkX5rNpGwa6cKGvuK4+lUOFNFYUENBm/HdnANVzHCR4ZeG7Ov2WhUr0BA73Ire3ZD6nhIa8+VKQDNDzxwF8VRlPpjrSPUBRVP7fxZp23KMZsEuJuK68ANl8lR9tFYg/wp3649BGdYMuUA2e63iw==;3:7eJm6Y/mzn6CL41IxHkm0yrOD1G6AEhZkRgAMS4wDgCM6ExRo6vUmvgQMkMjlBtyFLwzyQFS9wQnjzoUNqeZLJkZNwsN5UBnYJ8BLgqR5ZacrrpKh+cseXnnzL/kz/MUzgdaWEBhrwGs3o0lAF18Hk6Uyl6UF4VVnuLnDdbvnnhaaZrEejnGIWA9LOH1z65NDMTJvWD0ovO9tlBvh57a0ks+88zkBa99aSdF5SiSI4z3HFWCRcnleO0B016YpPH6;25:CwJN0RwtK7Lj90UCXmoLt2UEzeEpHLR8NI8htW6DqQcENdNjv0W3AFQ5tAZN1ZVVlme0DGNEluv+YCNbUSohiSVnI/oOLHkdsUye9rzr0WrN6jK6gxbqKml3Oklt5Bu8tfXDpdQEPoWrgPX1JiQ50Cx02TO/rdNWSsU7RmlBTccschJuMSSWrsQQKpgP2XT36vZBkuy70qiN32UPGjdpK2mBnyLtNM/IhGAgJYyxJOw1TtoMMtCp/7eX57+Qof9E;20:4gOtBwTZpCsV7H/gTK3qN0IaQV3PjqO1d4aciDRRC+7aTguN6GFCTuVUiUTkKZ2FXZfeAj4KuuCOFCK8gIh/mE+0V8w6N2zKvRWmR3lRLON7/X01qZLd0PPokF6FrLbfQEBw6n6qrfaSfKV5g5+ow6Nh+GUfE5JdgbMh+YLj/28= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3001015);SRVR:BY2PR03MB427; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB427;4:NMqHJIT+wssrRoEshNf3o6H9U0Eaiv8RGQKsxM6tz3cW2q+5lmsyqdbH+QF6uQr956hmwtJg2On3PI56Phq1m/Y/yJQ7OZaq0WXejaQlnGRWcFgbhgqtxGdURK0rwm0AiH/UeIjM98LAndAfnOYIYtEhYvfMtOY8kQfs17ZwKwgEvA7Goys9uwHmQiazy3SYhJPqgVXEn32WBObCCq/0j+m5SIeHxYSDJxjRQ9EmJAvQccG37s1vd7ft99v+XfGx/9EkhfxX64+T4FvYlqTp7x1fPfH03+bsTpVUnIEVMWouf6hLrGqkOxy21YTh6n3fxXBx20WArBnuNp6XXG8Pb1zXGoBjzRnQS0QTUYgqhPy4eVg7Z+eU2Di1YQzVNCGRe8LdroItklgcoahLumCdw3uB+b9HeOnOrpQLYM7MSvNBgu8ASnpf+A1G9Bk5XGwnhGFRA4dN+1dk4x4rJlUn3mXp0RWUxzTIVwgq4JmadmMt3nb1FctkLNjYxV3waGSXEdQNAHxXN7P1/EP3vyzBzIIab5iJ61j22ni5bkBZo/C9icjrWRzJfWI38JdBfcYr X-Forefront-PRVS: 08286A0BE2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR03MB427;23:U4FPgyQKrO57+8qe5hEW07WMNBosoMr2LsXqfyxq3J?= =?us-ascii?Q?3601Ae+mTsO8boVBXuNznWMO4NbbJx9+/Y5pycwDDw8qHmN1KC7MFAiDG582?= =?us-ascii?Q?X7VDDqcLRzlok/AmIjQdgEDthtGf1ilYgIwH/rRxZCBtyydoAg6Uuu5s/Xjn?= =?us-ascii?Q?bxgCt61tnsOcZoGe1LChCygNEgSIz1gxQS8fj0Kt2qOuNM9uDsVakWfdJ9gl?= =?us-ascii?Q?Ipc02597ILZ5Gr1hR2QZ4ttuFIVd/WyZZWZTGGw6Hz9s9vCREcu95XvxXY1r?= =?us-ascii?Q?VSDD+Krz4EQ94D/FRrmhv/J45AbyL8R3kQNEuIMSL+9nZW88HG+ScN6RkMmy?= =?us-ascii?Q?Ay/PI30IZmWyyjrAtMqMcTw8KFLGBXhTmFs6K/LpZuco+d3NzFEmdF+K28Tt?= =?us-ascii?Q?zJyxtHFby0GtYb4FCyOuhIsHtxdJhoZI9PSV2hkPX1ef9TYtFDDGRBy7DiOl?= =?us-ascii?Q?HQ71/PfpBuBQb1iT6aLhotKmEewW6lD4t4+lf7QKc4XR4MKr1ODnYCSNnxQQ?= =?us-ascii?Q?A3Y6G/d19StFUIsopSAdsvWYt6wof1VM3SFv0SqrIvbZdtL72baKHBHqSffH?= =?us-ascii?Q?zDdmvb86PwSjs+LDixQYkN2j86Bn4TwIwK0MLdw1ZH+hrQtMqVqdwUO708kd?= =?us-ascii?Q?NmE/L9Jxvy36pc7I74WNz/Z80PIwd2vw5hzNqH3mZvjiKgyXIBu/fDqohCgT?= =?us-ascii?Q?iCzA9XY+b3sMIOUaeYrmMULECGYWUiEujcjI39rRcmB1OwdbdHLp7iO/KkyN?= =?us-ascii?Q?U5V3NCsY5BYCwr1EkTj+gYDbiWaRJ1gyU2+vHFCZ9k18aFWqBMj4IxFsHID3?= =?us-ascii?Q?BzBSl7QwrTpXCV3ElOT3cndK6Tk5aOFga1gU71+fsF4CjfpOwmhULORNFcG6?= =?us-ascii?Q?r51o5ilnumuX5nzFYk4Pahj7kVbcj7qJw9FCJmaXEr/JuxFYO9/1KBGVoirA?= =?us-ascii?Q?fpZr2OinAfR+uNgYJghgFmqZWn1iu+5t8mGihiNp3JZohn9W7ChtcKjzPO/n?= =?us-ascii?Q?4ZJTQPOLHUL2vliY3MDS/+dMOd5bMRNMS6WbNJDY37+sf2g9Hb70Jzl2bKzW?= =?us-ascii?Q?Y8wsv+A3dUCDSxqJCP7WDJ6gRZORT9zX4fTTmn0CPRGZPt5olFIeESXAmNe6?= =?us-ascii?Q?TXsIBDY24cs8DyRWam/CeylLv2VHRkqRNNHvfrCD6+RZQwuhTJ52tWmMUdd0?= =?us-ascii?Q?8HLFOeXuaWn6jLAKcwANC1tjt30Q2GlfZDCNc12xqDpwymH8XH/9auajZe4u?= =?us-ascii?Q?wrzUk8YpvTNX0DkCYlLREyU+aeI23CLFqLNgXz/LITKWW3GlIL1nEmUcgPf0?= =?us-ascii?Q?pFiAkhJhlQdB/2QT3jJ8yOZFr1IxJqJjDb02fCoGhD8SQWyKRRGda0nuMDyq?= =?us-ascii?Q?6PjAXUyOV1HAwhGL9CWK5EmoVzzpLgmrvkToF45sHOS5XJtRxW7FQ0f414mI?= =?us-ascii?Q?gLj+XWmJHxBiPha6lUr/1gIzMu+Eaw1/P4exzd+ksa8wT6Ze43jLlaM8kGT2?= =?us-ascii?Q?iqW/CPrRyQNx+69dg7J7OPO9GbrZNrTWhW3sz/+jwC5HPbStS7bz3wDXBdw3?= =?us-ascii?Q?hMVHu7GNUdQYensQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB427;5:CxfKLQKZyU+IGUKQrfTrffr1LGnhRcwjJg5/zddFe+e1njVdDyuDXiR8AaBcY5c7zoaX1IbA9DMc7HOFQtnK3jfa2aTfewGsiC1rSfjukrX50wu51WVhKkFeaMOhGRrFzqosrJXkX024i0+lJT6UpA==;24:iBe2uPjTsxOut1cfxKU/JUywdqZnhiP7IPxWo2EHinOldfWdwxuJaPFp7bBxAsbMw8PLQG+eVYchVQJAvZGzLH+nQghH6UQH0dvTqSaoCIQ=;20:yRVlAT/y3+9e1o2DD1KBkahYyC6UwP9Cv1G/kNdrbDQ97yCO6qeUSATFItdqhC/nUq6dC/rurGKB4A0FZWFGhEZ/zl2fKszwI3EQYqPazvSxNIEkiQF3vuzwCysj+64Zzg6/yyKDu3E5c/vd/76bRmAcH0njRku0yx3rJ23cVjI= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2016 17:33:05.8539 (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: BY2PR03MB427 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dinh Nguyen This patch enables the ECC for On-Chip RAM on machine startup. The ECC has to be enabled before data is stored in memory otherwise the ECC will fail on reads. Signed-off-by: Thor Thayer Signed-off-by: Dinh Nguyen --- v8: Address community comments on strings. Fix match strings based on maintainer feedback. Update year in header. v7: enable OCRAM ECC during platform init v6: Implement OCRAM discovery changes from community. Add of_node_put(). Remove be32_to_cpup(). Use __init() which allows removal of .init_machine(). Update year in header. --- arch/arm/mach-socfpga/Makefile | 1 + arch/arm/mach-socfpga/core.h | 1 + arch/arm/mach-socfpga/ocram.c | 50 +++++++++++++++++++++++++++++++++++++++ arch/arm/mach-socfpga/socfpga.c | 3 +++ 4 files changed, 55 insertions(+) create mode 100644 arch/arm/mach-socfpga/ocram.c diff --git a/arch/arm/mach-socfpga/Makefile b/arch/arm/mach-socfpga/Makefile index e9ab7c9..ed15db1 100644 --- a/arch/arm/mach-socfpga/Makefile +++ b/arch/arm/mach-socfpga/Makefile @@ -6,3 +6,4 @@ obj-y := socfpga.o obj-$(CONFIG_SMP) += headsmp.o platsmp.o obj-$(CONFIG_SOCFPGA_SUSPEND) += pm.o self-refresh.o obj-$(CONFIG_EDAC_ALTERA_L2C) += l2_cache.o +obj-$(CONFIG_EDAC_ALTERA_OCRAM) += ocram.o diff --git a/arch/arm/mach-socfpga/core.h b/arch/arm/mach-socfpga/core.h index eb55d66..575195b 100644 --- a/arch/arm/mach-socfpga/core.h +++ b/arch/arm/mach-socfpga/core.h @@ -37,6 +37,7 @@ extern void socfpga_init_clocks(void); extern void socfpga_sysmgr_init(void); void socfpga_init_l2_ecc(void); +void socfpga_init_ocram_ecc(void); extern void __iomem *sys_manager_base_addr; extern void __iomem *rst_manager_base_addr; diff --git a/arch/arm/mach-socfpga/ocram.c b/arch/arm/mach-socfpga/ocram.c new file mode 100644 index 0000000..3791335 --- /dev/null +++ b/arch/arm/mach-socfpga/ocram.c @@ -0,0 +1,50 @@ +/* + * Copyright Altera Corporation (C) 2016. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +#include +#include +#include +#include +#include + +#define ALTR_OCRAM_CLEAR_ECC 0x00000018 +#define ALTR_OCRAM_ECC_EN 0x00000019 + +void socfpga_init_ocram_ecc(void) +{ + struct device_node *np; + void __iomem *mapped_ocr_edac_addr; + + /* Find the OCRAM EDAC device tree node */ + np = of_find_compatible_node(NULL, NULL, "altr,socfpga-ocram-ecc"); + if (!np) { + pr_err("Unable to find socfpga-ocram-ecc\n"); + return; + } + + mapped_ocr_edac_addr = of_iomap(np, 0); + if (!mapped_ocr_edac_addr) { + of_node_put(np); + pr_err("Unable to map OCRAM ecc regs.\n"); + return; + } + + /* Clear any pending OCRAM ECC interrupts, then enable ECC */ + writel(ALTR_OCRAM_CLEAR_ECC, mapped_ocr_edac_addr); + writel(ALTR_OCRAM_ECC_EN, mapped_ocr_edac_addr); + + iounmap(mapped_ocr_edac_addr); + of_node_put(np); +} diff --git a/arch/arm/mach-socfpga/socfpga.c b/arch/arm/mach-socfpga/socfpga.c index dd1ff07..7e0aad2 100644 --- a/arch/arm/mach-socfpga/socfpga.c +++ b/arch/arm/mach-socfpga/socfpga.c @@ -61,6 +61,9 @@ static void __init socfpga_init_irq(void) socfpga_sysmgr_init(); if (IS_ENABLED(CONFIG_EDAC_ALTERA_L2C)) socfpga_init_l2_ecc(); + + if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM)) + socfpga_init_ocram_ecc(); } static void socfpga_cyclone5_restart(enum reboot_mode mode, const char *cmd) -- 1.7.9.5