Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933083AbcJWMrh (ORCPT ); Sun, 23 Oct 2016 08:47:37 -0400 Received: from mail-db5eur01on0058.outbound.protection.outlook.com ([104.47.2.58]:37664 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751963AbcJWMre (ORCPT ); Sun, 23 Oct 2016 08:47:34 -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 v2 1/3] soc: Support for NPS HW scheduling Date: Sun, 23 Oct 2016 15:12:26 +0300 Message-ID: <1477224748-25223-2-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1477224748-25223-1-git-send-email-noamca@mellanox.com> References: <1477224748-25223-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)(189002)(199003)(50986999)(76176999)(5660300001)(81156014)(33646002)(8676002)(586003)(36756003)(81166006)(8936002)(626004)(106466001)(47776003)(92566002)(4001430100002)(4326007)(2950100002)(229853001)(2906002)(77096005)(50226002)(189998001)(11100500001)(356003)(5001770100001)(5003940100001)(87936001)(107886002)(305945005)(49486002)(48376002)(50466002)(19580395003)(7846002)(86362001)(19580405001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR05MB1042;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD045;1:W3IKXxx3/eS3B3+CqBAC/ggM7WjRAmigfW2EkoQFq6vVtaqiAupkjib5pgM02y18m1g2zlDDLqcbP4J7ISc/zMW5CGkOTkkTeyRVMOwi+BE3VauyeFF7L6c5sFKIGZB0vb4d7/sSxDfPlm8GQEk3gaVUg6/ytDzaMpLyNtGLd5llo9HIFcrQp/b9Y4EG9weF46DdmPPc0+PTlnHdEh+igfHWYsge4V1jY4guobb96dzaKygqB55WGAp0dOo/6DUf1KOwdvRFxnAlmzSA54uEIMODS84n9LR5gROS2vRkE4NGFcgwZGZ3uzqHzYs2GcH1+hLRxa6Kk2+GAX0aeapoP+u1RDkvZxJ+WCu8o74wjqNAxoOW3NmUFNgkPdsb1WItLLSuuhZIxCOr+KIQyyGlVG5z9KyH0/OZR5ncrhDnwj40RjxNJteoFrxJd1pqJpU02bg+vN3Yes8f7XmJYfqQjjJdl5MortWCvCugl1HOpyyF8ur2Xu3KmKVIGIOiqm03DwSF6GQE4BK2Q8nbi1UmO3bDH7E6ZRQrDaJCJFV8/zbhCBMGVZTXd203+4gUBIkPPDaj75hOlP5A7haZRafqMg== X-MS-Office365-Filtering-Correlation-Id: 4413c419-413d-490d-1261-08d3fb3dfd94 X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1042;2:ahy+imoiQ26KdUHZ+6drtSuJWl451/LDHYv5iIQz/CG4bTxDbn/xyaCFuUw5ULzOZPI1Km0GPiBEMvguWby/zlZ1NqH55AQ4+35eYfYIuWWWsml42lPq1BRVaGRsGEvJD+yUjfWA1afng3VJI8yOSZ/+ZLPWO4ypLVCV0c0w8+flyO87aSMmj6OYEKpVxt0Evz1RaMmmzRTzFexhBUheiQ==;3:iPadvL/vsyHLVhExl4u2CJiaZzVMy+hLclsSDilFezzyCkZjduj45HLfgao37lPicN6hgD2bNpwtrMvBHwMq07GgaV0hMnYDSlMMqQ/cm7p3xBAr3EjLAxTq4CuxyPhIFlVTYu+v7E69yZjPkWDe7T3nfL3POMuR2P70PDqm3kbZZhBDu+TuZ6JtmDym7Amq/CSO5KjVduyuhjpyh/4ekjjfZsG9F5SMi2XrCUu8FadIgub96WQ6XpS7Jdl8iI62XunMoYrumZjeuhVH0nuP3kvzmZ23wnrdX+LVzrLTMLI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:AM2PR05MB1042; X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1042;25:2emCmR3VZFKS7YfIhQ7mAEnF9RzZLFK1qb2IIp5vTMGN6nOyZNqz9L271hbLfWAQtOY6b8U8cN/GsJ0yS8iIGhD5mgt4cbmzMK9c+mHAKfySGF+t6W3g18WRiurBzR7Bm7NrzIInLo/Es4B2k4hgPRUkkx0VIMrwWEKRf6n93iBZwEnn2SarfesvuB8yR7MtG6ddFrHCchFfz2yH014B+/DP3tN2FJ3XP2CCXuDXXKRiuGE3aCTBjT+PvW0K+uIrb+x70/VJC6hZSsITndasD3ylHqUMa9VoZflnsSpeEjPzgO9Rzp8mdJeDjiZtyB22K7dpx9cChJdMLDJPD+dwdTAnBexa6rq3WYNDwhYKdlM7duZBY7McZ7nsXrDOAQXOpYq+3TgNJmdvN5NyEAtQscVKK2TWxJ84hZO0TCpd9nnWq0yZE6IjtkZ3pSvd+GJhUl4Z4aoazQgDE5QB7eHF8PxpvMhYEATcmDYIxYVp03EHfSd/jVC1SsUbqSjjc9iPaIoExYsmhbQ04hprEHEUbdS16kOlLZEGwraAsjUN6CWj11HGJT9u9/HvINDSm+a+osMTcrbx259TAT2R4Pgfnis0W/VEC4AgjA660DcNhAL+f77csDmL3VVARLR9ZHoreYuveQBK3Ao0d3Hev3bjUUXw7hsyk3xWGd+EVdx+bztXxxme4MA4avAFa1ZBAe5+v43f0p42AXWyiD1oDvPoFV3HkUgZ5V6LI9HTFVGaRsfNhWAdyeRfu6/QvbPVZH7FyTEhiLCmvtVIXBP0e/C977ViJz1AhWfHPquxflIh+og= X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1042;31:vlQxZy4a89LMu4mQ5XfrFwWXf89G/3/I7Y+HUAPJNJjRnlziKjXiBhAoPOVMKx9NQG0Wjp2nl4IKqDmikyluFzAoza7hS8nEhBDiNof0vSTdlyDyyn+1z/dPxB2TZyozgIu79eYepvC6Y7TyMcPCLOikS4H34ghR69H4R1EcPKTgrCYMZXtdiFud8Ea/xd1G/cT/QU2K+98/yHejN/F/j5r8OBLWU+Cr0wmVBxMKoXLxCuRCt5+GM6F9iragSBck6msX4KL/lXXomNvaxlTp9g==;20:Ztsq3+TGKLa6rN6zpCEBDI+hgE4qGsr6ZXYWdxgfcn+yyTg4cG7ldJMgZNKcY9LZF8e9qDGZPPXTxQt7y/zr3I3ydQoDBGrELjqaCSBc+a2xei4TNVKwAVBzU/C2APSeZfKhX/44jiiGX14SkK9jD5lv1IP0uu+fCzcEcpJ0qds3glkdQfbUWDdcIeKJecgwDX8gmw7JB0gzltsxutDHrY07l15TQJPz3jetjdv1A+uR11aDwv/oCMNo5MXD6kso+L2Tw7inKHAJEAHNorSgFrlelrc31apdZIW+bxVhxGq5jFsPjbE2+tcvq/PTahA4l7s7SZAxyk/3yYcpXd3HCqX5vLPKfXWgXBk+JNMKeGO06oyMgr0SJwI7gDmYHPtn0qDj08N2BpfOUEd6Up94iMQIs5nKHt7HJQiPI4J9HC2KlwFD4WGqcxw0WT1Ipws9+ZhVlIGdHnpyaAqfT4UxnuIHXQjXQeDa2MYKFYJHatYoG8fz/YAykxG0psINDXNB X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(13016025)(13018025)(10201501046)(3002001)(6055026);SRVR:AM2PR05MB1042;BCL:0;PCL:0;RULEID:;SRVR:AM2PR05MB1042; X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1042;4:MU1Z9MxtQmge2VEEdyS7NpD8Q/sXUdlicOOCU0bcZAm5rVNG1R+pbTwNp/bdTvOMvHxwC/rR2FvXharKR+3wdF5kXsbd8lywbPEi9h4Hs/rw3buwZLgye0AYxAaAlR3Ns3oclC6hmZKcCei9ipfUqnoZATi1lSUPDLO8tUvk7Afv3SC7FHGU18rYWrRPpBMmqHkTEB9EBISUl+YlAGH1YXdsIf/wXJ2o+HAcpbaMerN63T4d7W3W9ouSOz+6CC37XU080ONM/9CjrfJjdYgx4Mu02j1D3VwBto61mKefF+GRNXczLC7YW78r8c39/60fI/4o0rh22WYuxrkI+EXApS1bboziXXFAfxbmxxvS6FmLaigvtm5/sUYzZ71dN41SOtu5qMX/FUi6ZY1hlH2RWWteVpY4XuIrBnhTzcoqOT939BRaElk7sx5UjeRaQCdvRm/RtApZCY5Ji23FH3eOjA== X-Forefront-PRVS: 0104247462 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM2PR05MB1042;23:UR24NPlDiWH1bh9jc/L6O1Qn+FUl5z7XeTg+FuTIe?= =?us-ascii?Q?nlMBllQuI9B4Z1bMeSB8YYeUoXoJpNOTO8ELlu/91ceug0plb1neCeGHjUIC?= =?us-ascii?Q?YNsJtVEtHgoZkLfJjmFTgz3ouTFoQQGzub/GjIU6smk0F9+g9Et4RZ1KPAIR?= =?us-ascii?Q?jwAz7+GCWCe7sY7EdEYUKVTPGOu8/TwOElwySGteUj4EyS2F3jwacYJORR9C?= =?us-ascii?Q?z9ep6kpe1eqRWOc5gPV4NCVPRG3lzL65pQD5Q67yk+K5al5iCDV2ypCvKnDD?= =?us-ascii?Q?JKQ8IPBKH4RWsI/t9EcbO/sstobNUcd16zmeTzLIen3eTyG/bosKl/Ats+mx?= =?us-ascii?Q?V36yUX9vEXhaR7oOV+vqHBjqhbIThpQft0sSitTrAm6rzqZn0sQKQ0J2rZ7Q?= =?us-ascii?Q?vkPOS6TOyoOi/zzA/r4kFhot4KaTvefxXl79GDDTOFuIwKx69PKjBdhqLpxN?= =?us-ascii?Q?WhxworSOhfGlnUFWLmdXYwfi4iemeF1aUS80MhKXL93LE0sd5hwoDwq8U8KD?= =?us-ascii?Q?aMJj4VwznSeKrKxlg0jb5a7QXyPjloTsLK6mR0M7scqNBnTV3Ayl27hrNgu1?= =?us-ascii?Q?bd4wk0/+C6BS2d1oyWKwEf90A3H9oB4E+l66qjCuK21z+DkkZtEbCMouZ/Vz?= =?us-ascii?Q?mfBGbqKIPd7ZFJpi+k805pT1nEBElxzz5bt5x9W+3LQMBRJrkPKNnfm+DAej?= =?us-ascii?Q?T30t5j9z+APfyKxnX0VhYykZLYkLv3ygqQxiWt5XMRreob/resEERrmMXAQM?= =?us-ascii?Q?Em0MqIeOfrJP1DeqmWFjVf2mJN5b0eBt23BFNTNuNc3a4ZLH3ksYCHBTSYKq?= =?us-ascii?Q?daBZ2C50mVLiCgyjQLelde2OuG6rYBeQc8A+MbMh4Z+gh95gMdi4uLgYdpMG?= =?us-ascii?Q?2BmZ4kpS8FOXA5xLQpUAzOc4o5CjkiYC5aKTpT3qvXdQb31SWbd1e8KssobX?= =?us-ascii?Q?phifuKH4DyOX2MWGaNvIiP7gUMJUTEphLEggfJbaFSe7oEcBwHnxL4opGyR2?= =?us-ascii?Q?qcqEitdjg5QzZT4Dlpo9SPgaOpyJnJiv0iILdUzz8s7U9ft6mX/XlmxWvUIs?= =?us-ascii?Q?Acq3azbAKKInccMmVBftJb3S3oZJ8ZUhrtgYNtr1+JikDmTpg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1042;6:G9hWvL16GB3Egd0gHPKRQ4sNXO6scle0vFLhj2MTBFNqHsujPil+lRXA47bGENhpwCKb8iDnlPsss6Q/1a2abHSpJZI8obTt1j5Q934hxEinvrI5VkzBahFGaaTwkAlGSmP7FWclZyGgbYYxo+YPZPe/iws/HlcYQcW2EZGD5tBWL6WM+PJ/mKadnLzsnENGDBdQrQ18h39dfsyce2p/LttFa/l+k6k8l1GTvkQW+3ZKPEIB9aJIXB+KfNFcpLaL0GVVTU1y714fwQo/LGE8TqzvQJBYBSJoxz6td9oYi5Jjem/1aUfydRuskiMgRcQpEk9eU1k4nygwBPg0nxeruWo3xHCWsrfzCf3OWt5yTMc=;5:RfsFGGR24FF+ZGpwtYozJNa9JH9Ks1rLyfAZjprLzbnqsoHihZPcEmsFzixzVgnFgNtvhw7QgIOzRFjX3Yfvz2bczbaXH0eLzLhExxcsH79/TxKGnSsZaiDt97XPuCV/uOqkkCjM9eMo8a+l4uqoDg==;24:rV3uWfgZK/UcozU2Ulyd+CFBppZH9Elj/NRqEnTty2tmXYEqDVyrM55et1UpN9ZZG96RV1+OomUO0hmlpSZM+fiXvHgcimTpuC8brLaUHc0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM2PR05MB1042;7:e+C/JLmbkxqWX+pacgeT1pQFpcR5vlX9ObJ6vxTVgp378LDBQ4/rvR+0E2cWuAMc6oKhBCIJz8hhMfXSxt+Nss0NP1YP3i5Mxyatxbc+vkx9PBbB+3c0qI5Dwu/6n6iUGIrQFIR9+UBVuNQKlL2/67vhrPzw0te9QZeq6VRosU49O+8WVvUEnQx/hL8JnmxuenlNwwQcOb/959Eg/KZq5yBjIKAdaqDXmRm6girrhrmfSs064cUSBlOhYWjGyH5YOq4QnVm8cs6A/rKjyi0zZ71tOhTF3xIN4iOfWuAFdKOmiwFwwl+bB+xAmcTXFUBgtQAkXrUj1ZULo+WyaGQ9K7EFmP+3fLGrqh4blJE61w8= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2016 12:13:25.3416 (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: AM2PR05MB1042 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