From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753547AbcBJTWv (ORCPT ); Wed, 10 Feb 2016 14:22:51 -0500 Received: from mail-bn1on0085.outbound.protection.outlook.com ([157.56.110.85]:5216 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753509AbcBJTWn (ORCPT ); Wed, 10 Feb 2016 14:22:43 -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: [PATCHv10 4/4] ARM: socfpga: Enable OCRAM ECC on startup Date: Wed, 10 Feb 2016 13:26:24 -0600 Message-ID: <1455132384-17108-4-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1455132384-17108-1-git-send-email-tthayer@opensource.altera.com> References: <1455132384-17108-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: CY1PR14CA0031.namprd14.prod.outlook.com (25.163.13.169) To CY1PR03MB1485.namprd03.prod.outlook.com (25.163.17.158) X-MS-Office365-Filtering-Correlation-Id: 875deb5a-4184-443c-31b9-08d3324f8b75 X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1485;2:7BuWdh/DsMk6bifviCPUZb8DWyIQIx4gUcrsKLxg7fDFN7owQuGVaAMotWBe2kyNDRYeOueGlGXuwMaFdP0vkn9B9q4T7VrLeaNfAZRsv4uQ6hwUyucXgVG4bZuXIS+Al8xNHNZ9fEx4LoaHd5MTk6mJ608GMhgagNbUyoVpIhYQANJzqzY9CRtzmY5+vRqb;3:OHL2YymamknOS/ULK9BoHqVoiuVp2MBk9k7VdZoqn681X/SYPlIl4QWdA/EtG88cGuLt6MFNXj0FXqqjiPqpLKrb4jrYsqWokRyqZF3mlO38uNc9c2wcg5awbQDg8V/H;25:z38aGB079Iok/6mNV4vOtbf18nl6yEsKY/mD5LHmAcMtG6P5X+QTH0lkRnRjsYOFcKa9QgLayMFijK8Nk7qX0kSpNit1C3qcOU3B5aNvjKw96gyhs2qdGvoXgzp6sKUqRT/ODjYtz4WwPqLPfNeDkEDJb53vu9MiyC/SM56ABN0mhXq973/lt8pOBQOU4EDJClX2W+/PUXInkYmjCTjveorWjHl7QtAFJOlHtGCsQhQyeCgHxH8xwUCX4mFHNWsqIm+6Yl89pFldPh5PDHc2Alc7KaYn6Q5tFEqXW82RYPW09j5ApAl9CXSSkFnLo8UZ;20:xvN8B5RRBNTqdLnE7ZyT3LQFYTgWZ8qxttmnuHLCdC03YoqAvI/rnL70GnKTKoQ7J2rPLlCBoE+luELBOAnMGA/jfl6XdPwyrgwa9s73U4Ofkx0MGEVoP/WjF1QXTt+dHT9ZFEkqSmB4WzLQcJQQLd4W7mfENqZ0/npJj8EFgtk= X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1485; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(80048183373757);UriScan:(80048183373757); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:CY1PR03MB1485;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1485;BCL:0;PCL:0;RULEID:(601004)(2401047)(13023025)(8121501046)(13017025)(5005006)(13024025)(13015025)(13018025)(10201501046)(3002001);SRVR:BLUPR03MB035;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB035; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1485;4:wOlT26LcyYd9VbkVHQWqXSEm6PUx/SEkVjzwh+DCHJpPEjT5+grmU7/kuAh0ayBVOVqmsc1CYyk+YakSmDkbjdsCBwSvDT5c9p5Z4MZ1SfBrQeykn9gjmInwuN7OnDEKAmwk1I8m6uOU6LP9u3pEOCxDmJmZ9BdaRLbMOXOxwV6pVo3xwR1wvJ73mSOLmBA4AYzFef9yVdI8+bvJI2nMubzE3hi6fdoEK03+IVtis1BpAv36H0mDZSDLnX5Bb+UGaEoc+j7REwzTeWn49BshBwLCqd9LMnjB1oooc1H3GCvXZg7tBfDsmJVxX083RNMAOjIM5yOkfMaHE907x+XWonrMUJk3/UPdpnjqvSnSaCDpWurI5LaUz/I0+1bwGYFIXqNA9wjyTYUcOf27ged9lbQV5jlFjWeV6lkxGmyREHA= X-Forefront-PRVS: 0848C1A6AA X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(6009001)(6069001)(15975445007)(33646002)(92566002)(50226001)(66066001)(1096002)(189998001)(77096005)(2950100001)(87976001)(4326007)(2906002)(40100003)(5001960100002)(42186005)(5008740100001)(2876002)(107886002)(3846002)(5004730100002)(5003940100001)(229853001)(4001430100002)(48376002)(50466002)(50986999)(586003)(19580405001)(19580395003)(122386002)(47776003)(5001770100001)(575784001)(6116002)(86152002)(2201001)(76176999)(86362001)(921003)(1121003)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1485;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1485;23:4OP8K41i1aEMyAKYTe6lU7tDQ0nAyvft56RWnjKKx?= =?us-ascii?Q?nyhJzmDTlIsq4o57xoSqCyLuYhfVb0E7o+qywKc8/0QaAqNoNGHW/v56b+Hs?= =?us-ascii?Q?PSt+qjgnQy3VXlWKWgJ0/lofCPoP97s/4I+z38aU8Tg+1Y73DhXgv+6PLw6L?= =?us-ascii?Q?s+sSxp0xyISOZLFY+kox8vRLjE5h77Q490jbPkni9gQZntpOBTrpvIeZHhB0?= =?us-ascii?Q?BN3xGz69fvo1L/owTMC7rLKqtxbYm2pmpnNydu9GZ5JX9OXyzkyYTqM3/orM?= =?us-ascii?Q?viZmcX2fV8A6VibiY0ASIYWtqoIS4aeo188iBUHatgic6FLCZcEM75Fn21Ci?= =?us-ascii?Q?oUjAXeDUhh6atN/9pXiEwjoA+dQWkbsyvaEBnmOgjbdF0WKDrwlMj6laBalm?= =?us-ascii?Q?Lt3tZ2KbnZ7ma0f7/5dry4uDlPShbLLsVwKFuIGQC4LcdQzzbDzif5TcwLiT?= =?us-ascii?Q?3UxrUbPDsRKEkhsAu/HTydSOQ2evGntNbZQ0dsNxjS4UowXevwdC0xP+hD+R?= =?us-ascii?Q?D/60jrCoSQbQb4M5hxT7pEOnNMs+dNKZZndVeTGGkNDvWJxQ3ElAlbNJDoQx?= =?us-ascii?Q?kGUX/YLrEVykwG45KUT/oFYi41ubHkoX5ME02TnJCybEbdcAYIaE2MMVbxt1?= =?us-ascii?Q?jG3Q4Equ59FaSmDlmpU4UA+U7W9u0F7vTUUEARSPHkwwE4hfclCxryfOi8DG?= =?us-ascii?Q?dBqVzTdnCR66Qs4Lwlr/g9vu1kBQnUhZMkTlKXPLXcH6O88cMcIiWipZTOhe?= =?us-ascii?Q?CkgkLXF+/dDhfkjbga81d6qqN2neh1ui47E515+7WlxDg7S56hH8WGx9zgbJ?= =?us-ascii?Q?lJyBJhMCTP5Y4tXoF+7of6af0rsRFZb1Idye+gJX6pGkxMj/Qlq8uAu7zqyB?= =?us-ascii?Q?MzXCV04zwM5aFetnVg/ZjLjiSHSLE4tx6x4Zm/4MHa6KO/8wj8S71+ecqgp5?= =?us-ascii?Q?9GxceJgC9xKiqI2zcgVP+ntSTqeLeIBlY6WDsSqFjUwZFC5ZmBrUjzP6/7oq?= =?us-ascii?Q?r5t9iV9xxGK5FZsdJ616FjfJSD2bUm3Gaqb9LSIGXji83OgccN4ioAXFvgY4?= =?us-ascii?Q?+36XfM8UEFC1frdO1TW3Cn7JT26tPLw2aWa5mtcyLLjD5QdujJNL40DMY5ND?= =?us-ascii?Q?qVEEhSAh4DVqGPsFAfvvYeQf8T7a5y2?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1485;5:z1woOAJSCRdJF8HT6eMwY1t/jM4ADpNyonVITNWCKn+VGznnv+UGy0c/3b4wdVO3ur2WPPFtIOl4SAd84z/V59AODpgpqbRBoqkaVRvJGKjPXLbXmvwGGB0a1BQqZQptwS5+oEgsPW52tgHcVRBV8g==;24:Fk8s2FPUR+S7u/gc8Eqney2e1NdT5GFRA2oholfOfuQ8NsAzj93gE3p3LJqYVRr8nVuYRvDMMq9v62ZX2qpcOFBuu6xYm9chhtpZJFzd9SI=;20:jw2iz5CzrAd0X0SE4PHdWltnb+weEpjFNpXlnbpf7zqRmVdq0gh9un7xakWBfSsAtvTlaw5Jube9iaBNfKFGGveSIjJO15kfTDjElJyC88029zqftAJ7GGVhkyyIFH8y2+QbfPiiKKQ2J1yTZOax469dAmjYQeI36+kd8c0F+Ug= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1485 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD030.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD030;1:LCMursUtSBCZ5oGD6Ki7km1ED4mFEBGU4h3lTTHSa8azVDHOOy5X7GAs/SYZAz41LDywYWd+ElRc6/VoQyGFl7sl5nwq38oUcCrHkim0sAeNmJ/hMJ3GInHo3Li3LIyGr2qW0vpIGbqcGnQFlDzSKqL+S/AMl2JUjMCF4gYuSxWfgi9UCEJrtGA3fFqEjBsN7BOoDoYo6wmq+4T9qu9ntuzBq/x3BGCbKtnsvLNyy4rHS+RYi0hRFCVxjj6DvM4XqQdCpdI++zGnDaL0mImTDD5jnR/lISlhWLwhkBMpzQAHoB4y9uHZorXdio36uhfkm5/QUcaomWajMlV3yA314UoJBiMEK8BPC3hS2zbBnxVjzS2z+W3vql+2Zl8zdNglATOcvK+P2uw02Snfbx+l65LwPRg3s9UbcPepoTl05VZsuqJCQ5Or5fEEl/QH0PaB7RbbIZq+Wv6SZD9ScHIRQA== X-Forefront-Antispam-Report: CIP:66.35.236.227;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(6116002)(6806005)(5004730100002)(77096005)(49486002)(2950100001)(4001430100002)(3846002)(5001770100001)(11100500001)(50466002)(586003)(105606002)(1220700001)(4326007)(48376002)(3720700001)(2906002)(5003940100001)(2876002)(1096002)(21840400001)(40100003)(92566002)(15975445007)(66066001)(50986999)(19580395003)(33646002)(76176999)(47776003)(87936001)(5008740100001)(122386002)(50226001)(229853001)(85426001)(16796002)(575784001)(86362001)(956001)(2201001)(5001960100002)(86152002)(19580405001)(106466001)(189998001)(107886002)(7099028)(921003)(217873001)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR03MB035;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;MLV:sfv;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB035;2:lv7BfKOUDLy9/+Kbt/QWLJDylN5vcCLtpTx29qmxPfuGOq8AfdZm/hFZwODh03b4eniXrfLpbrA1TKXUtKXrXvTDS+sHMBqp8nUXJfbJYSShFkWC94n5VI7AMP4JPe/LNvtAkIOG8VElWnPG1h/OMkXAoDKFtO0IhBkRqsliZqYhh3E8USdNWomzf9TAVIBI;3:juSFKzK50Hg29MZN1Uybr2FGMWdwebrRjOeS8tnSGfBUFGUTxtoijEKIrxA+bv8qbMQPp5su8A49wNZObFvp4M0UmNgLoCbbPzZHQApyhtUdfoo3KYcyNTS22XH47mjiKBNGZgelNGRX5HTOajb0/CYwf8Vfql8jhHSZniDjiatpVzvixa+cDONOOxDejXIjB8qt6RDB0uF/vXKRW6K2BLwvzdlGw9cIQuX24b5NDlIxVvkbEDSeBN5KuKqme5NY;25:+Dm1rj10Uq+7Liip4KfTgp5rOtKVLr/coDepiORgFv+HVl87oseHBMJX4Q/2svBkAQa7ZA03Y798DTLWsBA7kqKxmp8lVhrnOvofaUaC4LDwlnKpMDW2jnaBNUL4FSFLz+HDBge3lbS81kCayBSRxr9F5CbrUlcXVdWS8cWPO0eN8kZsCBdlB5Npqx5NK69nxdUE4KGcBUm7I41A1G4BrscYp92zXEti91QEn2+QiPKIVv6xzX7G8bewH8dBee6c+SqmBdik5IsktoULVVOl5TLnD6nTQBP2uElvBMpjTevio+/YD/k5EGAzQwMGOMuO;20:g3dvYFjNJMV/YM243IIhek03xPVJ2uxQjk66qdLo4XMYbWZVm0PBtfMpByCZpE7DW7CP4xrp/0B2arL00HMQtMkA5uDYpmus6S8VURffbJ4gt88zTKlwYrJkgGNJcxS/OyCBuMMBMW6BSDvBAAzXo0NAl2dFAU1n8obeVT0Qlek= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3001016);SRVR:BLUPR03MB035; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB035;4:BSjpXkqG20TaINLPEGwSRT0iKVBpWqt+OSDOevr+qa/p7WkzE0AgBo75Nc0oxSUy118sjym7smx3BNHs1z2iv2IvvjG22iQFJIOKimb7tdMKHxahqFUyyA7pno2XGCPWh2mcc1eQtvVsTsOM7cENERsjWd/KoR+x+7n8FKDe5ApnpIGxGbV8B2jmLiQNlE4kYxxhiwcn3YGa+WHGtqe5XU2Xhww6eoSi+9wKT/+M59X3wmxyAs4pLDyfDqZzvQAqHendpauqL+wEW+UOOfRvD2MYNVIl3UKFSjrlFHpLW2YkPN1MP4EwY5C2r41NHyvnOQy4cHP/fwIeupLxfeeBQlK3Sl/W89IyyFl/psj/WdbBRvlVVi9J5iyDlsFG0tWK7oeLOR8KWaKJy+RXUA033kAKp/XXTFFXTgl1XzCpfDt/l1MuG1vmWaYIvYR2kLGAI3M/rVe/pQjVKW+d+mLIHmfUGvU/Ug3FJ94lcVrbSlqQZFoLSE6z61NBg7VAniQ8 X-Forefront-PRVS: 0848C1A6AA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR03MB035;23:l2qBNXzwPcnv3PcDlbcunOhj6sKStHBSS3Z2QRU4QD?= =?us-ascii?Q?27qLfVjTS6HlsW5pXbrmF0BND5TmbiDNSLGmts/UnFDU1Ss0D3fwD9/4yI8T?= =?us-ascii?Q?LZoaciuCNoAPGRPs4a3/KenxsUeRNbug3dJ1QQ5yyQASxb2NkZiWD9VxC6de?= =?us-ascii?Q?8+Rkt51+frEQv5U7izKw0aeNDvWfCRfNIry70IN/ohj/KZWgF5I7RLZ+EPgn?= =?us-ascii?Q?gLy8PVfE3MexVcwUs2lsX01Zapzv1xj8sl5PuX6Laru+m9UIFzmjJZF4tc6p?= =?us-ascii?Q?YJHRziKQuVm5834iIybCpmqNHaA3x8TZViDMHwP/HnUnkoJoPLUrzNj4sR+a?= =?us-ascii?Q?cimAlPB9nivXUmKthEsRq8vAURYaEdmSbswaBqg6DfTXFRumlXzRlxh2x88c?= =?us-ascii?Q?8j71NlZSJUIPQIA4JvvheFaySi/ziODE1leYDdXMPzFVhk092zzG+RnKXVzS?= =?us-ascii?Q?P+4UdhfQxl4h8ju0i8aL3qbsYNSgYks/SF6HtV/gkFQi5kUC7hBkMG99oVzG?= =?us-ascii?Q?5y3pZ8Pinsjd1Bxkz9fD3DMLpG0mDxaohU6ZysBipMHaYlViI2+iF++Cu5GF?= =?us-ascii?Q?hNbalYmcxM+LBii80BFUBLmtIjArxtYXUzAhfjSXTDjplUEKgJ/zfFDaM+MX?= =?us-ascii?Q?OJMVf6Fh4asZbudIHJeYK3wRHcpHPw++u1xQBdGX6ILt4FDXP2WdDfRNK3DZ?= =?us-ascii?Q?zYhE58J50jnkRIREideP+GH+lCy2ADCxqkD6EIuCsSbmrvqtDkV7GUgCoPO7?= =?us-ascii?Q?ImA4YbmPozKAucXDap3HbcPf0EPacDAa6eqAnRUClUjuvr3EknNiJ21HsG7U?= =?us-ascii?Q?bJX2YoxO0kowxzC8RYRW80AZfiZLxQ3hx24iUmMr6JaVlvlngFoWTSMnIbEu?= =?us-ascii?Q?SSYxDG0tKzJsQS5MM5vBQF0YYd2XJFBjch+HjV580RvafRiZCWEVDoEJUr8C?= =?us-ascii?Q?Szd9HyYq1qys5yPoMR7KxXAPc/TDxUgWiGImTRPEoplRjM/5gfzSTjWG/9fG?= =?us-ascii?Q?/bmE/hNG8QLSdKi9xQX3393uA8CKzBAqcaxw3l7WpqPcZTwm9dGEUqLEU6qi?= =?us-ascii?Q?NYnMW3n7Pv0J5d7ZIv4D898SidaY4AdTonGFUmcyvmPu1hPgq/mNoS95tjUe?= =?us-ascii?Q?8Ta9o7O0Y8SCztW1RD10pTq7cdV2v6F2t2dOD3Hw8bSvsnYXGI3ulmfgceEP?= =?us-ascii?Q?6eDy1UvplYLirjh7rQLMrK4stLMwjOJwb5kvIl2TRDwKomHipuc/p4nISEQb?= =?us-ascii?Q?V8ZYyfCgmSIqT5NSjikkLxELzJsKeA9x/sKl+Lg0a1yuHbJ/xsVpO2R1q96l?= =?us-ascii?Q?Aq1NbgAA6n/p98iWtpaxAQRUx5tQrTZ+DHL+BAUusF+agIgaCscEivGNNP2d?= =?us-ascii?Q?dD71L08dkjBmwWXz6LjOrdq9qt11BKaXkAereXpauI86biaseWdtigOOG2eu?= =?us-ascii?Q?wV/sYmdKnImVNQ2Eb27Aw2+CUuiOC+u4ugieAt9SO5Am5d76uhSJBcZRSrwZ?= =?us-ascii?Q?oCetIUbpyXYA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB035;5:fx3bEoo3GO8xNJ6la8NslBdIGJwHLQKjRRTnJ7urZDzoXgUfmEvee8xihGRsk96cAM63Gd1hB6oV0VaPRffuwPyuXmrQn3vbiqX9dyfg9/TSUdMhYTgbHNlgxd1ynZGzb7bcPu5iFJaRAHPzI/63eA==;24:vIZIP2lNtcx14+R3lDA4BT09UsScVJGbfBmvLTs801o4SnCXb4mom1OtEGnncOUjSSGa7I+roNSUbni96sFtxXdT9aGu2HkjEP+2Ve2PbRY=;20:L8nGX1OiwmLGc0IxPX7AXBvO9JNfB4AgrXtmHa/0pZRIzkIuhb7qAiPyt1LEkX2FcCMdnlEs3j19a95vpv1mI0XTgSQ+rXjJ3WK3+E5Us1sOZkQB2t+tig37wkHIvxJCnn+xYOBrsumOpTyx0jiMIjG558BGEBXWmDZUqewDqcU= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2016 19:22:40.8678 (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: BLUPR03MB035 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thor Thayer 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 Acked-by: Dinh Nguyen --- v10: No change v9: Improve node release handling. 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 | 49 +++++++++++++++++++++++++++++++++++++++ arch/arm/mach-socfpga/socfpga.c | 3 +++ 4 files changed, 54 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..60ec643 --- /dev/null +++ b/arch/arm/mach-socfpga/ocram.c @@ -0,0 +1,49 @@ +/* + * 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); + of_node_put(np); + if (!mapped_ocr_edac_addr) { + 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); +} 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