From patchwork Wed Feb 26 07:12:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 11405405 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 116BF13A4 for ; Wed, 26 Feb 2020 07:19:24 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C846121556 for ; Wed, 26 Feb 2020 07:19:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ZR18l6Ru"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="rdoOvCsq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C846121556 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org 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:References:In-Reply-To: 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: List-Owner; bh=yKWH0lB/MbhYcQP+dngWGhwlLEmag4fIqLAc0qn+xLk=; b=ZR18l6Ruv0T4N2 aND/R91MsjhWGZ7QXU+zVuiM0ogXufNh4tRO8NaU1DVB5ctfi891xz8nILF/l5dTNn4UQiMv6cIMV MvIbcJKJp+idFSLWAt/79VEvMEjeX9VseKMi4QMIksK1Qhd3/t4mozVDZrTvCRxBoRUrLVVWVFRzf AKW5jSmT/FE7ytA96xESEnn198CAKO/A1rSBdrCdqywWBNY80ZRon+iuQEfcVZO6TljB8bJSeVyTv fdDlAptpmnul32CM7RPxtAWun8f7ReK5m1Hy4UhkIrZJvydLySZcVUWMwv+Sbw39tNFaRpeKNdOmP 5bka+dgz8KRQP6CIQXZw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6qyW-0006v1-2q; Wed, 26 Feb 2020 07:19:20 +0000 Received: from mail-eopbgr40044.outbound.protection.outlook.com ([40.107.4.44] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6qyC-0006DZ-Eo for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 07:19:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d+GemtTCpV48les9dpIzt8l2rbgs2Z7MrJB1PaqwHSfiJJEyowk7QDAEla/SD6WvlLcKOwKIf83nAysI2At617sHmlcAto6GU0QXf6PMRi1N7j/Xcaw3yZrja5igNdpdKX1OZbCtitncxoPKOcU1wFoCv9goXIfvDSk/edQ4bQ5LlXKb654E8HtapglYevtrZpbtANOK4759XWgLMV0SzSywb8+z2XwXh/tk7FyZwbxs+ShjLkmJ8AV8qLAahsrnbYdvM8H7fLpPWipJb5bndi2co6cvO8Hd4IKb3Qqjrz7bPaXbPqMQ0S6bw9k93GVTv5B64tdjEYZDJc4TC309Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lTEPRvmDpn0B7HYc7rlzofD9RpOTbggaLCyUpfkZ72g=; b=eORRrrHXaPSHmkx506hODvEIBT542Q8SiEeDSli5/LjS9/8QJnP2k1P0aMofEeEBl08nXwPSzOBDgaQxGFoOPo1HL4yWrQf7Mte7bFFnk4pdZz8RDwPI4PfhkTAupMcwoq1bTDXgdzQh2p0X1bZW5tyqg2jbulC1MRcgSSQ7UzfphmLwKKgEnklmPMixpu4Yv02McO+YKtHuoqAhQnLNwyf5KWFNL9pk2FyL+0DePCyOlobRlSOW68FaSwSMS5mVklYdMPWjesqujuXW2W35kZOmYGDqzBBuRQ1i7ISj7Oa7oaf4uheKIpMW8Sim9kqx6FCnIt9uVbkhg5e4VsTaKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lTEPRvmDpn0B7HYc7rlzofD9RpOTbggaLCyUpfkZ72g=; b=rdoOvCsqXNqxbCqUcpxX/t+nNCWsZqczKC32NlEBeIDNbb6GEEkd0NIkix1ufI9hX/SgPpEECFBU5M4c4w8SD3MWxg7urvtxJ1oNRSHBblgSNXULQZD/T7n0o5CDLj1sWpJELpmlsaepW49LlVw3h1HKNxbGkXGGGm1ZO9SZ/N0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB5506.eurprd04.prod.outlook.com (20.178.115.221) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.22; Wed, 26 Feb 2020 07:18:57 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::91e2:17:b3f4:d422]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::91e2:17:b3f4:d422%3]) with mapi id 15.20.2750.021; Wed, 26 Feb 2020 07:18:57 +0000 From: peng.fan@nxp.com To: sudeep.holla@arm.com, robh+dt@kernel.org, mark.rutland@arm.com, robh@kernel.org Subject: [PATCH V3 1/2] dt-bindings: arm: arm,scmi: add smc/hvc transport Date: Wed, 26 Feb 2020 15:12:50 +0800 Message-Id: <1582701171-26842-2-git-send-email-peng.fan@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1582701171-26842-1-git-send-email-peng.fan@nxp.com> References: <1582701171-26842-1-git-send-email-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR01CA0131.apcprd01.prod.exchangelabs.com (2603:1096:4:40::35) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.66) by SG2PR01CA0131.apcprd01.prod.exchangelabs.com (2603:1096:4:40::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.2750.18 via Frontend Transport; Wed, 26 Feb 2020 07:18:54 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [119.31.174.66] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5f6e0a74-4130-41f1-7abc-08d7ba8c24fe X-MS-TrafficTypeDiagnostic: AM0PR04MB5506:|AM0PR04MB5506: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-Forefront-PRVS: 0325F6C77B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(136003)(346002)(376002)(366004)(396003)(199004)(189003)(2906002)(6512007)(26005)(2616005)(16526019)(478600001)(8676002)(186003)(956004)(9686003)(8936002)(81156014)(6506007)(66946007)(66556008)(81166006)(6486002)(4326008)(7416002)(52116002)(36756003)(316002)(5660300002)(86362001)(66476007)(69590400006)(6666004)(142933001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5506; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +mw8TOy+u2Ylkxzo5Yfk3piuCr0gPYSrJ66xRc1dAL0LcR5YWXzBR2oLonABjuYlXPDupZBMglGSW/IKnACWREPkPIl+mu99n1mTwFM/g6b/pKIoka9XVKdkyNaVBU7+HS18X5c0uul4v+B2LKl6+MbzMfPQauC+c07w6c7kWXZK+v/vN0CsESyP87qt+iSbS3+P4D5zBAWCJiBHpSbjD/EKSy9dMIuqKM386E2lpimxjBazzc8Hx/nU2dJDE9ypG1SDVHz72E7gvoCPQSxt8p4U9phrQ6bRvKLdqDsHbFh9itvfKx/XQA21Vp5WFMBaPDHL1r8xeRsi1UOJ8dBzE0RP1H9qStukKQKMBTHTsjx25LmVMNggcvghL+txscjIEEkQ5iUgl87c1rClYQVB7bulWeGwrasJhJrNeCIEyZVw1cZTDHpymjIRV0rvzpRVzLgNvD/bDwzEwvs5h/2PMrkyMIw5E6Jf5Wu2lZWpAcK6VvutgicadpomqvIdMVR9H7wnzPhzOpQdswek0mJ1HlrpeHxwlN6d42tuncZ2czw+KZ5Z7J/Zyq7aGFcHb9dg X-MS-Exchange-AntiSpam-MessageData: X//2Hsq3PPDfofQS+wG8aOvWmBrPh0W4Zmrhh0/oUo1xJATZxJg8Z2BZXc4sE0tINjqUIUUFAu9tz7B5Ap7saiJ4FmfUlt8RRmPQSj0T2C9cSMIa6I+OTZWhCNoE+T8KlqaJwr5XCX7mpfCQ4ntMkw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f6e0a74-4130-41f1-7abc-08d7ba8c24fe X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2020 07:18:57.6948 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 783LDQMnRApziGLwiaM1VvCEe6V08GA3XtRkwNeJgExFEkICXwTNbRGXpkDj96IjONk1S8ay8QVKkCkIQ6sJfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5506 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200225_231900_511437_423E14F8 X-CRM114-Status: GOOD ( 11.06 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [40.107.4.44 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Peng Fan , f.fainelli@gmail.com, viresh.kumar@linaro.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com, andre.przywara@arm.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Peng Fan SCMI could use SMC/HVC as tranports. Since there is no standardized id, we need to use vendor specific id. So add into devicetree binding doc. Also add arm,scmi-smc compatible string for smc/hvc transport Signed-off-by: Peng Fan --- Documentation/devicetree/bindings/arm/arm,scmi.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/arm/arm,scmi.txt b/Documentation/devicetree/bindings/arm/arm,scmi.txt index f493d69e6194..4ce57b88f84d 100644 --- a/Documentation/devicetree/bindings/arm/arm,scmi.txt +++ b/Documentation/devicetree/bindings/arm/arm,scmi.txt @@ -14,7 +14,7 @@ Required properties: The scmi node with the following properties shall be under the /firmware/ node. -- compatible : shall be "arm,scmi" +- compatible : shall be "arm,scmi" or "arm,scmi-smc" for smc/hvc transports - mboxes: List of phandle and mailbox channel specifiers. It should contain exactly one or two mailboxes, one for transmitting messages("tx") and another optional for receiving the notifications("rx") if @@ -25,6 +25,7 @@ The scmi node with the following properties shall be under the /firmware/ node. protocol identifier for a given sub-node. - #size-cells : should be '0' as 'reg' property doesn't have any size associated with it. +- arm,smc-id : SMC id required when using smc or hvc transports Optional properties: From patchwork Wed Feb 26 07:12:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 11405407 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D8DD713A4 for ; Wed, 26 Feb 2020 07:19:38 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 99C2721556 for ; Wed, 26 Feb 2020 07:19:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="e0q2eW31"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="e6c6Iicb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 99C2721556 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org 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:References:In-Reply-To: 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: List-Owner; bh=e6vTJ2w7x4iRBHQqIL4EbobZB7IqGKczPNoiKQpeJzI=; b=e0q2eW31HRmzon egVQzqv55DWDtm3c8LhmowlINnVFqKtqb9wgeJz+IvofkexEVmg0bMpFsSCbPF29MDauAUrL2/t8N zbBqFx45BzPkhChwtjsyba5TGG8powbYv7eOVoIlZTLCnqaCdKRCcjfe1h6H94nhtxccfIRezbxyv 6vuFEiBwXE0rodpUAbHjYq0DOZHvnRVTnEhKdVAGeEgqJbYmQNe+wuHOmUVINA58UlPgwVqnCbA3T ZFWuQd9CYpiHEY/qYxL0ZDbcezpNEfFHSwiyH5xlVFX4NiCy5MDDwwMvf2U+sfk/X8G45U7ckeacV gsKvqIeiIFDuw9c4eedw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6qyn-00079x-US; Wed, 26 Feb 2020 07:19:38 +0000 Received: from mail-eopbgr70080.outbound.protection.outlook.com ([40.107.7.80] helo=EUR04-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6qyH-0006I2-5K for linux-arm-kernel@lists.infradead.org; Wed, 26 Feb 2020 07:19:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mWLHZSXfZ95QZ1JV3TFJgElHku8dmp7tl5+cB7soW2Gbp/KAPKAvOQ/q7ioXgSx2/61frRcnDmF2Qjm3XOUI5u+gy9//H3sczwjNVLtTAJhNN5qr57E+QLQP+hjIHrWYfp4qvpYcmg03n3ZXbBksJzyvTXwnnmvUhtU8T44jhkd7sbASmsWucf3/Fz+AjvWHsOg6iCkCaP+89/5UqJawZk0f86LXQk1vMu3KuromnlZ6h8oxz8MyKaWQRteL0QUAhO6CcgQtuqx5WPyn77kc4XIMjZwfVNYsp6whvnA/zqLvbH71BIeMmZuSNi4jJVU3GWP6mCj3TySg4WcG3Xdmpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XC0MEAqHS1tsa7WkXuPcbgeDBkAmtuvCfNhMyoLlzR0=; b=UbMWu4HCvQcd1SLGtyF4eesZNNP/A2DFhuFmd05GuujBFhftDUx2ds55pfoBV13bTieBJEGO5bnsuYnB6XAqk0eaZxepU+/DxQ7dL465lRKXrqS3sIP8fvl6bKjoYEgwfo/FEbTKeGyDEakePl7e6VneaqKfoA5jTBqqjIwpbsCYqnN6AMTiYHmBOvl8LTkq2ojulZ5JqWjeZ57HF3UlzuksmuQkLkjfjnxGpg0yx2OLDYo4e/PzVWCcBGR534I/bqGQ2kcaOJ9Y9KgHjKIHc+ao6KDoPlcjNvgrr8Qibi9Vn5sholRKT/V2lqGeq4ldCvY4iy7mCDw4NpnZIO/oDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XC0MEAqHS1tsa7WkXuPcbgeDBkAmtuvCfNhMyoLlzR0=; b=e6c6IicbFn09HlUS1+lGOXT2+IXDhEc8nRA4LAAKRTIwtvx/Zm5R3efImNnyS40W/FArGXUNVM+LiK0pVBHi1r0vzOBNgWXXuzgdLmOA+dkdL4JbsSqbZYRVc0xsOiV4Jd1pIAH1hK25ZwE8/Ka0/vByobtbIdsk5PIV+uibRuY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB5506.eurprd04.prod.outlook.com (20.178.115.221) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.22; Wed, 26 Feb 2020 07:19:01 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::91e2:17:b3f4:d422]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::91e2:17:b3f4:d422%3]) with mapi id 15.20.2750.021; Wed, 26 Feb 2020 07:19:01 +0000 From: peng.fan@nxp.com To: sudeep.holla@arm.com, robh+dt@kernel.org, mark.rutland@arm.com, robh@kernel.org Subject: [PATCH V3 2/2] firmware: arm_scmi: add smc/hvc transport Date: Wed, 26 Feb 2020 15:12:51 +0800 Message-Id: <1582701171-26842-3-git-send-email-peng.fan@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1582701171-26842-1-git-send-email-peng.fan@nxp.com> References: <1582701171-26842-1-git-send-email-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR01CA0131.apcprd01.prod.exchangelabs.com (2603:1096:4:40::35) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.66) by SG2PR01CA0131.apcprd01.prod.exchangelabs.com (2603:1096:4:40::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.2750.18 via Frontend Transport; Wed, 26 Feb 2020 07:18:58 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [119.31.174.66] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9b4cf32e-d208-47f0-66bc-08d7ba8c2746 X-MS-TrafficTypeDiagnostic: AM0PR04MB5506:|AM0PR04MB5506: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3513; X-Forefront-PRVS: 0325F6C77B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(136003)(346002)(376002)(366004)(396003)(199004)(189003)(2906002)(6512007)(26005)(2616005)(16526019)(478600001)(8676002)(186003)(956004)(9686003)(8936002)(81156014)(6506007)(66946007)(66556008)(81166006)(6486002)(4326008)(7416002)(52116002)(36756003)(316002)(5660300002)(86362001)(66476007)(69590400006)(6666004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5506; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Sa/UW5bntYAlpNrWRKKtNlDAYEeM0XNKV0dDYu/O5siu+WgaqWNtaJ6H+Bpgr550ut1djYX4Z2xU40gKYXYXnkTF6hUi4AwXx5LnLSwZ99jAEw/FcTPGovpjB5iqjwTUxvftgXz6e92Kaq1mXgbDGuWXobrDvR6ioCGvgOgy/l2wOqcEbSortAa2f9PgIbZz2ZKOY5WcJvx5mOejoMq1qHSboFHz76NHx+xQVLU8mvhLFi2qKZIJQIU/KlOaDHjYvJzel2Y8uZLgZEmYHo+vHLyz8aq7w7ZKS3DDccJQc0+N249+6lY2pOTRbFCBmU8zPgfq6CV7U9z1qESrZk4wH+lLl6SMExdpPLeY6s+zPakgYmzz1WYV5+XCN9ciW7BO+t1r1Rd+V/F2pLR+/0ub2DRRMb9DAYJgY/Lgdv422TUlqefDHcjMdKtBuFHMgm6E6rBfII7LH+CVu+hpbAO0KSc2KHDDYnYC9N6/tiqSgbotkp9IAEsXlSsahU5bdyqpUcEh1Uc4ptD3BD4nKn02HG6CHs2Jut1VFf2Vq0apgdc= X-MS-Exchange-AntiSpam-MessageData: rMRkIGyzWfGt2semLJzeuYDZCTBjZpClVbM+CFOdt6PO0O1B7aErSbgAejBpSRP9qpo2vu0MW/m4ttCmLLQX50K0mPNaz9M/yEEAWC582lQ+ZSfMDBMR1/cDQs3QHTyjs/3EUVI3aASlnJwaq2MfVg== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b4cf32e-d208-47f0-66bc-08d7ba8c2746 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2020 07:19:01.6735 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B4p+Sf+orIfu38unY4xYdPiF4ZkfAiGy2WbagmFmMaCwMFk/dSP5fJhxYa814HumnI0Irk5notqmmQsldaojIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5506 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200225_231905_459166_FB33D860 X-CRM114-Status: GOOD ( 16.94 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [40.107.7.80 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Peng Fan , f.fainelli@gmail.com, viresh.kumar@linaro.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com, andre.przywara@arm.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Peng Fan Take arm,smc-id as the 1st arg, and protocol id as the 2nd arg when issuing SMC/HVC. Since we need protocol id, so add this parameter to scmi_chan_info, then smc transport driver could directly use it. There is no Rx, only Tx because of smc/hvc not support Rx. Signed-off-by: Peng Fan --- drivers/firmware/arm_scmi/Makefile | 2 +- drivers/firmware/arm_scmi/common.h | 3 + drivers/firmware/arm_scmi/driver.c | 2 + drivers/firmware/arm_scmi/smc.c | 146 +++++++++++++++++++++++++++++++++++++ 4 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 drivers/firmware/arm_scmi/smc.c diff --git a/drivers/firmware/arm_scmi/Makefile b/drivers/firmware/arm_scmi/Makefile index 6694d0d908d6..6b1b0d6c6d0e 100644 --- a/drivers/firmware/arm_scmi/Makefile +++ b/drivers/firmware/arm_scmi/Makefile @@ -2,6 +2,6 @@ obj-y = scmi-bus.o scmi-driver.o scmi-protocols.o scmi-transport.o scmi-bus-y = bus.o scmi-driver-y = driver.o -scmi-transport-y = mailbox.o shmem.o +scmi-transport-y = mailbox.o shmem.o smc.o scmi-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o obj-$(CONFIG_ARM_SCMI_POWER_DOMAIN) += scmi_pm_domain.o diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index 5ac06469b01c..8cf330809e9e 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -162,11 +162,13 @@ int scmi_base_protocol_init(struct scmi_handle *h); * channel * @handle: Pointer to SCMI entity handle * @transport_info: Transport layer related information + * @prot_id: The id of the protocol that will use this channel */ struct scmi_chan_info { struct device *dev; struct scmi_handle *handle; void *transport_info; + int prot_id; }; /** @@ -210,6 +212,7 @@ struct scmi_desc { }; extern const struct scmi_desc scmi_mailbox_desc; +extern const struct scmi_desc scmi_smc_desc; void scmi_rx_callback(struct scmi_chan_info *cinfo, u32 msg_hdr); void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id); diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index dbec767222e9..3715aecd0fc1 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -606,6 +606,7 @@ static int scmi_chan_setup(struct scmi_info *info, struct device *dev, return ret; } + cinfo->prot_id = prot_id; cinfo->handle = &info->handle; return 0; } @@ -827,6 +828,7 @@ ATTRIBUTE_GROUPS(versions); /* Each compatible listed below must have descriptor associated with it */ static const struct of_device_id scmi_of_match[] = { { .compatible = "arm,scmi", .data = &scmi_mailbox_desc }, + { .compatible = "arm,scmi-smc", .data = &scmi_smc_desc}, { /* Sentinel */ }, }; diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c new file mode 100644 index 000000000000..58d5f44fa77b --- /dev/null +++ b/drivers/firmware/arm_scmi/smc.c @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * System Control and Management Interface (SCMI) Message SMC/HVC + * Transport driver + * + * Copyright 2020 NXP + */ + +#include +#include +#include +#include +#include +#include + +#include "common.h" + +/** + * struct scmi_smc - Structure representing a SCMI smc transport + * + * @cinfo: SCMI channel info + * @shmem: Transmit/Receive shared memory area + * @func_id: smc/hvc call function id + */ + +struct scmi_smc { + struct scmi_chan_info *cinfo; + struct scmi_shared_mem __iomem *shmem; + u32 func_id; +}; + +static bool smc_chan_available(struct device *dev, int idx) +{ + return true; +} + +static int smc_chan_setup(struct scmi_chan_info *cinfo, struct device *dev, + bool tx) +{ + struct device *cdev = cinfo->dev; + struct scmi_smc *scmi_info; + resource_size_t size; + struct resource res; + struct device_node *np; + u32 func_id; + int ret; + + if (!tx) + return -ENODEV; + + scmi_info = devm_kzalloc(dev, sizeof(*scmi_info), GFP_KERNEL); + if (!scmi_info) + return -ENOMEM; + + np = of_parse_phandle(cdev->of_node, "shmem", 0); + if (!np) + np = of_parse_phandle(dev->of_node, "shmem", 0); + ret = of_address_to_resource(np, 0, &res); + of_node_put(np); + if (ret) { + dev_err(cdev, "failed to get SCMI Tx shared memory\n"); + return ret; + } + + size = resource_size(&res); + scmi_info->shmem = devm_ioremap(dev, res.start, size); + if (!scmi_info->shmem) { + dev_err(dev, "failed to ioremap SCMI Tx shared memory\n"); + return -EADDRNOTAVAIL; + } + + ret = of_property_read_u32(dev->of_node, "arm,smc-id", &func_id); + if (ret < 0) + return ret; + + scmi_info->func_id = func_id; + scmi_info->cinfo = cinfo; + cinfo->transport_info = scmi_info; + + return 0; +} + +static int smc_chan_free(int id, void *p, void *data) +{ + struct scmi_chan_info *cinfo = p; + struct scmi_smc *scmi_info = cinfo->transport_info; + + cinfo->transport_info = NULL; + scmi_info->cinfo = NULL; + + scmi_free_channel(cinfo, data, id); + + return 0; +} + +static int smc_send_message(struct scmi_chan_info *cinfo, + struct scmi_xfer *xfer) +{ + struct scmi_smc *scmi_info = cinfo->transport_info; + struct arm_smccc_res res; + + shmem_tx_prepare(scmi_info->shmem, xfer); + + arm_smccc_1_1_invoke(scmi_info->func_id, cinfo->prot_id, 0, 0, 0, + 0, 0, 0, &res); + scmi_rx_callback(scmi_info->cinfo, shmem_read_header(scmi_info->shmem)); + + return res.a0; +} + +static void smc_mark_txdone(struct scmi_chan_info *cinfo, int ret) +{ +} + +static void smc_fetch_response(struct scmi_chan_info *cinfo, + struct scmi_xfer *xfer) +{ + struct scmi_smc *scmi_info = cinfo->transport_info; + + shmem_fetch_response(scmi_info->shmem, xfer); +} + +static bool +smc_poll_done(struct scmi_chan_info *cinfo, struct scmi_xfer *xfer) +{ + struct scmi_smc *scmi_info = cinfo->transport_info; + + return shmem_poll_done(scmi_info->shmem, xfer); +} + +static struct scmi_transport_ops scmi_smc_ops = { + .chan_available = smc_chan_available, + .chan_setup = smc_chan_setup, + .chan_free = smc_chan_free, + .send_message = smc_send_message, + .mark_txdone = smc_mark_txdone, + .fetch_response = smc_fetch_response, + .poll_done = smc_poll_done, +}; + +const struct scmi_desc scmi_smc_desc = { + .ops = &scmi_smc_ops, + .max_rx_timeout_ms = 30, + .max_msg = 1, + .max_msg_size = 128, +};