Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753493AbcKNJzv (ORCPT ); Mon, 14 Nov 2016 04:55:51 -0500 Received: from mail-db5eur01on0075.outbound.protection.outlook.com ([104.47.2.75]:25376 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752739AbcKNJzp (ORCPT ); Mon, 14 Nov 2016 04:55:45 -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:1612;Count:21 From: Noam Camus To: , , CC: , , , Noam Camus Subject: [PATCH v6 1/3] soc: Support for NPS HW scheduling Date: Mon, 14 Nov 2016 11:40:45 +0200 Message-ID: <1479116447-29483-2-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1479116447-29483-1-git-send-email-noamca@mellanox.com> References: <1479116447-29483-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)(336003)(199003)(189002)(4326007)(2906002)(586003)(81166006)(92566002)(50226002)(6666003)(4001430100002)(87936001)(107886002)(49486002)(2950100002)(189998001)(8936002)(77096005)(81156014)(33646002)(36756003)(5003940100001)(47776003)(50466002)(5660300001)(86362001)(48376002)(626004)(8676002)(305945005)(7846002)(76176999)(50986999)(5001770100001)(356003)(106466001);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR05MB1226;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD018;1:4TGSxw/ll70d+M4xOUkJpgeZA9SlNrtGKueRCTPYjaXchDtI/hD0zphIHomKn1QpU5koR0r/2Pklt1lfLPgY3UPL2AWV3+BEogz5JPmfzmAKANlRwSRNIzeuj9rpIFDxwN0Qlrsql6G7gYHDhKm2/0HGrxdsqAPT8IdUnucVCWe4CCg1CjyXvw3cYVcwAgf84zMUnIRysKkUdC4ecIBoVIJvQTCE4tUV4qSn5/c9bCxs+y76tBeukLmrxO72QJvtKbmgF9CaLJZ3Pzck6D6dDtzKzHaUQywXkG08UitLbAL9ytR7GLcblskxiBxv3u5TjsinZ3ChwzTkaILW5W6641DWX3WFo+hWYxbyuGsVXmDrV9xnszQsVsalq9OfLN/XVEB30IjBpGL7itj9PfwQTixUdr+QwgJBAAJUhLgZOC5DjfteHMUbxI5Vc5T8N7Pwc6EEW//n8wJLgLsCisHu+FVsMyDw3sc6FYV2lZDeanzwxzptelM+czDe6ZWdvpqOXb6GI0gv+2cVWp2aataM+LHsqntGF//GXAUfXMoCbgxsYhSgKdZ7hciQEPhOmqm/0B7Lix9N2iKp8+oVcTTwOQ== X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1226;2:lFjipqxtRzOi8SZ+A2owCjdzaGlMn3Ae/6qchcSJ8p7pxXIevZkrA+4U2dAWFmFkiqgh70W8Syz451/RHcido8Nkj3WO+0nAvvlUg1C1+Nku3Nj+jiWFJlH/0XfmZ7qkbndTuGDXCOeAq0MJs195XGMq+lCfL459ebejVpvnHGw=;3:GDuDTIbl1S4a1kvUn8GBqm431LqxYXnyQHRYHaCPNAXfrwMLiE7ux7y325lDr0S/zj/kOO+xcJW1ifhIsZ5xv1AEeeORA6Rz3EBSzDZyc8pRiwRNwZ/K+r4ltrOC/e8M0OKYIpr5afdhD1hcgmx9SmlSOtSmgSi0uuRFvqa+oc7BQdXkyRAh6s3j7308q30OT6wN5PGQTKXweL8rgyW/+H5RfzWVvzgx3WmWoIOAa6MFUpTdtHgPeG4062ppIilVZMTXg+5kTa98BIE81LJ16IUxmVKXyvLs1iVt26xqNFg=;25:QGLMXF3JU3PTSRUkPt6Q9ZUnOi7ruoDYzOz3rZxT56Eh/Scpg1mXhuediDW3BSkFar2ziS542yIhNHWPFXQpqwjU5GtoebJXD0kRzNOkQPn/FGdjPRI2NZ/V8lwkrhRJANn1eCtNs0FuSvaDsP0hNCUTVcPBG0dRx4uU6uJS9FM6OeWPtMCwr/VArqXLNR2eYA1xCO2xuClrgS6J1AORrzI+4vWEW0LCA04lQRDMDWMXmUjrbM2Rlrqa4MXWWbM4kytUpv4BOfjYeuaIvAhygcBlLHC9ZIR9amd7Rk+CM7REnmv4arHH3Vo3h4dli5uDLAswEBK7P9ouDU29d2dv/zwT6ry1MS9phZCK0sbB6+uLQSCnWMbX6/J3aOqh8FIOjq1StNdsyojTsYXvFcGLFVxXdWFo4e14HbrYmhDDfhMfYcUDLixB46C5bnFt149L X-MS-Office365-Filtering-Correlation-Id: 571f9caf-d306-4284-a38e-08d40c7259e9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:HE1PR05MB1226; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1226;31:UDUZckh0NcYa1N008ySs5Lp1EXDV/KP/RNnYCwpQ+a0HCmSx9nm5JaCtvde/77OLxXxjImMFEYxsYlMRaX6LSaFBiv3SOQ9xDMovoB+C3OkJytLr6c3yQgkr9vmtM9mEI98TmjOsZpHYIcCXoQ2hJvxgdVIARAGmtl5NnOtqISbYQSoOX+aKSpYQ+YOSjXq+PwUIhpuvYcRZqqXu3jwYW5gptlGw+BPt1yuMgnMYIE7HZ6pT/M466gXQdshWLnmU63xl1HGyPFI6jEZgBchGYA==;20:oZ6O/7C10BmQp+6YLpGOqEXxHz3jFFS4xnyHWo2ByXFLSDAkVFqCZU9zDitJpe+IaBSaO/zSxbK7SmS85zhGwWKVoE+QlbuYreV+tOw1MrhokZJogbG/ai8REt66/bNIfqYYRM4F0fMc30ampJp/2jV0OBgo+KDbxOFB5XnxkAJE4TIU7VVft3CTQlx2jaI2d0EtP/Um2GR1+rsT+I6k4ARQlrlyiRV1CpOOrSPs3j3T9cjLj+GSABvonaAnOQVKolRy8WuhC0zaFyC0GfV+GFlCiDA+SI5iVrmgoGi3hf75nOzgBYNhovCNKLIsRNhhhr2zMkwx4FoDkV6YFLJxTfup3sauz0IUNKZQPhzyHyN44ztf2CBB7oejxO2/+SvPeQgSyTlMyC7yNcOzScM2JDSRlmzMZ1GPqJWkMNftLZZWz51IwVeE85sRNesXZtH/ah/qNMaD6BKP1tDO1wP73VjdDzdzrWUMHH/BtkdjuPxe6iCCaO/hg1lajGtujwlu X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6060326)(601004)(2401047)(8121501046)(5005006)(13018025)(13016025)(3002001)(10201501046)(6055026)(6061321);SRVR:HE1PR05MB1226;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1226; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1226;4:TNEYCORGSCXAooVrPpuF01HGTzsAtmaEBRszWny4VGxHCECfVAOP5fljjmOfPHdoyqASmQZuVeC4roKeHOrDS1FUPBaLEFn4VBthdTsolW9wCJct+xyjVyN+3ZPf75r3K7KpO+DSlEeFDrdoBdwbHHoyqrzTXdsw/TpNeREk4MV2pmTFGSZutUMQa+/hkEE+raJHv6DpqKumN5iItJVleIXJRUguihZDaxxn0I/3DtVgAdC8sd+fraBeHCdlpkyfP+eIZSvVdBCtN92y0sKlOtdiRVCgK/l4tC612LVta4U+yakQmYIvISnpMsaLUzCzFuC1SOavBeNHjwYAq3p94qPRzXsBFnnOgRANQN4TX7Wk5YtSO/1RbODkW2gtZLTwcQWcXnw44xHPEJiH/+EGdMeV85dglnfmLtjkIrvxbzBIXMJBNzs6k4oF4bvEkBN1HyH/PRPs+cCh9CTgeJU4dAy/5A/MjzHX4Va5aZtNnjU= X-Forefront-PRVS: 0126A32F74 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR05MB1226;23:8BtrnjKf2UD1CDrXelSsGZbQj5qEiONL4tXtRqAAy?= =?us-ascii?Q?IjZW8zWUM2NHTMk0j4aLkKDJZMui5uXUsQqg9YrLLjk1acnCWh6PDrImcOh3?= =?us-ascii?Q?c0hylJzMQFL4aBcXg/oX+0x4RSU66+nfXXccipFtGaGkrWM8v7ax2r3gYdmi?= =?us-ascii?Q?aTyYRGa8QwsdCCYnF37XEdjnGOUD3y6k9lG6nCnkEo7BFtqu8mDO/IozbPHv?= =?us-ascii?Q?BCILxivVwYPuDpR0dRio7ZWscHGdGqO4rLeHWfzGdEO7OczK7m5aTWG5Mvyn?= =?us-ascii?Q?qfz/jbU79aF/oS2rr1FsUWGyRV7xwmH+3YHL8fFW6MM9Ul3UHNVkOfXKQzLG?= =?us-ascii?Q?5Cn7qAjR4pHoNDMcq9NnTSNaP+31ANxBUpd6v0jGbG3TbEBIDeNpgFI2FHgV?= =?us-ascii?Q?PFsVze7lJ/QfVXUGE8aBZnNyfWonvgshi0//neFehzuTWorFHcztstB9HjCl?= =?us-ascii?Q?t/cWmZaqw3bbhkpWbuJ3ECPFrCMfX+sDqW0vqaGKTaIByeODitZQ23wK6r0s?= =?us-ascii?Q?Nih+0IjOtUvHZQnTRwkJHx0a3kANb+oiTM0QP12jl98tRtjl8fIetZwDk6bA?= =?us-ascii?Q?ONlKGVj+1nYE2b2EjKfJZbSVXEbmKYEbK03AHulffFj3ZWu8uYhxC3QmmJwS?= =?us-ascii?Q?Sg81c2lahEiudNOdGcSkbUevKKHlSyg39rTHRLtv1xRqHBmLLPoJY4dorA1M?= =?us-ascii?Q?O0vm6zo2CsE8jAg3cZKszTwUrXVphM6vBHvInCCqGJcxwRZWIOAd/FCSJMRz?= =?us-ascii?Q?2fNG8+lfADoA6lOAlsdVUC22Cc2xN+oeYpCHM3f1hXNrRARIh7iqrGHOXXtU?= =?us-ascii?Q?La4Gr+goUu+QMHQVjXSVeDmTXvQf64blcK/3Z26/R7DQPdoAioPliEgLWO7T?= =?us-ascii?Q?Zb04vTxT05ptJMlrKCxkMS6KDUKZf4n5gI7HfXEMkKPnsRkrgzR3O93b2WpX?= =?us-ascii?Q?6YBMVgLO2j8tHNbLP/K4m0HI1p0DY9Z4kOxjuTd9P/tfOpxDm6r5w4PpNUWH?= =?us-ascii?Q?M50BvunxUHibrQMGAumy0V3?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1226;6:ZhGdEpe5yfe0MoWtqIM48FKAMOX3kVnUX2wMYVAflOdTT4+m0T0Bv5lWRmSNrXoL5VMGWX6hWD3qWBzUIfpp28bkYaRq8oY/YlZZ4XkEf6GdQfAWgXh9YXxyA880ubt1DxTLya/v70/sz8MGSZj8fqhz2NY1RsqCQEIL5h4uH+PFulCBwUb4CC7CVlQby6bMiOkFnQiL7q75Sj9ihUMKW6WpWw6KhkqjAyvSOD+/FfzTzp0qQqKAmnzIJKn5f+3Xf704SANtqkEx5JJxkTmzcFsP58w1XWuEh8WTCsnvNYllc//271DZoSnlqQf5dF9PYjFkNu0B0o6mjdOVHxZzH0tCRUps7soHdHlyzHmkT9e4ODtFx3aRFEkZrFJ+Eomb;5:i+zimd/J8LSM6y5JXtxtJwf+DruL47T4Jt0zOsAzfiJz7bP7Z7DY8rBysHpm2Rko9vogoba/MEEHKCw1r7OgOW4HSgsmCA0LiLransPBni4RTXqXD6xSEV1L35gbwWYWI8rMk3jU9BkLpucN8Onw4w==;24:aqMaqjfECc91cDJ088HMM6rSsV91HLiSEvYjns36YBvmuEuYgopmTSKmf2fFMC+mYPrs+3UGNJ8pgXR8DQKT8xMioFt9y8vEb74t/Ke6j9w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1226;7:GGm+J8Xt26cmhd5y2aRzzDnbi/kXg/RS7NgCbjAzMScwLe2zkas/6C4I6DA+5IbvhJztAgeQ1VfBTmBNnheqnmpUxkXuvgPEnYP8dLBNGu+mUtWdBlzKGvzNmbCyqd5XgFzLdvWj0aep375hvzkuOGBH1rBXBeZ1snpFKaiWPflLeT2hb9XieqI5Mf1EL7W+RkpxPR4UAZ9CWBDfdjejMkx+pbYggDo7Een4ZWVd+FM9W1kOcnOORuhHbxyWnEouqeqvsCsrI0af7frb9Dia4aYRHacTEL2jxkHfD8JjNd1fy9VVwgrKi1TV9xvtdQ5UH3ItIn4PfN0zIGAfbWjVRE6/R/d3TUTOcuys+faMfUA= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2016 09:41:03.7407 (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: HE1PR05MB1226 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 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