Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754663AbbL0N0u (ORCPT ); Sun, 27 Dec 2015 08:26:50 -0500 Received: from mail-db3on0066.outbound.protection.outlook.com ([157.55.234.66]:27328 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754360AbbL0N0r (ORCPT ); Sun, 27 Dec 2015 08:26:47 -0500 Authentication-Results: spf=fail (sender IP is 212.179.42.66) smtp.mailfrom=ezchip.com; linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=ezchip.com; From: Noam Camus To: CC: , , , , Noam Camus Subject: [PATCH v5 02/20] soc: Support for EZchip SoC Date: Sun, 27 Dec 2015 15:23:21 +0200 Message-ID: <1451222619-3610-3-git-send-email-noamc@ezchip.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1451222619-3610-1-git-send-email-noamc@ezchip.com> References: <1451222619-3610-1-git-send-email-noamc@ezchip.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22026.007 X-TM-AS-Result: No--15.658800-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD040;1:0sWe9nw5KtrtNh87AovG9tZ2R/axlrB10Vri5qQ3IGcPncpNfqQCR39fzOlTd15cTdTNaQy8yUYs+3BBj8spaLhpRKyMjtOeH5S3Ga7ZElfVZBCEysxAaWnoknLPYLGA5TFOnkIveXy4uT/4Zefc0AOtB3EWMXMrfubdJaqv0Rmox/A9ZTx6eB/+WnBdZcOAqJSnzh6SUcOJH4b5fH9UcEupsRikTDXsB0UTHCTIcnRiRJLebXJJAkjrqWIBWxM/lL2/w3/hBQ5/MM4mrk6RHTThez26RLrS98UWhhIgA8TblAk0W7+ds3bNAUDtvnJMzoTbUKRr8PT4XPV7uHe1YUMY1vjEJ9Kv19z9isDcvhEoT6HA6RsMQRmjLPCp9HLd99qhrroMd39PtdzXZMxg9WZVoKn+Ijkp4ynl6uj3gYk= X-Forefront-Antispam-Report: CIP:212.179.42.66;CTRY:IL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(50986999)(50466002)(110136002)(5008740100001)(6806005)(76176999)(4001430100002)(36756003)(86362001)(48376002)(106466001)(189998001)(104016004)(49486002)(2950100001)(77096005)(2351001)(50226001)(87936001)(107886002)(85426001)(47776003)(229853001)(5001970100001)(92566002)(5003940100001)(105606002)(586003)(1220700001)(1096002)(33646002)(11100500001)(19580395003)(19580405001)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR02MB1441;H:ezex10.ezchip.com;FPR:;SPF:Fail;PTR:ezmail.ezchip.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM4PR02MB1441;2:1Rw/8xvL7i+HkW25hNpHqUVtvQzne4xOsnCRZBaCMpOjZ4yuhDPVgtlzy5G9nV2rx/V0dwCZKTVD8h2qQnFwZyqZiqPp1tHrvg/zWKm77A5lD4yI1gC6l7OVSPnnc0pzYHem7GJKajyNxvFOy4B+hQ==;3:HLrteyIoac6XpBZ+rDJ3mYNnNGrF58GRZccoCqBkYkZ14uMzJvIgsmwLV4OjMyV3cokv2n72kGy10r4neslKkxi7N40xkhQm9kEIHx8VvPGuLQr4bhOCTbYrvyvW3UT2SZFINTbfgMGBiJSSnsdU22bbVGSV+k6Q3xi2biMK57nalvBKjPKWq50g1zeCCDO4sWXBleB/q6zTwOLwdBlWcu5/JRxog2N2Jd3HsVbtSWo=;25:ptDCz28DGCtgscM6G6f5Jm2eYjd1xDl4WeVNYvUlClYn240PMsYnc3JXKQVJ5gpfQXfIgCXnzY4ujC6bnBPbvft/tIbXtX3n0uUujo/hdpe+5Yq/Nj7aTW2lc1DWxACCbTkCRPU4knPywNPg2IsJZmcZgios9Qi5Y8SPE5NohigwAzoo6NTgyvt2BjBuU+nF/OpSK8Tfi4zOGIPf4B0Zp7QwGh/KMggaisOJsCInyakLFQufTzaquwwludzRrvO5V0UkcFtLtxjNmGm5dDa/NA==;20:O60NtVsQ9CejTM+Axjn57u07dguUM4EzQnv6Ai583Z3+JKFNe1p/uCEabAmjIXqbx1Xq8dQqS8nTV9D4Xnd0mv0Ub55QYrOD6ADWOx8kax7TosPP1kOJdMLj+44Txb086SFjhDUR/PwGICycAQllwnTCk8PoEgbnFIXdF6Sh8/M= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM4PR02MB1441; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(121898900299872); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001);SRVR:AM4PR02MB1441;BCL:0;PCL:0;RULEID:;SRVR:AM4PR02MB1441; X-Microsoft-Exchange-Diagnostics: 1;AM4PR02MB1441;4:NyQ+VV6n7qhRmwJqO1fyOqgqihIqt+eA2KAouNi7hl8t2sT3GGtWByNiKb1m+WHZiVToJm/d02jCjRA7Kd4/EDoCkhlShUOiuXbo5TixKyC9e0lPos8lpfRnws/La9S7l/+bQxF/Ga0q/B/f71VmLHqKSpVPJwalPV67WRAKF7uIy50tt6N72RPC/gqN90Meut/ThnuYkUYCpgjspm6h3SOE5GbaiI9ppJlz0hlrx/eIhwetg5paCKFaGK8PLQ3/19NMmNGzy/0i1j5HZM9oV7/iQr9Z9etVOwEoTd5VaQKEOvDKrQBDmW1CLJfo34ddRH7aDGt9k0XPXhr9CfCYn0JX1gt5jR1SN96SwqnPRye2OfO07SFic0QkrjROYVJ9e6l2udoYC9JRKwAkyeAfTZlJc7mOecTcQdHyuy8HIMA2tuoaXHi38qx+hJpAw7vs X-Forefront-PRVS: 0803A0241F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM4PR02MB1441;23:dcpCPIjKOqM1QTQ2MI5U/jvqPF8C7bktZHcZsRt4F?= =?us-ascii?Q?bCd3AfLbSLr8t+R6gT/sAbPPPwsNtHiL/+KgkyOSDHyDHFPqB5uUYPB7/0it?= =?us-ascii?Q?jeF0Yrq4ZekQM6bnP0qiPpegIpv3QybJlyGCyQuvpr6+at1+o5OCQShvwXKT?= =?us-ascii?Q?I9fgKWpwNrvqvUOYvW0bIv8oCeLhzjQnBN8PyVzbv8Pm9NYjQK2f6tflFlWJ?= =?us-ascii?Q?wmEKaevEf6jQnkb4zXu4aMywY/RZ/HN4VoxLArk4Q0xDpgjbdb1Umrt+ezFR?= =?us-ascii?Q?mptucWRCCCgr3kFH33k79PUKEgtemGoXih05XS2I43tymFJAKH03C9p96lYe?= =?us-ascii?Q?9dK3+z67Vrdxwdv7bnxuj7KtGhIN1t1PcNCv4YyEYtwWSDpbszrKGSWFi/0k?= =?us-ascii?Q?5L5lKIOSLN2egqV9610dXlUDoiF6xJK0W9zcgAOlg6m5a6HHoDlkbx3RczYq?= =?us-ascii?Q?S3p5fcgJLz//t17oqYoAOkgsymMYj6TFkRYXNjPJwqxxiVi9Nulxym9s7/Hi?= =?us-ascii?Q?20Vm+oNzXWE4VtI3cIDOkizDfvNbeMP2YpWyVqaJ8Pv2bpDmuzJ3rTo1oioH?= =?us-ascii?Q?OuPJmYJEBeXcq4mZp14IfP9cE3DrqY+awgUkx3Dkyvz0zisfZX7AEbYvl0wO?= =?us-ascii?Q?PhqcYZbZNrogUV2U65i78EitmaB9z0MrEVVq623SUfWFqWpi9/80m9iqvqof?= =?us-ascii?Q?YhclJdLLDC5bgGb2FGfpyurnw/QC9QM4eV/rYLI1mjZfbM6lhQ50i77cu5yG?= =?us-ascii?Q?iotg7dOJEn6yXOSl+mZSzGSFtQDaG8IfZ4qHizKwV+XiIKzPsgY/SZoGwS5f?= =?us-ascii?Q?fhIsT8l7bRNdulPTRsj5GcARdVp7in8RU4V4stH0UAJ2qJ5pIpAgAlBM4Bh4?= =?us-ascii?Q?Fb3shFQ0fnJSMdTpOZLdcJTnzVMmrxeC1Gmdk7KgTyIzBMalCywOQ9IkSIMe?= =?us-ascii?Q?a5O1nP3jivhcXs64lSKUb7AFuWyP5++D5GqtcOxPQmYYNZ3B/d1g1bZcFzQM?= =?us-ascii?Q?hl9TWlEs00QKITk+xRCbllGDXPh4Fcu0tf3+M6qgNnTwZSIHQsAF+2ZSEwK3?= =?us-ascii?Q?fnF+vh5qcVfO5vWECdnWItvBAlJVJrc1yjmAxwzsYVCTpMlBFXxdw+B04/ia?= =?us-ascii?Q?fvGgEteOOQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR02MB1441;5:Inlk90kfO7/3TtoRzMjGDYnjqaa76QS6lO2XosdeHFCVIeZf2SHYD9WzsMivxN/aEXrSqNo6B33w+HsRUCR6w9JzSDd+/d1T/Jd6SRSw8WqGE41z4LNlfBthaz7r52OZ6hQXcganbGOo/dh5OJqaNg==;24:V1rAw5hhsrk5HEBqstXWNpmTQLd2wh7nT/dbGslE9pd4tzUSDRqWY6Gru6u2Cd3SNn/rwWrMuZUGGzW4dEcjmqE5lASFw8+Wm8lzhgibWv0= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2015 13:26:40.0910 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[212.179.42.66];Helo=[ezex10.ezchip.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR02MB1441 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4092 Lines: 149 From: Noam Camus This header file is for NPS400 SoC. It includes macros for accessing memory mapped registers. These are functional registers that core can use to configure SoC. Signed-off-by: Noam Camus --- include/soc/nps/common.h | 123 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) create mode 100644 include/soc/nps/common.h diff --git a/include/soc/nps/common.h b/include/soc/nps/common.h new file mode 100644 index 0000000..3bc30a8 --- /dev/null +++ b/include/soc/nps/common.h @@ -0,0 +1,123 @@ +/* + * Copyright(c) 2015 EZchip Technologies. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope 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. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef SOC_NPS_COMMON_H +#define SOC_NPS_COMMON_H + +#define NPS_HOST_REG_BASE 0xF6000000 +#define CTOP_INST_MOV2B_FLIP_R3_B1_B2_INST 0x5B60 +#define CTOP_INST_MOV2B_FLIP_R3_B1_B2_LIMM 0x00010422 + +#ifndef __ASSEMBLY__ +/* CPU global ID */ +struct global_id { + union { + struct { +#ifdef CONFIG_EZNPS_MTM_EXT + u32 __reserved:20, cluster:4, core:4, thread:4; +#else + u32 __reserved:24, cluster:4, core:4; +#endif + }; + u32 value; + }; +}; + +/* + * Convert logical to physical CPU IDs + * + * The conversion swap bits 1 and 2 of cluster id (out of 4 bits) + * Now quad of logical clusters id's are adjacent physically, + * and not like the id's physically came with each cluster. + * Below table is 4x4 mesh of core clusters as it layout on chip. + * Cluster ids are in format: logical (physical) + * + * ----------------- ------------------ + * 3 | 5 (3) 7 (7) | | 13 (11) 15 (15)| + * + * 2 | 4 (2) 6 (6) | | 12 (10) 14 (14)| + * ----------------- ------------------ + * 1 | 1 (1) 3 (5) | | 9 (9) 11 (13)| + * + * 0 | 0 (0) 2 (4) | | 8 (8) 10 (12)| + * ----------------- ------------------ + * 0 1 2 3 + */ +static inline int nps_cluster_logic_to_phys(int cluster) +{ + __asm__ __volatile__( + " mov r3,%0\n" + " .short %1\n" + " .word %2\n" + " mov %0,r3\n" + : "+r"(cluster) + : "i"(CTOP_INST_MOV2B_FLIP_R3_B1_B2_INST), + "i"(CTOP_INST_MOV2B_FLIP_R3_B1_B2_LIMM) + : "r3"); + + return cluster; +} + +#define NPS_CPU_TO_CLUSTER_NUM(cpu) \ + ({ struct global_id gid; gid.value = cpu; \ + nps_cluster_logic_to_phys(gid.cluster); }) + +struct nps_host_reg_address { + union { + struct { + u32 base:8, cl_x:4, cl_y:4, + blkid:6, reg:8, __reserved:2; + }; + u32 value; + }; +}; + +struct nps_host_reg_address_non_cl { + union { + struct { + u32 base:7, blkid:11, reg:12, __reserved:2; + }; + u32 value; + }; +}; + +static inline void *nps_host_reg_non_cl(u32 blkid, u32 reg) +{ + struct nps_host_reg_address_non_cl reg_address; + + reg_address.value = NPS_HOST_REG_BASE; + reg_address.blkid = blkid; + reg_address.reg = reg; + + return (void *)reg_address.value; +} + +static inline void *nps_host_reg(u32 cpu, u32 blkid, u32 reg) +{ + struct nps_host_reg_address reg_address; + u32 cl = NPS_CPU_TO_CLUSTER_NUM(cpu); + + reg_address.value = NPS_HOST_REG_BASE; + reg_address.cl_x = (cl >> 2) & 0x3; + reg_address.cl_y = cl & 0x3; + reg_address.blkid = blkid; + reg_address.reg = reg; + + return (void *)reg_address.value; +} +#endif /* __ASSEMBLY__ */ + +#endif /* SOC_NPS_COMMON_H */ -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/