From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751914AbcKFSBw (ORCPT ); Sun, 6 Nov 2016 13:01:52 -0500 Received: from mail-db5eur01on0088.outbound.protection.outlook.com ([104.47.2.88]:20648 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751496AbcKFSBt (ORCPT ); Sun, 6 Nov 2016 13:01:49 -0500 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; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:1601;Count:21 From: Noam Camus To: , , CC: , , , Noam Camus Subject: [PATCH v4 1/3] soc: Support for NPS HW scheduling Date: Sun, 6 Nov 2016 19:44:56 +0200 Message-ID: <1478454298-381-2-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1478454298-381-1-git-send-email-noamca@mellanox.com> References: <1478454298-381-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-IncomingHeaderCount: 21 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)(189002)(199003)(86362001)(2950100002)(19580395003)(50226002)(7846002)(229853001)(49486002)(5660300001)(47776003)(6666003)(19580405001)(626004)(5001770100001)(50986999)(76176999)(50466002)(5003940100001)(107886002)(36756003)(87936001)(189998001)(11100500001)(92566002)(106466001)(8936002)(356003)(4001430100002)(4326007)(2906002)(33646002)(586003)(8676002)(81166006)(77096005)(81156014)(48376002)(305945005);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0501MB2476;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD046;1:4+aidmSV1H0YqgyejUPbzEzCLEBrunJthHkABegs6f9QptYFHvbpeLXxYxljBP6TZIXSlgA+l32I1dFJ+nsWFofEuI7D9aW3Z94AYT1RjVRdyA4tRaOSIQZPE3jZNMsho6Qm98NZyHBZFT5ydrNnTkRzyyNXefTpDcWhvhjk8K2lZn0hAX4E+D+nWgzn4/+zA/X7Jcqmt8HitRDbUJ3konWgQNX2PveEI34yoCDoAHxTpdAmjWYtyXdajL2+93B/o6pDB6WG/qQv4U45Cw3PTxm+IhXB8UBp1zI+l5Z+5O/rkCnkNSDWAytd6/Ec4GMU9iWCEoa58+WRziRm5otnzSPpwWw502P9Dk4Zaxv04YsObxXTN4mtUZKo6Nw5jD5bO2A1QpAhHltBj7PTw71SEY1jnw9P+8/wmOgDHuCowg/jKT2Iy0Ff3OR2NlRrxNQ400sVFgnsyCt5uuawaJeDveX+KdFv/zUik1MLZt0Nd9iJYJk5cOwiVqKWz3laMoglo9EM71ied9TytspLuQQUikDb+HKPafWqg9W7TOXJGfTXovZr/fUyLqI3Y2vmoRkb3ab5e0Uakd/zKdhmJW1rJ7r8J0CLruq2thejBc7ozV0= X-MS-Office365-Filtering-Correlation-Id: d36d88a7-bdcc-4493-5169-08d4066ccab7 X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;2:xkox5VX7/VtJD12qedItQymaSo0w+kkKLg1XU8oCIJTi8hrdWZAepYUzX6h1H9Y/+twqJxmnofEaPg8CrN2IgZSeq5AvOhu5/21CAtL85YR/L447IsSCRrlr/aCFBMNOA34+Ddp3G+yciL5SIuPHq0bUSQWygGWoxa7/vIfVidjWNouPQPf64uk1W92O9/PTylCfchVhbFIg0AmX+9Jbhw==;3:XjbncHO/MFcPXyaDQEIZX8jGvhNzcUotYSLVFSTGi8uhE8syJM9Msh/+rx7+EffcHDQdA5y+HCGEMtt8+GzX1lmVUC/lePwn2RXHXSx+ntay8xzEuIW+fs9zUXqco65Y4+5a62Sr5fdZPuFQW6bXnT9WRzSJQg6HUlbPnCs48vtQX6NIzVTBpplnH8+LxVGFYSAFjF8184c7YaD0t16fE/4gLwKRqAJCPVRW+ppNtGqdWLL+h87uV/ZMNDyjy6Woy5LZ2JEch3Z79BGnspWMu6P3tiFWBSpIvapLzSrKO/s= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:HE1PR0501MB2476; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;25:iSw8HyVueKFgTw8mQpgCh3ard9/lhwOeNcv+xnVpMysLKDqtFJDdi7zqT7TerGz4OiF7476EPWTGTJ2g/ZikmRA4ne1koyExzzOtrAvuz82slu0yRul+51ewB4mgX4JJvvF+pWcMn04YDKmnwifyB89PPYzlVCzt6xGflT17m01WSK14lI0vUjE9Tfsmohy+EWw42OLGWcmBUw1gUlJE+++yiNDPjg0bGRTXcKwdGQcR499GrD+4XRozNx2D7aArmqT4bctY4kjBd0Hg8ZT+OFBga6F89LZYWj5GpWzF2WLf/3zvx0IpGaYuFy+cwQjsHaKgpLQWVRYDCs1FrWJoDljhpvzmpwUxCQqLj5oFUeC0Qu89glFRvxyi0OklXWUxh3CStR4BBv2ZjgYVK6BMqvs2Trf8W26iAg2wsPA9Jkn/mwNoAuwriaG3HOHc6YMmuMAOxUAtZibythl0wolIAKnZJsbLyhQq8GIXrJm8w/3M+4XirBtkiFTWnit34huSZzpd4bVb9xPyMd0FTrfDEalt6jdFSRxg0fvH2VZ5a46uBIiu+ztNmHv9L6iJXbwx7QEQh+W3Ab9cFYUPiqX/hNM7UVQBpsiwT7XNFSFM06xeNTyqIvAO3NZsC+YueIS7y+sNR5EUbEsSWqTznJcX2/VcSDXqt/iYGjPSC2PFhPI7YgREGna6FolhqRnqOIP5K4aWY99eAYSyul/jE4xmEoc2jTlDEL2P9+jDSHB+crflAbU2cNocT0B2KwMK523A1cbdRTI7wgWAI7J7xucrlw== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;31:iKDx5Q9gye+mSnpuiIdsPlWjLkCvB3PK2RayhrI91p4p4Ndw0d74/FF8jAL7KKUBX9H/p+Gm15MBFRVEGyD1yDeRL5tUG4g4Zu094D0fYpaPv+P2z11DVSZ6OQV0PNeP/a+W1HBwYBp9iLoqdJZItjrqJg+ARlpgvFI6IDAEr9eTh9wGLERdh+NmU0zu6FVAjs48I6uXWw1A1vEn9mKB0cuFPbQ+qW7R9D2qjUmoIunCNWGE2rM1J5mVlLbdW4xm;20:C7tkzyKHBxf+hVN5VvT50BQyvE+Sqy0ak3vaiq3CDKKX5r5d0Fg27DSe7jzq+jOT3Ery2EmHsd0/vAQ2Wq3ipB9L8eingHsg6rqYsKvTETBSdlN5yGMHfWwrJRx9oX6ssDHVR5JMLz2rGMzUzqZwOf3P1OkMvZGkcv9opgy67g6sT/LCGu/4YsuReZMsj6uX8YcJMX5Jue3xMOKcXUrUm2Wl1hJ7pZGttHbZ+I2eibvIZOwlqbdZxJFKmKdflvXm89ZUEmnl4g6v/WLNY0gm6mJHNbi4jYB44Daftpmp22t9rwqqcHvp/9mNod9tQozVOsrS2jh5+KNf5uz2vIk1N2hWSbtR0aG+FutCy7+DyBSLxT2/xYn6TTHjUKHad8P3Nt0JOKbLNqVc+ksspgB9EiZ8s+Nso3Tve2UkU1t2vVFmkYvZEwhaRELM84QPmD3zx2gzoMvVZUohokFkNnas71HgkZMlBA3IaiauU2Ra+9wO1XbyVrblYr0SBjV9n1yc X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13018025)(13016025)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:HE1PR0501MB2476;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0501MB2476; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;4:/xN5uNmbIgZmb/21HZp2luT/lhWNrtiI49lOX07mBmVFeHOEx9NXdgIFnAoHyUNC145QECPYcAOwHhv6Wwlf3Fgs0QvWfXcwhStB69huvV8K4a+cOX0uQ0Hpvh0I3CzSK3RbczRWExegzFY3TBN6soRnWpIUr8Sc1DcwYE+6JzAiFnwuzay566xl9TbTortbuuhZ3DqD0ijUiB/I+c/5AYqLxUsWPIa+cr+9YjUfsh7//6b0HakhpRr4lstt2XqHjE+BHCfs2OnEN9f8tHu2v23dn12H3K+D1yBZRI2LnGPEtim4zgGy4PgRtqZN+QvhGBJItjPGiLkASFFW+4QGUX3+xuFYnvqCqnYvPxfJdWdB2ce2HGYhj5QXad1lMko+UM0jiR8Kh5EIc7JoxQiGnqfAzDd+LzwtWwX2GpMOmOf/CHVUNtRqHq9f1TgYQ/NIEciVdkANPdSAl/AvGsZBKg== X-Forefront-PRVS: 0118CD8765 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0501MB2476;23:zzY+Kq2HvAEfpgdYejslGoCXgn4k8f8DHSXzTns?= =?us-ascii?Q?jUyVXtnwvJZUPVWpnbMbdKZuB9uwENWTb2QvSK4kJS3PvZDsnqrRmTuiKLa8?= =?us-ascii?Q?m13wSDxdkXdSfxreZA91pRy2HrxEFJM/JyrUqZjvt5wC/wkG5kO/wjXi9qcd?= =?us-ascii?Q?tBUAd348+ooFRCHQsv69iEdO4sTtQj9d+KAZMvj8blAtfGi4IcD77K9Fsm5p?= =?us-ascii?Q?77DIWU3dteReLD71us/xQwM595x2yTYcpc6+GJS6wW5d7Sb9ernl9pUlb8+K?= =?us-ascii?Q?1khHaHdqFAXvuK1cZ7m22ClA77RuDVpABjaAWap6YCcBaxlMLWg8/Wmj39g3?= =?us-ascii?Q?mT9jF3TJ7SWiao+TkXSb0b3bDsPvvD/tpB07Vn59TaVoLN0EeFJ2MVWnEme6?= =?us-ascii?Q?yS/2JZ/x83vxWRCfdNk8UbwR9N+WfrgPPfHqdGTJ11Ktz3AXIoqNKbrvChq8?= =?us-ascii?Q?u4qMNubr/d15ArLCH5oTI1aSLHldJ3HTl10JBA4ffaRdF8/pgKyhLZ1XxPaZ?= =?us-ascii?Q?d8c/5+WnuCKjEqHmUoSz54cZ4HDhRFnNc9A0kEHMBSv8EaM1eq8x8sXHXe93?= =?us-ascii?Q?LAiIiIHxqZM4IO88yi+qQmObHdVHzz1H4P4kQiitAWFCbLA+AdnnWdStPVVe?= =?us-ascii?Q?YPV3b/mfCu9W7RbZFfQI1bRQ0BknS0tqfdvb3vi+CCo0oJjREM/NDfavrSos?= =?us-ascii?Q?Rk1sje9gmfjA9V/12D82xBi5jUTej/IIT4pnUkmfLodSJnmPgjibLrNmVwDT?= =?us-ascii?Q?4vylh9SlHgV1TnCJRcnH/pgtEGXlZMSp9QYXfXgrmlthPSP6u+io1IjVPmb5?= =?us-ascii?Q?x5CqxNtEHv6jJO1D6hSMqHi7YVl5E16KCSDhP+mgvh3PwHN2mwFmXZv1JiAB?= =?us-ascii?Q?GxfmCq4LwsKzdpd09NDCsUWG7Yp4BIH7ONTQc0poj07VWNsIwm16u+URTI9G?= =?us-ascii?Q?+qWomFj7UWPlu3OAotfv2S2NduJjmxQqYSq/pUlHCUjz+bCfROejTLrqIEvt?= =?us-ascii?Q?C0iOIpAl1htjV51k5aAgb95kXhBJYqDdOMzfsUwLludHKzH4O/zB/vBVI3Op?= =?us-ascii?Q?HZ8pWw3wMAlbQb6MWrp49uEHvvxyl9hmEHGuwptxMCGSC3nkwGw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;6:y9kS29jVb0ckq7KOHRUDY8YqFWBDAuj08WN+Rqj+Wp6sNGmHO4h8lzzA6NOVUk+Ze7MUoWo83pdme3gpAGdNw7SCzvs0n/ACuFo3J2rlitJnrHBQDyeilF5YFu0kHhqz7u6U/QBOV/xLQnGIeCHL0i5MtXlG7NKVl54XyTI+CMyZAtfbS1jNrgIfGEgs212TsDTkqR4sKCUOBoaJGFGI4O7Ree4MiSeAPZHD0N1821xhF9bfnZ9ly1eSULaTVXN627c5NBLUjEqcyVBdTOfRC18T6qEmuXM9rhfBvVbyFKckudhhEaY41qTNSQ1F9yRtU1hEjnn9zFEGXHnxyHA7S+aqa4nfTiJL4dfOd88BlDY=;5:LLn1pCLQk2GI6kQHuNyoE9LkzJL++bU6BF8CctjHhVbAR3/XCQD5ole7kBOftYFbSahH2JycD06zs1PjaU1OHg+NxeMGxgOAu9pn+5WPVDiLcK1+22WKZqwDlNIzH7NUwCsc+/ePYAEecoLEUQuD0A==;24:PNyTj5aKCqtXvEdDzehDd/Tnkz01rg1UY31Ty0NxRAdWkMdcbDpM9qfOarVnn3Yna4wtZ51t0SX8tcOasX2WjABRGmPA/RoPK3ttQzDEAGs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0501MB2476;7:wUzgwMNuHbcqVJzlPz6iQfiL6ZC5zi5gt5dHJQ0tr6jixHg//lhbOVZcF1zWBFKNXCP3tjJdYOd7vQbYrQ2ZFs7EljbxmlPqqs47ADiZW21q+U8lGlUUdtqSZACvQ7A4k+fbw1Ra6Fvc4wixR8uede6uFi6Y4/bJCs++alik4fFf7HPWmMLIdjg0/SRaxKEBw3Qu5ZBaEqF4RtZ8yo1Dt7UXZIwIBjAFh/EQDEFKXOOwDvODdyyquwB9mugTfg6+8hyaZtbKImz1IfBFJrCSnatoV2xwAeI0FxamDxVHB4mnr3QJfR2ahX6B77khRTurNTDB/IK/L1Q9LFOjm+0SRvXXPulg2KF/W5QypJ3tcp0= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2016 17:46:09.1300 (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 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 achieved 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