Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762092AbcJaILy (ORCPT ); Mon, 31 Oct 2016 04:11:54 -0400 Received: from mail-db5eur01on0080.outbound.protection.outlook.com ([104.47.2.80]:21785 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1762001AbcJaILu (ORCPT ); Mon, 31 Oct 2016 04:11:50 -0400 Authentication-Results: spf=pass (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=pass action=none header.from=mellanox.com; From: Noam Camus To: , , CC: , , , Noam Camus Subject: [PATCH v3 1/3] soc: Support for NPS HW scheduling Date: Mon, 31 Oct 2016 09:37:46 +0200 Message-ID: <1477899468-5494-2-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1477899468-5494-1-git-send-email-noamca@mellanox.com> References: <1477899468-5494-1-git-send-email-noamca@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22520.000 X-TM-AS-Result: No--16.702700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:193.47.165.134;IPV:NLI;CTRY:IL;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(189998001)(6666003)(4001430100002)(76176999)(50986999)(356003)(4326007)(5003940100001)(77096005)(11100500001)(50226002)(36756003)(47776003)(8676002)(8936002)(305945005)(2906002)(19580405001)(33646002)(19580395003)(7846002)(106466001)(49486002)(5001770100001)(92566002)(107886002)(586003)(626004)(87936001)(50466002)(229853001)(81166006)(2950100002)(81156014)(86362001)(5660300001)(48376002);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0501MB2476;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD045;1:vrHDQWq11i00c8Et34dv6MWWclGX8XZhdzfJhz3o0ydkjq6MXuJhV1AXyrkaruDt9vtgKRud9mn9H7oDegDokUm1bqWT7WI+D/HZ/Tgp1N0HxVwUNyv5JRf/xSQsSoHBLMtii9AH2zFnF/aTCiK1AJwugd+U0LFFri55qQB5EbIum3svFlxihw/VOz9n0EAdxMPbhI6UpQJ/AWdwSOQ7LmNyu7qtzhbnRUOt4+3Ybl0dMJ5eSS1vYA3vWYw/yXzJ7Rzh0z+bemZqNdvGrWAfzW9SAGO7esEVTsek290GRdiCI7XE2nAQlvJ4sHeTHSwx/MCDLaPshvyO7AtoVXTw19MPvp9z1/oxyaDeBKC/eG/Afg2apwV+5grqbuqhjtoAebN9OZ4nxpCVjrEqHdQ9f7l+qxk/7aUlTZY4Sh44+7S9ZFHSPMkn7PkgG8PKBagtZTpynqu/c/sAHTHkf+KesFrx/iMqdE2Q2ylU8z0eMEqi+TgU4O0x0sR7Ev6DJXDF5HSopeWgzpxpwa62TaxQeWB+IDG1CtKSVJ30bwsQXFYug2OmkBYlEC3ddDLT8bMAozMMbil5umi3hjb+EFYWZQ== X-MS-Office365-Filtering-Correlation-Id: 52e1e1c2-89bb-46ef-5acc-08d401610aa3 X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;2:y5988ggkckih0h7EMshlYcy+XejPIOZ/HOF/CUo9RmbNOIBTs32V8XZXPDyIYlqZw8wapFXKbZrOVOUSTrB+KxFjbY2l4br7LEgZtAtWFJJeS8hSzxfGDARaQpA09PBWg/RMS4Ou95gKC2IeXr0ZHF9y/zR0pQ26yOIlB/SeOcWQR1lxuf9TmGVq57jXw/lXOs5rx1kKHoVr3KsJut2ZCA==;3:lA17gH9xLg1+ax419pcffoAIBvu31jDBvAzvru1wWzaxkf7CfVglVvVX5GCy/JRIkNP7JhkKZ+I7nFbFk7hswOfnlKs1I4Tebw1Ft6O9bcz3gyH1ZKp979/iTAm76wWTdB+LwDJOXUVZ39ZEzJJqaThdS5CXzlziDXylAMCVOj0gwiAUufoUA76DA2nH55yPi+agHHznrGbjlVovArFTpreKGOC3JWy98Mkpufz9oGjSeIC5c9kOhVa6Lx16Z9tTDrvQeFAbwfR5cV2LCs1H51KXb6b+7TpZ3z7jjhcwpek= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:HE1PR0501MB2476; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;25:Rq8fS+5ctqefcW6VvW2RPcyLu3rftHVfZXtUINw6/GmtF+Bab4+WWGD9WjHH8FBLCHxeYUyWT/hukA80grmdAmfs1AMz4toClWZ+Yr3IZnzljcJ19LWg1JJ22H4dJv4lROg+hM0yIOMHzQbSqWgodKQctqFlCJ+UpUHD4shiy7PAXKyiWGnfst2GV05vIjGQqvpcA/8aTcFeK5DXgcT+o1kcAy28LzrIdTfheG6/Mvlmunbt9FuJTkQed553snYzzSEE9Y9tunzHzb4GP4MURoXvtlC9deWlhqI3vCwioi1hEj/fMkzW0t4pnNVwcF7S9UoPCsaZfLwh/zgKE4GU3lEPP2WEYqIbrEjk9dVqFs22I1xqqpgVQ9qy19BetgkSR4/Knxvz2UaWJP5x6Hl83RY/WuJSvSfom19TTiGyZUA4xANmYfHjJXjb3khQUoHy;31:vVp2W/FX60lClgWVAHDdc8RFoh+4cnoDjSVxPPb+LFNVnJRBb1yp5vsvnBFXLn3es7GJWku5OLZKChfqIE6pbHXoSzUXq+78lNzAENvWbr+3O3PDNWEddpqe67c/QCVmV4dfsD6cNFHAcxA5BJOpEtbekEURw6feIivAgRGhlSAIdHsyr9F38eiB9DErPuTUJqEKKoIs/CcjolPtW72xXpBQLiKEAJE1YLrje++qSkZx3T3VnzNcx/jqdydMGTPw X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;20:bJUDqsELcrqbFoyKEzAJpXqBnDfIOz60cySdMKpfBQL7kY84qJ4sQ1g3yaQs/zXwRj8fPko8B6FZz6pdfm1FSFZkqB78Mb1VmhqFybFmAGpkGemiSFh1GDZ1ruw4GimyAQMgJrdJC03z9MoRKSetCWc/avo2C6+ZxZ8WlfE/Pu4LqvkYK+RrzKFxqhX+d1mSxTiVIj6yd8KXT+5GLXtsJzeiqfZT2mmlSCNbEXH63WRysTXlHDVSshHY70eKyqYE44FhpXhLO5EVRKZ1Q4gqYSsEsEanwuhAh0XFcvjv4RQiAqrXKOUGLITvNPJG9Xz+cXFMa5RjUNj7+copjtpSBxyIvBhD+GNqsECDI2i8v8DZkg1HMPea8tZcpBQqRWapUckQ02CxlJc2Vk1g+mblL497t9+cktYQ8TbcSx+xU4AshSgY8evx4cxSvywvheM2Y9AVvJoRVlEq6aJhG4zD5qYfme1LLiODEPtP/1+Ie74ZfimLe57z0BcOtVEkVoRb X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13016025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:HE1PR0501MB2476;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0501MB2476; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;4:avxSWYf5KEJKflUXtITVVyCs+4e0HC+/oNbkEEJUFY//ndcCLEerJsCJSxpDz5x6vX7r125fwNj8pdhLn8Diytw72kzSuchxoWEwysiqXjWE/zmepnc1RM2KEjwv+UN8yyUayg48U9BsqSziE7bahUM6idH0y7YNxueEPrlHpzkFDt2H8puFyGzK12LmcqA7jCbpXmYDHF2DZLfssMF5fxpYPY7CBS+oRHntHFOROjsCzZO47HMQt8Jm3MiM3XzYk3hct+V/S1PWtF4z6QSXwsuowER5vFD3/D+b14TdmVBDoPN3u5GNlQwkjNYU6B2PdR7+Ha91LPkvWWJB/fGSjNacfKde38jHLk/6dPWNA0s3x84rCDV4r/qHGzUvnjDnaLq24MBifbndzCiS6kTnlRtSNvAPVdLMrOe7exuw3bTi6vkpqFX9d1jkTzAmJfUGfotoiR9CfAYjaXjluZZs/Q== X-Forefront-PRVS: 01128BA907 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0501MB2476;23:pv8OTghVBCoh8hzym/f6jXuQoX47XEpp672exqY?= =?us-ascii?Q?JhaUmHtiuXeg4bky3bjyEm8NRhPZXmBqImwZKWHtx6B8jSjgd/FND2ujIyag?= =?us-ascii?Q?4Qld4kk5WBcPcvO6PACvr1GDa8teW5SaUtz4CdHmFqKHNjGOljawxS2n6EOr?= =?us-ascii?Q?nI+xyj5cqBvfJfV2JawIxZ73MBtVqSDiijfv9hbslLsPcJBaAV0sg9BpKuva?= =?us-ascii?Q?dUPSFaWLbSBSNb7b0XEaCfkZTiwYpakPcRJcjKpwm8nk4CiZ3T0FZnR47XZR?= =?us-ascii?Q?UOFCYq+j55F5RoNSc1ZXW6FttZ9GSmiLA3jarNXm2Q0QpSa7C4NAdV+eCQoq?= =?us-ascii?Q?QNwl6jo3ZScWG+O3oSQwV7u/rczF6mHv8/Xh/FOOi9MHvQstgtsSVz8WRb2A?= =?us-ascii?Q?hoL6lYWnweXeKsASfbDgFllN97jkYHYkCTMRhLwJF5X4th5xWPj7BAG8YJb1?= =?us-ascii?Q?SgZa1IF+XT/rIEPKVQ7UVRxpDmmrvIQw28KCjlO0Tx7fPKTXpJ4UZccbRdo0?= =?us-ascii?Q?cjytwHzakkbPUUmgjP1EQstzYNmm3cVWbTvxA4dWzUBKtwwu0LDAUK3Qpi9R?= =?us-ascii?Q?degExrTK+XqVtg2au4lgNfs9mhS8eAAXUIcFy04pl/821EtiUjF/JP5qjvWt?= =?us-ascii?Q?s3N1RQKsDIT8GS2tqZYicqUBI2gHUfybeWOypJetjPrrHstScdiYKbFdOUUq?= =?us-ascii?Q?hxf6uOeZ/i94Daec489EFESouQP5jNqh34LV3hBiDuMo1jRHtFyeijtxPmXQ?= =?us-ascii?Q?fkriQnA1vz8VX9UMEziq4rW11Rn5jFbQM87gXA0pdYJ4jDH4S0tFcFfKoLPI?= =?us-ascii?Q?+Cr1pIAydJCUVaFs9jb5NFnZAD++2mHoKFZ/ky39rD18n9VsD3LFlNqVqDy8?= =?us-ascii?Q?vnAKly21AgI59CUQ3iKU4N6TzEWDdaHX4SpYnAiLTk+8vPisHfpVh1FZ+/6n?= =?us-ascii?Q?46iV99zP3l8GNjeyxSHECKojIuybbVKP07UZDBWJfiBX1QJuXYaUvP7UgEIR?= =?us-ascii?Q?ngaeOEdm6eRf8+0gnWZOVokTxsal0e9FkgwSKo58RqtLyBjdLrocC+fjWmdl?= =?us-ascii?Q?2FEF5VHwqWYs11vS7CfzkJ7iTnwBB2gBKk9TJlJV7G2kHv1QXGQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;6:P8HnZm+N0ReCStZ9VeerfKAhzG5NmhX7A1N81hlgF2r1Jq8W5LWRyycbGkBu5Uw0BLbZtB8cwuO7VxyUap21b0uuR0WTueSKQSt2KI6JtFFl3eeY8hieqs/gMfGMrBygAKryIDPgwrGPpX087j+2sPkQdULmGahgDAZKr/utMEoDWZLOubw4AB2rzvjqYEb2cvDwCPNcH2wek5xYO74UXNMyIw45qZabqo55w6eybXWig7bXhSstokTgmbEti83TbUYUOpOTpC7cCAhHwL2Na93AqUIbJR8qwUcad16DT/6166iJ2AxO1ZQnjzd3dQWuxHYb5U6/+kSWsWyxhGVWHkhD7u+eiqMW4k6x2EAEpTQ=;5:E8VL73m5OY8GAgt0jiiXnbj9W7kp4zazi3Ys8S8+gJPcku8auLYxPluRfY64urQRCtck6m99EWTtNpE4m8i25s3Iw3Xj8LG1FocdHVxuHoMUaJeX0OV1SlUJKBX0/3nMmwGD0CeWnehHiW/P5127RWGKYT2IIccMxQlJblol5Zg=;24:R+q0nDeaw9WDIm18jClQOeiOsbs0phYiuV36NfxifEFnBzSRXMaiDtED5Egf6bEV4Phc+8laCkgxWqURUDF8I6AMDPBTzlUXafaGS2lmbgI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;7:sg8UHwoMmzxez+JwcytSHnGvCl/DfhQ2I6Ge7AIz3GCqgdgX/f0qpcjMwiu4KeZqkeD7hgi81WzX2R9jLGwpmtyiqWnzwEjLbEwaIBkCSJcwrBCIFe7Ao4ZiSytiFt9q0MQzCkadnlNLHtQ5lZz0+0hicTIieiShW1Z5jmjz1468yLJTeZMHaYW7qt3emFXoIQgKZHtA1C/TYdgKIiN5XD/kY6HrK0Va81XjLNiN1SoKP/7RzeReVxXHkaXb8L82fT5EuzX59HsqDv3A3/8J5nMH7RwJ2jAMGPYUVodUMZHsnSVSAn80udKpsfQt0rz+H7dUhFIsz5GWtT/S3IGfR/t0CtLceRvMh1UH4ddS+hM= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2016 07:39:26.6299 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[193.47.165.134];Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2476 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3471 Lines: 96 From: Noam Camus This new header file is for NPS400 SoC (part of ARC architecture). The header file includes macros for save/restore of HW scheduling. The control of HW scheduling is acheived by writing core registers. This code was moved from arc/plat-eznps so it can be used from drivers/clocksource/, available only for CONFIG_EZNPS_MTM_EXT. Signed-off-by: Noam Camus --- arch/arc/plat-eznps/include/plat/ctop.h | 2 - include/soc/nps/mtm.h | 59 +++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 include/soc/nps/mtm.h diff --git a/arch/arc/plat-eznps/include/plat/ctop.h b/arch/arc/plat-eznps/include/plat/ctop.h index 9d6718c..ee2e32d 100644 --- a/arch/arc/plat-eznps/include/plat/ctop.h +++ b/arch/arc/plat-eznps/include/plat/ctop.h @@ -46,9 +46,7 @@ #define CTOP_AUX_UDMC (CTOP_AUX_BASE + 0x300) /* EZchip core instructions */ -#define CTOP_INST_HWSCHD_OFF_R3 0x3B6F00BF #define CTOP_INST_HWSCHD_OFF_R4 0x3C6F00BF -#define CTOP_INST_HWSCHD_RESTORE_R3 0x3E6F70C3 #define CTOP_INST_HWSCHD_RESTORE_R4 0x3E6F7103 #define CTOP_INST_SCHD_RW 0x3E6F7004 #define CTOP_INST_SCHD_RD 0x3E6F7084 diff --git a/include/soc/nps/mtm.h b/include/soc/nps/mtm.h new file mode 100644 index 0000000..d2f5e7e --- /dev/null +++ b/include/soc/nps/mtm.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2016, Mellanox Technologies. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef SOC_NPS_MTM_H +#define SOC_NPS_MTM_H + +#define CTOP_INST_HWSCHD_OFF_R3 0x3B6F00BF +#define CTOP_INST_HWSCHD_RESTORE_R3 0x3E6F70C3 + +static inline void hw_schd_save(unsigned int *flags) +{ + __asm__ __volatile__( + " .word %1\n" + " st r3,[%0]\n" + : + : "r"(flags), "i"(CTOP_INST_HWSCHD_OFF_R3) + : "r3", "memory"); +} + +static inline void hw_schd_restore(unsigned int flags) +{ + __asm__ __volatile__( + " mov r3, %0\n" + " .word %1\n" + : + : "r"(flags), "i"(CTOP_INST_HWSCHD_RESTORE_R3) + : "r3"); +} + +#endif /* SOC_NPS_MTM_H */ -- 1.7.1