From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752568AbbHTLg1 (ORCPT ); Thu, 20 Aug 2015 07:36:27 -0400 Received: from mail-bl2on0069.outbound.protection.outlook.com ([65.55.169.69]:39723 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752534AbbHTLgW (ORCPT ); Thu, 20 Aug 2015 07:36:22 -0400 Authentication-Results: spf=pass (sender IP is 62.221.5.235) smtp.mailfrom=xilinx.com; arm.com; dkim=none (message not signed) header.d=none; Subject: Re: [PATCH v5 1/5] arm/arm64: add smccc ARCH32 To: Will Deacon , Jens Wiklander References: <1439973629-19505-1-git-send-email-jens.wiklander@linaro.org> <1439973629-19505-2-git-send-email-jens.wiklander@linaro.org> <20150819165009.GC10297@arm.com> CC: "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , Arnd Bergmann , "Greg Kroah-Hartman" , Kees Cook , "valentin.manea@huawei.com" , Mark Rutland , "javier@javigon.com" , "emmanuel.michel@st.com" , Michal Simek , "jean-michel.delorme@st.com" , Jason Gunthorpe , Rob Herring From: Michal Simek Message-ID: <55D5BB9E.3020304@xilinx.com> Date: Thu, 20 Aug 2015 13:35:58 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <20150819165009.GC10297@arm.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-21758.003 X-TM-AS-User-Approved-Sender: Yes X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11OLC014;1:lyShzz+OGkGVBmlDXgHuGhfKeMGQgVg6LO3UdgGgBTKLYUItF2+F9y0B0TkwDCdwakFUmVE78y+46Zkv+ClGt3GLmKv82roVQtyKam9dxYUbFyES/B0FojZR9XnIxJL8hkzN5SrT8aLt1HB9mjT/nJOzwSVY3iUiHAhPnTUELe3eFT5inpKFrrQU8iEHfMyDUVFTKb82y4pYiAH0OAD3F6HL6pob4QgspPwDoa8dp0N1/11dXXE1Yz0pcpsu0aDd9wSmM8d0uAFNtkDi9sg6SVm+QFsFTGqvaoiq1yTq+W+PrdofP68CAssjlPfAuXWU6Z1oEfVOLgoNw5qDivcaUOx2yiAuAsVWMNtpUgJJlJ8= X-Forefront-Antispam-Report: CIP:62.221.5.235;CTRY:GB;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(3050300001)(479174004)(199003)(189002)(377454003)(164054003)(51444003)(24454002)(5001920100001)(5001860100001)(5001960100002)(4001540100001)(5001830100001)(4001350100001)(81156007)(59896002)(5001770100001)(189998001)(33656002)(46102003)(64126003)(6806004)(80316001)(36756003)(50466002)(106466001)(65816999)(87266999)(54356999)(76176999)(63266004)(50986999)(5007970100001)(23746002)(77096005)(65806001)(65956001)(47776003)(64706001)(62966003)(77156002)(92566002)(87936001)(86362001)(36386004)(83506001)(2950100001)(107986001)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2FFO11HUB046;H:xir-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-62-221-5-235.ipspace.xilinx.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11HUB046;2:D4H19lfdrmczNKfl9AEBfv0mPiNPWVU0xmFl7f+Wy4fKDNf182JYa4G9Q9bk5QwBrSo1dlNvXQN1kiijfyGz0jGMnlWDABt9pLqBLgI0PuIFwbwafcDuH3ymym1398MSQIFaf0RmDQdnl/6sMv1pbnS5k7WgeZTaJZ7mUEVPwa8=;3:Yyi8goNotF0COLq7lnHFz4A3Z73tak1v6luD2DkNvB/7fUPpv0swUZGdTfSPOUntkCfrGeby49pKspWWw3S8d/OQbYBytxqZteRJm/WO5YJherHBvUFc6LPbFGz/BuCNNSAl3TkkU4upPXxekgUUuucHnwGSKPQGXTDBYQ0viXecxvAJdaKw03RFP2kldtmwhb0z/rMBTTokSEYapSHMKjeDpruUT3r0+N4EADxYAOY=;25:TLAbm+KGkT5HbBoxWpiiAbshzj1dTT52SsHDVlAZuy6GJ4NUBhgRlMFEV8dI/l0gxAT6XDioFFahQvxbgo4mg6VAkJwM3Xlf5n+wRcZFwrPH+8Es/rSDJoLtqTiSjjXjBkfEa3bLDxkkIeKGsTv608auFevu8YDbWAhPKYFCXM9Gu9bFNX0h6MdyCF4K3R2X0vZ0vyA50zJmw1L5pUUhW0t4ViADP2faNHdWed2Whi6ErDOH+Dg6a+RKBwFZscdnJoON2Csn4ATawo/rOB5x4Q== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB046; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11HUB046;20:Og67pGY/ebfVVeyPuOZI1DTxt2DeBkkRldki3BhRQMdGC99ySMcLKNj/u27X6VaWb01avNKXk8EQpA6Vn6F3vWkiyyEqytYcK5gDw8b3n/GU8Wi/fe0G+7xFLLfF48S+AWHjlJmpxEaLi+tLZ3rxE4SBd0tjj7I6HMbwelz4VFY0ePWBRdpvsmuLzUa782WDtwsgFX9xbp0cm8wA1AMys1U0Rkkj6PladD/dpboZwqmpWPjGYpTVJtNGgxslmwovx2yPw1rtk25E+trnpPheEpHSKVdFuz2X74562smIwbU6WnOLYNVk7djb9HSM0xh2V2HUcK44Y/db2nlr8+KKcg/ADOoPnkUy+XjuT78kv4CnX1468SqriGPDPkGmz1f1yPL/1BipsL/JRINvY8+V4ZeYdLHlFTl6QwPZuPqK2uYjl3hJcB9jZnCVTOFEQcyPF7d6QVxs4tRdj7CVB3mdYxZWglt607yi/CjkMIKUTPmr9Mh4yXt1Bu/PcAE3ju5k;4:vHjUeo3rn1eYEOgMS+Ck3ISGVE7aENZo+zfwuA0QlCJzwOR0Hmu5m17sSanceQnUdbmyuMifuDjD+4vcn19w6yum3IO9R2OyZNnF7yCwltb+N5TI7j/7DUfFW27Z17AR2vZYsU0IJuqd+Kj4QUNwN68dbwmk6zG2lS8d2Fsuop/4rH73i5qRFuwaYy7yngU+TepvTlDas0oB9jN4C886GEt+FOL4F4pPoUfnTJVRuYMJWnnlsec/z5JrgYsQ8hAJUM5fA0DjtJX1K81YfF3o7BGgvsdufPeNd2AzPaRniL+9FLcyL9YwN8hnS7BR1bLu X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(8121501046)(5005006)(3002001);SRVR:BL2FFO11HUB046;BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB046; X-Forefront-PRVS: 0674DC6DD3 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BL2FFO11HUB046;23:q9hrj4HifdFBE28Oz1p14swrQI0W+bl4spUm?= =?Windows-1252?Q?FvuOiZWtiZUpN5hb0s5XU5jMNlv9CfoV7VYziQVUxAh84YiDEv+zg4u1?= =?Windows-1252?Q?YiYbMvAIAbZWVIr/PtbK2k12Rr44XHlSLeKi6iKGwBd3WDc1mGaaKPj6?= =?Windows-1252?Q?W1cVr5KHGsMKdbsYerBJ9UWtCJr/H1jWmPbbF22s6bCeMcM0sxttr9YF?= =?Windows-1252?Q?R3Rtu3nThC4n1ESYSnd9TtfYKKBHaIyXQk8iLb4QCp/f/bd0125caFK+?= =?Windows-1252?Q?EKHGABcOuAPc1azAZAjW1x6AkjnRYnyMjeAPl7KKuPw0irjYfpyFlOxK?= =?Windows-1252?Q?wU7TH0QM8zS6Ff/fGZYYwNhRffx+YolTfQGKm1yJgtNaxGbXI4jrML+F?= =?Windows-1252?Q?vHOg0w6TUc1rtjdFtcNG8wvJ68ovhCkd4PllMHbkWkBxd4lPae3ltGzX?= =?Windows-1252?Q?x1i4kUSGEHnumrqWMHG4HYk0tE86Y7R011JJ4JW7mT5nYHMykRXRLc4k?= =?Windows-1252?Q?drwQB7BSwgYQCSVE86fkPckqEojBSetHVdPH4dNwnEU0Kt9mscpgOYNV?= =?Windows-1252?Q?5OSXiGDAgZmu25gGFW8N31n1pkloUatKlE7YhfqjktMdqCfU9CvKbRDK?= =?Windows-1252?Q?nEVGcYiX88RuCqDe4MDCi31+5+ZT1rReC2fHcb1T03PaCXHq7FBnoB1w?= =?Windows-1252?Q?yvHU+ROwAcOy7Ulfll1DJ8S10+TVM13C7ReP3zs9qBg/1pvqBkoeiMxH?= =?Windows-1252?Q?ZGr2mmWjLlJ9oyB5AoXlxgY37i7MgM92SNIB0yt20MwaDcxfq5T99CqC?= =?Windows-1252?Q?5dcacTYi7syflFvuuwE267Tl4CE2NK+yo92IdqUYKGlcZwCHd/1ym4UV?= =?Windows-1252?Q?6JH5DAq1ix+Z9SmBfG0biy6PMdjzcvcNTJbEeaigEG7wQDUE6x7M8WBe?= =?Windows-1252?Q?YoYkgbhLE3v/VcLGS+3fNkrzQ/jygMSomPbkSkWiU7Ld1Ld8cODXd8A6?= =?Windows-1252?Q?6j7e107iDLRuwx5bdoI7wUSHIMi4R9yAGX26N5LQ008G6blwyf5yyHl1?= =?Windows-1252?Q?UJlD8qvW4IU/oIk/bvF8r+6soIiGF7Zx0z6t3918e+c/m8ECMx9C2rzE?= =?Windows-1252?Q?hZ1W3p1r6B9MmzZn7wdRJ3fmAqP6+YF8FPmQs1ewi9og53P1f4y++xpG?= =?Windows-1252?Q?ttfgxcJxLFUfFU9G4qsCc9YgUz/XBfu9xWpfqo9xhUS35ah7pdx4nPHP?= =?Windows-1252?Q?9VVcGoalE/KqjuwcysNRwwwtM27EwMlJL+LtdxdcsNPSHwHwto4U2nWZ?= =?Windows-1252?Q?q3j5Y127VOPrW+mLBe4D079seGBULoGNN7IJ92MU8IpH5ibpqDSaa60i?= =?Windows-1252?Q?zsoi7Y+Yrx0WMpxhQvXUtisSe4Z5uoXn2hfvuJ6AXz6esg4JbS5RxAsL?= =?Windows-1252?Q?vhuOAvcNqn7aOE+oefxQxe7anr19WBt51Hn1+KQUWYoMqAlACievABdH?= =?Windows-1252?Q?6e8j9gU=3D?= X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11HUB046;5:1Oo9QcnM1w/yijjmf198DRl1jk2k6aHdYElPJLqSeT0DPO8R1LR688uELAiliD9pdhzSL8eb/84Nk/UJINOE6LIZEyvo0Ysz2G1MroWKEqNav+xL7+i8TAMNkydeEnN05KSH85RC51ExnHCy8DSfAQ==;24:KIzxVwTSsek31fQhhUinZjs9LvWsLHYBcGdYtRWTgReb5xqF0wROZ8bQBF4AY0voJNd+t736bWnTh2DglWG4RJS0h4mM6fp+94mTdODmO+8= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2015 11:36:19.7736 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[62.221.5.235];Helo=[xir-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2FFO11HUB046 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/19/2015 06:50 PM, Will Deacon wrote: > On Wed, Aug 19, 2015 at 09:40:25AM +0100, Jens Wiklander wrote: >> Adds helpers to do SMC based on ARM SMC Calling Convention. >> CONFIG_HAVE_SMCCC is enabled for architectures that may support >> the SMC instruction. It's the responsibility of the caller to >> know if the SMC instruction is supported by the platform. > > [...] >> diff --git a/arch/arm64/kernel/smccc-call.S b/arch/arm64/kernel/smccc-call.S >> new file mode 100644 >> index 0000000..3ce7fe8 >> --- /dev/null >> +++ b/arch/arm64/kernel/smccc-call.S >> @@ -0,0 +1,34 @@ >> +/* >> + * Copyright (c) 2015, Linaro Limited >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License Version 2 as >> + * published by the Free Software Foundation. >> + * >> + * This program is distributed in the hope that 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. >> + * >> + */ >> +#include >> + >> +#define SMC_PARAM_W0_OFFS 0 >> +#define SMC_PARAM_W2_OFFS 8 >> +#define SMC_PARAM_W4_OFFS 16 >> +#define SMC_PARAM_W6_OFFS 24 >> + >> +/* void smccc_call32(struct smccc_param32 *param) */ >> +ENTRY(smccc_call32) >> + stp x28, x30, [sp, #-16]! > > Why are you saving lr? > >> + mov x28, x0 >> + ldp w0, w1, [x28, #SMC_PARAM_W0_OFFS] >> + ldp w2, w3, [x28, #SMC_PARAM_W2_OFFS] >> + ldp w4, w5, [x28, #SMC_PARAM_W4_OFFS] >> + ldp w6, w7, [x28, #SMC_PARAM_W6_OFFS] >> + smc #0 >> + stp w0, w1, [x28, #SMC_PARAM_W0_OFFS] >> + stp w2, w3, [x28, #SMC_PARAM_W2_OFFS] >> + ldp x28, x30, [sp], #16 >> + ret >> +ENDPROC(smccc_call32) > > Could we deal with this like we do for PSCI instead? (see > __invoke_psci_fn_smc). We could also then rename psci-call.S to fw-call.S > and stick this in there too. I think that make sense to make smc, hvc calling more generic. Remove psci name from __invoke_psci_fn_smc and just use it in other drivers. Thanks, Michal