From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751660AbcCAQeg (ORCPT ); Tue, 1 Mar 2016 11:34:36 -0500 Received: from mail-bl2on0082.outbound.protection.outlook.com ([65.55.169.82]:50816 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751084AbcCAQeW (ORCPT ); Tue, 1 Mar 2016 11:34:22 -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: [PATCH 4/5] ARM: socfpga: Enable Arria10 L2 cache ECC on startup Date: Tue, 1 Mar 2016 10:38:20 -0600 Message-ID: <1456850301-22066-4-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1456850301-22066-1-git-send-email-tthayer@opensource.altera.com> References: <1456850301-22066-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: SN2PR80CA035.lamprd80.prod.outlook.com (10.141.39.173) To BN3PR03MB1477.namprd03.prod.outlook.com (25.163.35.140) X-MS-Office365-Filtering-Correlation-Id: a74617cf-d529-4a01-071f-08d341ef55ae X-Microsoft-Exchange-Diagnostics-untrusted: 1;BN3PR03MB1477;2:cGOwMPwhrk1Ius1ebekDE7NtwgQQjRkdkuEPkXLRITxBtzHDHBMh/m08iXYK4yFDXABrAWyAhJmWDZxeLPCGPP65mqFkgH6rEy6PFWbLo2AQRp+gQHrExoHC5vFCyh1gy+41C3SXwR28tEPT0Wy+yIt6mp5kHIQEvVjUFEv19GGmjNPBBUlwvayZ9fvdsWJE;3:Zvrv0buONgEWYBG1ilN5dSZW3bpAiccgJe+Ls1clRq791FzCk2blgmQDYUK2VpVaokvwWVh9ih2qOps1weXwrcXL2FIeYWnnmEp8KsYGLxqQklEVnD5YSkqJq8cMPKfj;25:dAnVvVD8BxWJP3Pm192W01l8PbeQib7Ob9WCglDmfe9mdOUKBRYjLXpC19hNTHdEkUDrB27xbb5p1sLucJr6z7DHbwg8zRC5p5LD1nSZ6M8yF0VJpM6ejDl2rKHKKsL9ZfA1aDqWgabTq05fLluL8g4dXH1XKw+HdK1H6z2ANuTwMAK33F/NjLj5LlHU+wz/qhQD/TkfXbj0puHc4WHqgi984USTpcYJntdf+gW1NEo8kKbv5+g28V8ArFMbHk7ynDkECHVGfIQjTwjEXeAMVUJTjt6zl9xp93JZx1F0OJpEns4IcUWIoUrIpWxxtmSk5f+GxNcSt9PZOb9e4U+i6w==;20:0aPPS2TDQnRjhf9UufytfyMUlUeGGCy+oeH3vQ5aDrl3nhGHByU+hQurs7cs6DtiUQp4sxAc3pOPrZuHYcgSmajsYwVNjGK+dOZcjwc+oTGkdKsZcoMv8+XgAgXv25SvUuw8bb94JfE6FDlPhJaQVJsRiVVnb25y2XIDDIOyf3c= X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1477; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:BN3PR03MB1477;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1477;BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(13017025)(8121501046)(13023025)(13024025)(13018025)(13015025)(10201501046)(3002001);SRVR:BY2PR0301MB2023;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB2023; X-Microsoft-Exchange-Diagnostics-untrusted: 1;BN3PR03MB1477;4:Ms3ectfB4olJwZIyjBPUWajmDe6UDMB4p9wG+GD68KEuYNMDHf5sAuHI7R9o+tAQ16S93Zt41ADSNmFGA7TDDOLV06SBrIYF+RJ6Ee+s8bVZneLtH/uegpcfuO8RJfDRgtwrNfNP9Cm3+c5LKCmVwdoZ8/Cnfn7nKYefbPs8UvXmG5n7Gd920G25ME/NFwU18yhsED8IE5ti5UGSHS/CAvNecp6rfeOQLuxvf1AijU9exURVxtcb+DrpGJjqQW1H7DSOZi1ODPqYF2DobIZrBFAgajxtPVKkwSoGChjHpvPBETDXKXpdroQLtpZmi0/ntmE13BieQIACPkLXnJctalJB3ACDcXqIyhQuX1g3NjqZYpjI3hxgRigPTFFtySVD X-Forefront-PRVS: 086831DFB4 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(40100003)(2876002)(122386002)(5008740100001)(4001430100002)(229853001)(19580395003)(50466002)(19580405001)(66066001)(77096005)(107886002)(5003940100001)(5001770100001)(76176999)(5001960100003)(33646002)(50226001)(4326007)(87976001)(2950100001)(92566002)(86362001)(3846002)(586003)(189998001)(1096002)(42186005)(6116002)(2906002)(5004730100002)(48376002)(50986999)(86152002)(2201001)(81156008)(47776003)(921003)(1121003)(4720700001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR03MB1477;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;BN3PR03MB1477;23:+WVN6ReA4LnCQSQfX9xLU5bZ2vNyuo1eVGraxYBbq?= =?us-ascii?Q?yRSSt5lI3d2dHmuw7hO02Q2Tmz+ZY8cwaGGA2jq6tbFg5eu34/qVyYZ39uZm?= =?us-ascii?Q?X+zXLvAsOZtD3CkAM17US9w6IONDgX1JAczSRIE8sqVgaGLtpQ4teGXBf5CT?= =?us-ascii?Q?0AdOlwLSb7U7ycD4frQMqL8bGn41jgn9yyonTZZwSgs6XQyFAL2sa7tODhvS?= =?us-ascii?Q?oiIxoG/gx+Tp7V/X/CoPq6niKtvsa5g0mx9KCRHqlDEGfumsCsVXyvvSiY4K?= =?us-ascii?Q?36wmPvW29dgJfBODT/N9fpWPAob6WDGAJ0+fe6Dt5WnqOZRqcXtk1dKV+fe+?= =?us-ascii?Q?+M6ENeZWcnC/ysduolwJvSAxWzFmkNmhG3PVeV/bAvR7SQsNWym/MysViopJ?= =?us-ascii?Q?TAue4fPPpd4pnt2ZAGZm2vmHkKb2rl5Y70/4Dw3p9N9eB/A46We3zh8iOsj5?= =?us-ascii?Q?RORr6teApQ8gDfTzzrmJYovevttJstLOqTSEoRnZ667UsefCjjfnL02UpKsN?= =?us-ascii?Q?uGbib09imRNYKU6eEYlmX5XYpwGv36pJ2LgnXbZKGNEt8b9TNmwB+u+GAJFY?= =?us-ascii?Q?NiUMPu7RumaXNhpFhfGjqVI4+qHsOut7usIx3rhuNOK1F02CoPwdJMCQJpL4?= =?us-ascii?Q?y5H7OLoMBF3zBxWmSQN1ska2oEXu4A05xAqBT+Y7/tbT6zNn1stmqYJ53+ew?= =?us-ascii?Q?00q+k0zdKd7OvAEYfSGk9LhqgRff5JUwYCxsS+nXUr/jkr8Yy6beBxWPdQ79?= =?us-ascii?Q?EsTqre3kfmwFEZRVbvwyD0KEVit/jMkgoQf0d+07uxK6UVfyyo1s8FDgZm/B?= =?us-ascii?Q?D6mkFBFR71EGlkTm0gbG01kopZVFCKXEQqVf3fzmc4CjqFCC+MZ6WdAUFiJt?= =?us-ascii?Q?B4Bg3I6cgvy+zGBcuAAWotF0sj5YJIC8hZ8SJaCyfzlvsewhECeeOt0w8R+K?= =?us-ascii?Q?51dOeUylDFd1/HCeXK7CsRNSNF79o/uo0eyZH/nNFRlpo0SkSB7/85Y+Pmwn?= =?us-ascii?Q?qg079lTCkODV/Xnj0g4QLE1gmVTC6CBVPC9BpQ7o86fLXICq2toMhoNGtMrA?= =?us-ascii?Q?nN7DVa5cW7KeyeiglRfIgdjR/x36afPAq9B7N3GnTnrQLo3Sc1C83Oh6QrwC?= =?us-ascii?Q?21oxxvVMWkXMafiUY3xJAAPzWyWs8NS?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;BN3PR03MB1477;5:k95fIjtYR1ahVMdokhyTIXnVkJ1e+Szz3kSGpBRsN7RzmMXJRgWe2KZuQ/fKbIzfd2s7iRv33KiL71LcGjrPo3GqQARuYQhVHq0nWBIA0zFguWRjGQips5mHdslOSZMYxRFKEKtv7Cr6Jb3H6ZXxxA==;24:CZ8gV6UuGlZcrl44WTBgN4ceqshUkir8KWc07SmtPliFQbwiboIUFrZ1m1J+qTLo8b3OxSFoSzSf1Z4+NW9kiGwmZkQ6hBQOw2JYasmwaLU=;20:hSjsTAWbT6WWcFArkV8i/wtzmOB8Y0pSPewtt9XRxbnsdQUCbZdh8TlO4SSEOzW4OuBTaHsGMCFkIBnsoXmx5ou9scl9+PMv/cTfNpQoEDUVxhnm06qe1JKHbi5TVE7RLaHBYb7lUnhLo4uA7AYstsXAQsRExsbz6IH7Zfi9K3o= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1477 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD025.protection.gbl X-Forefront-Antispam-Report: CPI:66.35.236.227;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(122386002)(66066001)(86362001)(76176999)(81156008)(21840400001)(5008740100001)(50986999)(2201001)(87936001)(86152002)(5004730100002)(47776003)(19580395003)(33646002)(85426001)(11100500001)(92566002)(19580405001)(2906002)(16796002)(6806005)(4001430100002)(3720700001)(5001960100003)(40100003)(106466001)(229853001)(5001770100001)(50466002)(4326007)(48376002)(956001)(189998001)(586003)(77096005)(50226001)(2950100001)(1096002)(1220700001)(105606002)(5003940100001)(2876002)(107886002)(6116002)(3846002)(7099028)(921003)(1121003)(4720700001);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0301MB2023;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;MLV:sfv;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD025;1:4BVVeKcTLTQFP3Ia0VC7kKRr6Vm/8kuZxlqJDWt79wgPKiwgc+5NohCiz2eUTeBpvj4dIfREyZMNAKdcxvzBD0uBfvFadFPZESJgI3n48dqD1vgwB5KSoFDKZ/0Ek8/SylnWROdJgfZwqXrWbybT7H3DLZxMeAzmlFKIWHhzeYT10b0Ixjv4qz9IT0gD60y1ZYKjwUGj55ihMxFyGb+gVgvtA/tSogppAW5VJDasmDa2YTEJaVl0CvRf6hljbF7jGpdPx1im7WbKyU7w8jFKXrzKDBXPLsh9ZhaQV+OHWOd3hY7jCew6HomBwx9VB+JH9ybpA0IumHKD2shVhOGYezh63aOhKt5GRswiOD6O8u4TkxejpnoTAmlaIc4UqvzwkAlkRxoQ4cBLBLG82/AYBAPzNDLerJwFKFiLrsUUNv5td9wlaS0D1ES5YmdY6yG7mCRkZb9jD8fk9xj2fsG66ZgyKLOaFcnBJQpwhfFHi34= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB2023;2:Ijc+f4pBQC6UhvSYu77KP9cB2HNkQYDJ5x8j7dsTqCpXGefzPGDW+uqVc2hiy+Zp+yofqsjUOse2ZBX+Pjtjila74sPatwiaK2g7gxwCKFcM6/FuKNvbKNwzJmaVAnbN6HoklZmh2Jvuf43LjUq0AtySpulsFtLnVaaM9UtaBgjsDnbxwSwW+ORFht15LZQW;3:w6dHeQCAF++XUMIhcp/0s/bJT0IEARxdjkUZVixqa/kE40Pf5QBJAJFGmokizWRZthxx71nmY8N3kmxnwbyDcgJRzIYH4T3atyFzqmeO4m0BpFVsvIuhj8uhpsiS6JtOoDsXvxr0pxD1WSOLlNq+yeQwzlG+qqmgEAo/cmtvI3A1KifsdsmQZqyZ8RwwMY7WTdqWvN8BSJjiWn9eJpL6Bw==;25:6po3I7ATN+dd0g10Oao40SVPkvq/a6p9pc9l20WwMpb5JuM6qlXAl/XSEcg6yTOgfo+oAovRYIg6gkbHD50POzvw396HxKuvYssPTlAykGpcxO7cJ6pmjLyj2Qs9G+3IboPjezrTxcFCkr9w0D6Oy6uz32cMVB2i+cCnkN7PoXW6niJ/4NbGOgqw+FJuE87foHE1c6jw0p6aiJ4zDcDI2el1tcQwew1ie/EAPeiQ4Rh4UPm2ZHMvHfRtSv3AqjwmfhpnRiYLdDpoPQ/J9gQl/G0kJrs1HkslFuzC3ryb4zwftz2O1MI7Pb3Lde4+ZG82VRrNyfW9wNR1xBElJAM39w==;20:HhAlSj5clP22jcWbAto9OGeSqMJVL6HXVU4BBuEWs+Bo9CWAMkhLJ19ni0sDvLga6ortMjd0bJBCVAfYCO1K7tu/zhWjcjQbTEF8eMvh0hOSAzNb2sXRuQlrzDx570dHUjAXqPuBuZAPO7/T7FlCIvEP4TgTa/ppEZiq1MoBSEs= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3001016);SRVR:BY2PR0301MB2023; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB2023;4:ElJrtgHuZQx8ZhrjJFGBpG/Bo8PSw2bRREHDXhpdwD1asY9bEsUXoqpMNIF/9+W4wFt9tofjPTESxvP8MxrT+0SC/GllJY1tqZqouAqpao1UOGii7ZqFswVyKuXoS7ZE3N/MsvSVTOC8l35y/GQyO96vXZkm2OTpw3yf0TPMkdSgKzzpIgEa79DaumHd9uUmeWQqhSZ5G/wwtRNVR62QAnCGzHO9kk8VsCDLCHNkk2XbFRJ/2NL9t2o5GZ+XvHozspGFCi9PfFwdwhE606WP2HDShBXL9qwZa+uRGzqy2zjwhAAXf5zIeAxXsAA47uCLlV4c1I+LhenH0htheoT96+0XaC+2Uh1WR4z/7/A+1c3WhvnbRsD6apr3u1EzQjQUW1v811udJQGFL5YZUDWj5cYF4lfCsuOd/TZNKR74nXZF9yII1LWVRZvCzU/UwcFem8Q4Ck2b6j5vHd/+1yhPgg== X-Forefront-PRVS: 086831DFB4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0301MB2023;23:c5QnDx8Uy+gqcd4i5WqINFcOkBfVficMPU21XU5?= =?us-ascii?Q?llNCsTOFpAAkuMepIyoszAJHHVMLTk+ZVELk4QHRtQONrqjpbXPCLyAUgI++?= =?us-ascii?Q?lHPZmu/F8X5n/862OTcfUE71lJ5fKJ3cM242RdWj7r/llKS4taVWBVtKHaMa?= =?us-ascii?Q?cBa1cHkrLC4eI0d9ZISe916k0KvjyPhExVLeoItarRlSdCobTddS2EcZTWyj?= =?us-ascii?Q?i2wKHQgRKtvea+JEt4wQI/4e3ezV40fEkWYzG+ype8IRxYpkCdWh8rLz4a9K?= =?us-ascii?Q?AlbP0uY5vFc1dufy+gi6KN9JSqnb7H3PgzdM6LU6+Zz/qmpjNfOBarrA94nC?= =?us-ascii?Q?OF+w/jAnT+qcJHBH1TXEOoZpsO/beswkPNYd/jY93yNgYb3UbPQwbwGBObxU?= =?us-ascii?Q?RGQwVrw/fYE/8MGOLr2qjdiJdFPdhA8IbWq+XMmF7djQ84z5h0cWP/riuGfy?= =?us-ascii?Q?bp4rl4yfvcOTPEpozO6VJSMNhdiHIw+MXI6Q/t7rwmOMsgoz6ucXBAPW+3KU?= =?us-ascii?Q?bciiJCrdEWj41bsoNYDfr+yWu+HVXBg3fDbzBFmOQVNGmqFlCs/Yzk+ikevx?= =?us-ascii?Q?kUMnRzhLS2J7Tseurf2lPv4hK5MP+jZUFBrnhTtTEgfx+AbSd9cXP4Ak2zxi?= =?us-ascii?Q?sUS5r071InRwCn/t0K0UOPxz8Yng7nvkJc1uF0FwP1CRB+OZYZPf/cQ9uItJ?= =?us-ascii?Q?MVzo+gg1pK4VmZwEfJw4XfMSnRnVd/o+XzgE7xDDmWTKtC7Gg3/sB5omD534?= =?us-ascii?Q?6Z/8qJrpXU/InFT06wbfeiebg6Pv41qynIQDGwv3sEIR96+UQyN1wTkwQ52n?= =?us-ascii?Q?mE56SGy2rC2p+3Wehh2HEQkEgAWOabxfyi0LveacZgVva5UC6cn5/TM70vg0?= =?us-ascii?Q?fl4xSaKqqMHgzMYQgByxfVp9gh3kyhJkIPjcH3pcAzMJRTfI/lU3CG8ogNo/?= =?us-ascii?Q?T2gaYKY58+QDAZVPvIwN1UAoyVXFd+5VpQSWoBV6ZBLsSvdF2XUuNB47TDGg?= =?us-ascii?Q?OJzdGzc6XpQQnhxJGk2U7Wc9FurUpBypInyMWzyktR2APqRBqnMdyP2BqFkz?= =?us-ascii?Q?I3D+UyLNznMokxTDP9fkDOLPQ+fDA0uV8We9kjZAm0w5hD5BNeileTdVcIGj?= =?us-ascii?Q?KX6nH8fmPckXRe6dcs5AQXiyN+FldH2cmmlByjWltYz9w57U/9jTF7fF5yjr?= =?us-ascii?Q?7pwp4rik7rTG+S7nnkFy0qdqYex9XMfwsppi4KC2Vhoq6Kb7m2TR2E7WEeUC?= =?us-ascii?Q?wan2mZ8Yeguiy9pmdS43uwIwNRz09aKHrstehs5r1eCvOZ9M0GYj/CHQS9W+?= =?us-ascii?Q?UvvYYjYkVR6+hG3EGfzWxQGjnCsxgiIVUb6U/OqMSE7UNVhZhnZn657G3DW1?= =?us-ascii?Q?GMhOnji16vhztUHy6YWvAJ+ex30Gy0vX+n6jpfu5Hgg543cwG/Li++dye3WS?= =?us-ascii?Q?2sHvD9nyRlBdPVNg5B6dm6neOx/lfK24=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0301MB2023;5:EQbGJ2ZsXjJ6MuMsvjLXnWCVLD0cfSJx/j6THfRkP2ACUBpmB7QJuKjaoJj6q8XwR1+SSJnvVE92UEKkchAHqaasia92/9Wq0N9g+N/4GnH1CUNcXtNULXTu5rBzCHQ5wvQjp3MgpJHAeBOv2TeExg==;24:hsNBptYJYlt+c7ckMcqSlErJ3Vr8IS9vobhMGTNzq2t0XuGJq57+yzXZiXJ3uXH31dxMJdY4i9sbmyF3f6vQ/RbSzg7K68GxIBaTmMHuG8A=;20:69OSkG3boilTvD2HabwdczMbYXJ9ux8KvutxBc1Mqe59vDFxQoXQEBVCzlsaSsifHD+tG/4VmG87PRD4ZyPEf4BXlf9VoUO9SB+vxyDWIrzgibHJlRpoP/oh8YXpe09r8l4BkjmNO86yKqxplVEU7I1MEAo5OwBc3M6zOabI0GI= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2016 16:34:17.6241 (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: BY2PR0301MB2023 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thor Thayer Enable ECC for Arria10 L2 cache 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 --- arch/arm/mach-socfpga/l2_cache.c | 42 ++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-socfpga/l2_cache.c b/arch/arm/mach-socfpga/l2_cache.c index e3907ab..b197218 100644 --- a/arch/arm/mach-socfpga/l2_cache.c +++ b/arch/arm/mach-socfpga/l2_cache.c @@ -17,14 +17,31 @@ #include #include +#include "core.h" + +/* A10 System Manager ECC interrupt mask control registers */ +#define A10_L2_ECC_CTRL_OFST 0x0 + +#define A10_SYSMGR_ECC_INTMASK_CLR_OFST 0x98 +#define A10_L2_ECC_INT_CLR_OFST 0xA8 + +#define A10_MPU_CTRL_L2_ECC_EN BIT(0) +#define A10_ECC_INTMASK_CLR_EN BIT(0) +#define A10_ECC_INT_CLR (BIT(31) | BIT(15)) + void socfpga_init_l2_ecc(void) { struct device_node *np; void __iomem *mapped_l2_edac_addr; + const char *compat = "altr,socfpga-l2-ecc"; - np = of_find_compatible_node(NULL, NULL, "altr,socfpga-l2-ecc"); + if (of_machine_is_compatible("altr,socfpga-arria10")) + compat = "altr,socfpga-a10-l2-ecc"; + + /* Find the L2 EDAC device tree node */ + np = of_find_compatible_node(NULL, NULL, compat); if (!np) { - pr_err("Unable to find socfpga-l2-ecc in dtb\n"); + pr_err("Unable to find %s in dtb\n", compat); return; } @@ -35,7 +52,24 @@ void socfpga_init_l2_ecc(void) return; } - /* Enable ECC */ - writel(0x01, mapped_l2_edac_addr); + if (of_machine_is_compatible("altr,socfpga-arria10")) { + if (!sys_manager_base_addr) { + pr_err("System Mananger not mapped for L2 ECC\n"); + goto exit; + } + /* Clear any pending IRQs */ + writel(A10_ECC_INT_CLR, (sys_manager_base_addr + + A10_L2_ECC_INT_CLR_OFST)); + /* Enable ECC */ + writel(A10_ECC_INTMASK_CLR_EN, sys_manager_base_addr + + A10_SYSMGR_ECC_INTMASK_CLR_OFST); + writel(A10_MPU_CTRL_L2_ECC_EN, mapped_l2_edac_addr + + A10_L2_ECC_CTRL_OFST); + } else { + /* Enable ECC */ + writel(0x01, mapped_l2_edac_addr); + } + +exit: iounmap(mapped_l2_edac_addr); } -- 1.7.9.5