From patchwork Thu Dec 28 09:35:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 853388 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="M/pfq9TU"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="VJJkoUcY"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z6lRG6qkDz9s4s for ; Thu, 28 Dec 2017 20:53:46 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=2Spm/LlnS2CdOJgOk+h+fkFHJXeece+Yk2rtl0fmyfY=; b=M/pfq9TUKNjiaB Wavh54sZJIo0k09OBKBz5WmqA08PisWKn26uRXKI83WwYg9K0vj4bcGT5zZZel6D4KoigGLWAR4Wq CfpWdVs79PgM5KegZEaR0IE1PpNWlC+Ko6vA8lgGOmRDbIm316ImTTPzZ7b5Tlwm+5/97mKkHaidU SdtRg3ayoze++62LvC0p3zRYldtgaKj1ZGy0lz/EapMoSfEc8OqogDArK+2KVzE1McLv1DUId5eCu 2PlG515rPiLqEg7LGCs2SAtTBJeYoAmJa6f8iSWVcxrVMUKU1/SFwGTNkU8j6jZ7QeBTHB1ODtOEk Dq2rZYKgclsUQRVmEMfQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eUUsb-0000L2-4J; Thu, 28 Dec 2017 09:53:37 +0000 Received: from mail-ve1eur01on0064.outbound.protection.outlook.com ([104.47.1.64] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eUUsB-0000Ft-RY for linux-arm-kernel@lists.infradead.org; Thu, 28 Dec 2017 09:53:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fR1Kw7DvUKBaSWzFxmHxBeikNvrBzyl22wQyaIAs9cg=; b=VJJkoUcYTN2F4/IKzdm0hPYen2K321coeWwgkfDlDph8420JPAXERJGVbNFr5bCTNOuM3Sk79sq2uz1cAbMzYIna5CyrPdls7kO3uab7f5C3ggTWKFC5AhacQ1sBLWpbXixBbcy/PT8V7AON02aGjwBho79G4jgXNVbAOtPHry8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from shlinux2.ap.freescale.net (123.151.195.53) by VI1PR04MB3229.eurprd04.prod.outlook.com (2603:10a6:802:6::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.345.14; Thu, 28 Dec 2017 09:52:52 +0000 From: Peng Fan To: shawnguo@kernel.org Subject: [PATCH] ARM: imx: introduce imx_l2c310_write_sec Date: Thu, 28 Dec 2017 17:35:50 +0800 Message-Id: <1514453750-15479-1-git-send-email-peng.fan@nxp.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [123.151.195.53] X-ClientProxiedBy: HK2PR02CA0170.apcprd02.prod.outlook.com (2603:1096:201:1f::30) To VI1PR04MB3229.eurprd04.prod.outlook.com (2603:10a6:802:6::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 12dde0f1-0692-4f76-9965-08d54dd8c50e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(48565401081)(2017052603307)(7153060); SRVR:VI1PR04MB3229; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3229; 3:KF9lwOSDz57n8w8MjwB2ZXyvCCRVODInVuE5/pVXavm8LAGVvN4VyQDXRfiglZRqE1FhnjYB5JH3vYHQJviHeiUJYXjJQ8N8hIi5700ZG1vQ89c/gsZilp24knNCi76kirdpEOOQBHd/JK4G/STfLST6rp1/8i6t+hb79w+MST1HkDB1MJI4lxfsLxdx3SgS62uGjxs3fRvm6ssx0Ee+VLQ+ChwCBn0IL3UUCnU4S2uBkHMjS73hOwYx7R4BvE++; 25:l5ROzXwI3VqegBWR2Fn7N/hVq0RcuvxX85+IVyNkdkVSGsLm055u4yw3Z0mO4HkN3Nl3I6QGlx9N1UJS6ZStQa1h4m/Jdn/dppXTwDxC5QaNginFEUka4O6ACz404nYoqFteJVuac2ki9qOP7J8MwB3q5YiI8oGncnVitdwdjphPGBA54aMHx2deTWrG1X8LelW6sXnYeUYvv1MwpT/XsBp8brFc9AvqPLkC3CD+QipcVBSiTB3khWJvcUZkhMGxS5vhPceZaCBAL5kPsn96cZ2k3uZAw2dS928NYROCwfWtFmgq/GWbkYU0ShqXgRy7h3WRP4Ly9eDjAfwxGq5Bvg==; 31:TFYrjYrUsnEMcSiWzSDljFWZBjy1p8SocGuWBu8k/LX8BftnZH4z+ZCD3HQY5a6CIz9/0rgwe70+QRUYCrXd+dcs4vn1b8nUfx/GrQ7cKL+S2+hvo2Yzvp3YBx+OK7xqIRJZW5hnKLrgqLohx1H97ZCGTVDlro/vvZOpFw1OmTPozdkNmhFZigXQvSNIM5xcH/2NXVz/YBbWQ4PXXZCgXNR6kKJM07YSf5QN/D7nrj0= X-MS-TrafficTypeDiagnostic: VI1PR04MB3229: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3229; 20:S/krun8mcVRvKQigMHzZsAVSRXFUQIFC9/JRJ1OBn+a71Gn+a9Cu6mhwg/8SWS0FGqHg6Uq5Mmez1kRT7U1mJOOWHmGZ6tisEqFEKx2Kqg3242b0T6Jh0qaJVKcdtT8ahlSPDPcfUm+SrHkT2PW1UvKRIEJqFPUp9iMgfv4v65S6WsCwDAdPFV2Z98HrHEI0dd8h+puyQUIvwiLRQHAhzmyNhN+zoNpZFjq4hBW6ubZ1JRj5lJlQvFnENBjkAMjhFZpjhyR2bTlY3QQQjLFMcM0yUL212b9q2oOMeKmSvPre1iIGDFqE2mznur4PxQv9q3tan9A3Jc662Us2vOD/k6cxUWB8qDeokEEgH4RG2EUmlq98PL/E6jFPRa4CbIKexiARNEnVCWLKsX9OQb3KFrDMN3vbWaG05iVNcF8c+0RIXhyEShRvf7OPWbTBCqRw7PCs7dK3Dbokg2EuGpdIXwq/Y+vCHhCbUOK8WFoZGBGoALqtShkKP3grPuSWCkXT; 4:iaJGxRFYIh7Zls5gIFWUqcdlto0uod1uqjK82RUEAS+rYvE7iDkt83zR6BBxCZ3BWvU9oYTbdgAR1qKswGvHLtAl4sgSo0DjpwD1QkGuKh86UGbv2kZ/S06ps/kT8IPOQxUCzXrDjQhnFOjmnIsDI6J2VUoxsVZFLOZnnLmYSU8Oo6DRf48c2ZwF9ImPLdO83hxjiXgJ1i+JupF8Dlco6IP9+pPR9EuiTZnIUAmvDL14DbY6Uwky8UvRgF98I+erUaYbEzmyORtbQqGJzW3Z2rq+N/NJGRFedTObZvKevuia7XIi5+URocqRb1tz22T7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501075)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:VI1PR04MB3229; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VI1PR04MB3229; X-Forefront-PRVS: 05352A48BE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(39380400002)(376002)(366004)(396003)(199004)(189003)(106356001)(6486002)(2351001)(2361001)(105586002)(6512007)(47776003)(53936002)(97736004)(7736002)(66066001)(68736007)(39060400002)(52116002)(2906002)(51416003)(4326008)(48376002)(50466002)(305945005)(16586007)(15760500003)(316002)(54906003)(386003)(6506007)(25786009)(8936002)(8676002)(5660300001)(81156014)(6116002)(3846002)(86362001)(81166006)(16526018)(6916009)(36756003)(478600001)(50226002)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB3229; H:shlinux2.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB3229; 23:1HcuKKWCfGjWIs1aq9gCXFGkBTEHCsqcv9HGZ0reG?= aZnQIsGv4pDm2dVDywRMtAQ01sHkxblFcjnYm4tPOEX2mSykuJ0+nODeN63eQmfUSrqf71yoWNHV07Xz0iQdxyBS3mqGPS9EIM+MIg1NOHr6xZPd0JkkVi2HMe8dB8Q33+J9sE/uiXSvcXrIqbtefdgOKY9JJ6F9PYKakr4ouBWWFnrRALT2LtC7WfIVag3Sg5Toyb5cF2w7RvtoBPdqdudvsjSNGtH8cSM1t70MWfkyoXtwsbG6grLQfzCZ40VE8EkhdnLHJCBf4TeguTBoZ3xsq9G354UhkZeB5ihsrvew161mBID0DPj5SVgpZkyMF0CrzMV3ZL/nV3ZoB778jNyUDG4W6O6XqjVCZ45RLFK3XhcxxW8iIG8aLkOKLl8qut8xnyvEpnM2fBhO89JogfNutJoUYlc8z4cgCGf1neyJvDHME8wS3j7gdarNaEEEM4+dnekZDPknwMLDIIr7ajofqXvMLdP+0c6EI1RsdWmwvJBg6ilUTwxXwH7ItIwbXpFCtqn6VEC+BXdGK1hl8Nse2RLDMFvpR5Au8xMOyQENV1cebUelPZtDPW8Hoe5bVpj4SetNtfMCQuO4cWujIm8cN5dijqE5BckVhi2JhrckYevBJwYIXWX3wxW7lZ1/QcgrKzv5w8VMJT7/IHuAxc4pd3zxuQZzp4IV2vRRT2KmgAkj6pta8y15w+PAdPJxzpDITlcl10QPmQ10EeRk0sO7UmEK6BJJTyI7/xF6VJJeZhrGBRqyX2RAiGM3TdP3QD7vIxipRqQ3+0V9IeAwOFzcSjip+SVRq4uo5U+IFYx+gQ2uOPE+yaaTNapESs9gM8zP354rHQpKPOjMx9tfRyWxM6WpnswliXz4kxl1JpnD2Q8Cwe7HEV4uJZ5UpuT12+C98+XfBSIfPas9fXBYr3c3AJmwv9+XkZotub1m7pFSTo0Oi9u5eDaTPcZGisupQj+9lrfQBu20OMORYHo4OJCjXqBtAWCJVveZdWNyyOcofmZnjX2UfiTjOk+vO50ldH0mHe6GIhGPxTelBKCDko0n+teuvUfeP0z3znYGyH90w5Xx944jB5y1ULch3rWgg4eDu2U4pqXMrE8ztEUjOsZ X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3229; 6:JCe7YpZ1sIMTUZ917IPBj/GA8jz1xLOy4A7sCyiP0ERWMr9upp19RRV3P5W6T/F1zyzGPxzMAGKwYrl1IbWg/rw2Tht2mXSj1SK//o9ncXObx0b0R2jEf9aRrb2ev4F/pvGImzbV3DG34haTGyou5AWczplxgAZYODdgh31vDz+cRGGRjJ04kEUIRjUsZ7XB3ks8w9LCHBCkn/JWbjrQevxEy44onMTWt1DIgWKENIBl/pMIgnaA9kI+1yJTRdymFHtTNb+EyzLekXaXSebZ9GhkTm8f2YMmrz1FqKavLLjBpuUXHJN+cpG6IllfBqbZgBckrDV7yTlZ8onWbFHttrXAhDQGwe/NGYm5JZsxSnk=; 5:4MLd2qT8uJnwbrojOLK5p9myXE9XtsSIClf6R9sL3u0OlIgZCTlI2ziPoaj4dEe61auXusz7NzeR5wdOw4NfKpkpvSvdPNIln6sDsetVgaKW/JcXZ/sUsnPWgtEK0v3ObyQ+hRxJeZIzhcMiCb1akt9Fy2c0L14cCXguvNZBmL8=; 24:kNrVpeAohlN6sEjzRnvlyyhYarw9aYJQhAJfV38mvN/WfxuDWkx1+vVqC4HCJP+2rAMnNYNTjUw3+BH+RKXdzhQ/UC22NLclhhfY0XWklbM=; 7:ckS4c4uyQFgZ9DqzXDqgTAlRT7l4ub4m+Qz49Hdx6JqfNd0NgtUs6+9Jjh9N20FZQtlfdAP/MTzT9EpnTmm0de3kD2CvypqxlwknXcaFcpdI6HOl9pP2OOJM2Cp3RSX00Nl+lhtESOzoi9lGuc5zrbSYaKDREhxVm+QXSE6C6UN+0205zrbk4yrJtRYC7QQm/oITUiOG3d+xKg0cUB/Rr9uzr+halzFg94WXvs+JcP7p/4Aeb8vgtcgsg/V4cZun SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2017 09:52:52.6667 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 12dde0f1-0692-4f76-9965-08d54dd8c50e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3229 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171228_015312_252487_BAF42513 X-CRM114-Status: GOOD ( 15.22 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.1.64 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [104.47.1.64 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dong Aisheng , Peng Fan , linux-kernel@vger.kernel.org, Fabio Estevam , Sascha Hauer , van.freenix@gmail.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org Some PL310 registers could only be wrote in secure world, so introduce imx_l2c310_write_sec to support Linux running in non-secure world. Signed-off-by: Peng Fan Cc: Shawn Guo Cc: Sascha Hauer Cc: Fabio Estevam Cc: Dong Aisheng --- arch/arm/mach-imx/system.c | 21 +++++++++++++++++++-- include/soc/imx/imx_sip_smc.h | 23 +++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 include/soc/imx/imx_sip_smc.h diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c index c06af650e6b1..86ce9f590777 100644 --- a/arch/arm/mach-imx/system.c +++ b/arch/arm/mach-imx/system.c @@ -23,11 +23,13 @@ #include #include #include +#include #include #include #include #include +#include #include "common.h" #include "hardware.h" @@ -35,6 +37,9 @@ static void __iomem *wdog_base; static struct clk *wdog_clk; static int wcr_enable = (1 << 2); +#ifdef CONFIG_CACHE_L2X0 +static void __iomem *l2x0_base; +#endif /* * Reset the system. It is called by machine_restart(). @@ -92,9 +97,15 @@ void __init imx1_reset_init(void __iomem *base) #endif #ifdef CONFIG_CACHE_L2X0 +void imx_l2c310_write_sec(unsigned long val, unsigned int reg) +{ + struct arm_smccc_res res; + + arm_smccc_smc(IMX_SIP_SMC_L2C310, val, reg, 0, 0, 0, 0, 0, &res); +} + void __init imx_init_l2cache(void) { - void __iomem *l2x0_base; struct device_node *np; unsigned int val; @@ -102,6 +113,9 @@ void __init imx_init_l2cache(void) if (!np) return; + if (of_find_compatible_node(NULL, NULL, "linaro,optee-tz")) + outer_cache.write_sec = imx_l2c310_write_sec; + l2x0_base = of_iomap(np, 0); if (!l2x0_base) goto put_node; @@ -117,7 +131,10 @@ void __init imx_init_l2cache(void) val &= ~L310_PREFETCH_CTRL_OFFSET_MASK; val |= 15; - writel_relaxed(val, l2x0_base + L310_PREFETCH_CTRL); + if (outer_cache.write_sec) + outer_cache.write_sec(val, L310_PREFETCH_CTRL); + else + writel_relaxed(val, l2x0_base + L310_PREFETCH_CTRL); } iounmap(l2x0_base); diff --git a/include/soc/imx/imx_sip_smc.h b/include/soc/imx/imx_sip_smc.h new file mode 100644 index 000000000000..61a493278169 --- /dev/null +++ b/include/soc/imx/imx_sip_smc.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 NXP + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __IMX_SIP_SMC_H_ +#define __IMX_SIP_SMC_H_ + +#include + +#define IMX_SIP_SMC_VAL(func) ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ + ARM_SMCCC_SMC_32, \ + ARM_SMCCC_OWNER_SIP, \ + (func)) + +#define IMX_L2C310 0x1 + +#define IMX_SIP_SMC_L2C310 IMX_SIP_SMC_VAL(IMX_L2C310) + +#endif