From patchwork Tue Jan 11 03:33:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709462 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD924C433F5 for ; Tue, 11 Jan 2022 03:34:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238787AbiAKDec (ORCPT ); Mon, 10 Jan 2022 22:34:32 -0500 Received: from mail-eopbgr60057.outbound.protection.outlook.com ([40.107.6.57]:51701 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S233987AbiAKDec (ORCPT ); Mon, 10 Jan 2022 22:34:32 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=exQEhkE4sH+IZTpH9wDrfvlVtuHOuvfeJ1yYjOBlyy6Qfees4PjOKyE63kek/DZus//R2Gk6aO4YfKtVlhQsvbVTo9SgSfwYiMDqvAfVlHxampFliNxds+DhMKD1uHP/KFNESmKzGBry1JUipQxLBFCJfEvxDIBX3OxQx2BrY9M2ynrH0e4eDlTlwd/Lv8a4QVU5HCFTUR0FLuH6Q6mSLuAwMPVDrjtjTEYdTaKup6l1h5j2pNJPHx9ukEccM4OJck9G3HF/Qbwgk3zxZsO5pe1MQ2VeymYnvtjE8hCyJ4IZCitLK4Fm+OMN0o1obCKt3j7up7L09yoruc9zfn+36Q== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gfnUAKDE2hrELYIGop5msd+aUYhMqloWVurJ4vqeHIc=; b=FijBrMXvem+g7SOfVs9Guy9rVf8K0e67dZ/MVu66cmT+nyE4JX8qd8IclOa58gtafjnCu5yJ2dH8gwIOCIvPCLOsIMlf7upTrnOYAsMwvlZYjrbDopfNrFgk2Qs6oisRk5wVNmkVvybn/snqWMoIjiWJidcC/oIQ4Gffnw9IzBEuYEwdFbUzgadF9Ru7MeN6Z/IHL+kiddyK73upD8Q95ziiag/ufMBQagFC41kAyqz4Sf4BeNtlxG7oYwg9S3cd+R/p4oC+M26pcmmZKDoUCGGZ46wv65tEM9rJkhN9HJVwYJm1VwTZ8mKq2NWGyjxK1Yaz/Ey5tdFP2Fnr8qDyIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gfnUAKDE2hrELYIGop5msd+aUYhMqloWVurJ4vqeHIc=; b=KtFZD/4eQ0RyUJjiCfDA423mLlwuYK8Xd45c9+H48ImHvXU2FLSOaYhuSrWuF9LLRKF+eQ1x67izn/3T54mjI78KoyHaYgVipVLllRRMaILxu6pYygmqJ4Qiqlei5zxMr+Kmgj3PKNLTct9DzybhmvBxu1UBBLj02FmPxfMmSME= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8725.eurprd04.prod.outlook.com (2603:10a6:10:2dc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Tue, 11 Jan 2022 03:34:29 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:34:29 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH V2] remoteproc: imx_rproc: use imx specific hook for find_loaded_rsc_table Date: Tue, 11 Jan 2022 11:33:22 +0800 Message-Id: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fcb265ff-210e-4224-d332-08d9d4b34636 X-MS-TrafficTypeDiagnostic: DU2PR04MB8725:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1850; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vLcRoN/7gc3N/LS5tcQhSMqIfxiULACbVFwzK1mULRiYEHeJIjFG2sxVm3PY/Cs8aneYvTotFr6xCqyLZxnZRydARl4voisO+bNAQDUart+M2rp7CSWxvvzlDq9paLZHGiDyABwlDT9hXgCH2dAg7BPPsTgfrX/j6WFZIdw1XKNa2PB3V/gvN0SwJCIBEIqJaLi24knF5MuznI3RYXTxHBGxypQ1GY+KtFAsKbWOXhzMmvSojxFj4LiEx5oeR5biQIOFHf4oEJ4bxK8oSTxtjLg+tMXuJVji4Ky3T8k/ArGG6vwTNsqJb4fFQAcqTDy/Q/0Asn9HYEzR0YJOdkTXJnMvaoW7A/8KeXpdCtWR3KUE0zWUg3sh4+bxHfQYw5/+0vd7IJG2txe0YSwsmJmPJrckWkqyNLSepSBy7bdyPd2kvPn9JB+8v5xhXWXAOHBFfj1oOCdQPn3NHvJY2ccSN43nljokw7nH2KeigEbGuGmmEhgt++KUuu4BrCIUrArQLlPJuI466ZJ2EZ0G3e1ONDX84mWieilnMmYof9NJr0yfqY6FyCBOWQJvi7Phm/tDlrb8xcvwC4+M18GAWxJ9l9QvCM5M29tPg2ColJJf6cg5W2ofFQJvdYqaTVwOtQS5a4tOY04ZHvoPKhB/F2+/tWy777Ep+Hwuyy31/pyv5znazkzeyQekI4sD1unNxpc4Uuch0kuT6satOtIb2sxH+289EBQme39BoWdpmwgaQ6s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52116002)(6506007)(38100700002)(38350700002)(186003)(508600001)(921005)(2906002)(8936002)(26005)(8676002)(6486002)(5660300002)(6512007)(1076003)(316002)(6666004)(2616005)(66946007)(66556008)(66476007)(86362001)(83380400001)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LNMu98fRSo81OxfBxvpGveKtDb0XZjXTh+Qqw07Po/CTj9dM/k+6gJ8+PErSKv3PfJ19fbz3+NsA5FJtgI1jwhwfcR3XUGSsr488d7NA9k8pqlq3Gv1DkqlzwdZMPBZkua7z0OoAr8cox9TGNfPeZeP5XSZItLRYO0oHORqUi0YErSTAErkrWkYFHd6PZNd/D4rUFONyqDOno4zuP3fUzQgnvy+Jq8dJQFxszeSaUexKF/fStTrttqQ/ZUA+fQfvLU5aaI0pU9+gzfNTn1/eYvi1EQ22OsbNNbdjV6hQxyOqBFAqNyddtcVmkW8mw38idrPl5gOHqFvYLBH2658XXbb7UImeu8FVnmcUcKR0+2VPmwDpJ+Xs/f7SwW3wHIY/H3pwho8sBtgdjTCMbtdXXn/JfSl3VjXpQQyycmlyTc6c85a6fDu3EgIfvpYudXSetsi5CpubH2+0+xKx69mzsa7DMtYmjHIp+XcZrrJjqP2pFz6EwG2hC3SO5LBujxvUNbpdW7NC+YXZoRlSLcut0yMnlDa9i3Aw3YdqHopyfqFskVfrKtG7nMVX1+w/VnsNR8r8ZEm/duw7dgOfKHBPKEzuYUoWtsrh76rJHieqCiu9Illf21/0w0iWLiE7YDvRt7zmoRu3WKRzUh2neZx7huj5InvNvkbodpNlcz+BhTCtEj8WkWbYUiFiTK3dwUcYWLb8xLfYHMmqKivDHRrmEs7HYiWcShc1I4sMY728gFKBSmw5BM4eG9wxYeF7FMMhSdcUPGcDP4uAzhj/nvoowJ/ts1o9JtBp/6aO8bzp3e3tyJEEz3uFR7+XqNrbTeDw1Z/RZS+jpjWwjF2gPf6NMRlG6yZ67fyVqC58dgc3gQja6Oww2uqPOrdeM7eUmrycsQyFUxZYZFFYEpAQ4Lmfnpc/FBsixof8DwG9Dy+xOcOzk4BKyGcW//nvQ3NSIWgsEgiTifT5R1WLH5GzC8jKTpjWUya4dq/gNuJvA83bTsBM4gm9Nylz38HY4i5u+vwo0AfGwm0cj1ffkZ4PCmsMeUBE9lVDYnh6zcDLuPFOW2NEdY9ll51HzFkl1uwVkFdqLyexoIrJvQNqpIFwHPvC6jftwgeT1B/qyQRuENeT+EQNcdKF7FRXsQ60hcwmu5YFzYz+DyH15bbM5KTi8gT9YXVZLuyrVRcJ9bv0F0pAAelw9cQzdHmRUEgXXZhvg75biYmRd1pqCsT34dtCHC3Tp9WOUcC43CGqRKo8X/nRw4HyoxMXawc9BBPIo9m4d0m1qm50ZmUsD7WNS8Jz1OUB0kDQPBZ6Y9R/NKXya5AVstXXDIDmtYifb2ufd79qWC7XbcZw7++55NmTTYbm3RGYFr4rMLGHk6t2GCoqOCThO0HnKkNWJ5zZMAu3e+tERWGEbA2pIJhp5f9yPsq/1wbh4ruGEBlzVH6v75e8496xQtlsnLo42plHwWVDzDhLg5ckGpMN1ZvnDTjxyaDTnsQ9Xd7YSXBazrjPnOkK6PUmyA8+yAsurGORnFFdOMGfErj0aaK4Vua8woCXtnEJaTsPmId6jryW0Jhy/iVDnbhVXRnbJHaNKPrLmZe73vujQ/xHLPraSiwHIXYdvfiHsQ1NhMM8+xxs+08CVXMbzXIWmyM= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcb265ff-210e-4224-d332-08d9d4b34636 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:34:29.3274 (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: InDe/aNC+dzXGRlkNM5d1Yul/1sgRmqlKR95EXPP1OC/ABOPDaDH5yOZ4U3Lpmkfw2JI+1uHVgo4fyxHUtuC7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8725 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan If there is a resource table device tree node, use the address as the resource table address, otherwise use the address(where .resource_table section loaded) inside the Cortex-M elf file. And there is an update in NXP SDK that Resource Domain Control(RDC) enabled to protect TCM, linux not able to write the TCM space when updating resource table status and cause kernel dump. So use the address from device tree could avoid kernel dump. Note: NXP M4 SDK not check resource table update, so it does not matter use whether resource table address specified in elf file or in device tree. But to reflect the fact that if people specific resource table address in device tree, it means people are aware and going to use it, not the address specified in elf file. Signed-off-by: Peng Fan --- V2: Update commit message drivers/remoteproc/imx_rproc.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 7a096f1891e6..0bd24c937a73 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -499,6 +499,17 @@ static struct resource_table *imx_rproc_get_loaded_rsc_table(struct rproc *rproc return (struct resource_table *)priv->rsc_table; } +static struct resource_table * +imx_rproc_elf_find_loaded_rsc_table(struct rproc *rproc, const struct firmware *fw) +{ + struct imx_rproc *priv = rproc->priv; + + if (priv->rsc_table) + return (struct resource_table *)priv->rsc_table; + + return rproc_elf_find_loaded_rsc_table(rproc, fw); +} + static const struct rproc_ops imx_rproc_ops = { .prepare = imx_rproc_prepare, .attach = imx_rproc_attach, @@ -508,7 +519,7 @@ static const struct rproc_ops imx_rproc_ops = { .da_to_va = imx_rproc_da_to_va, .load = rproc_elf_load_segments, .parse_fw = imx_rproc_parse_fw, - .find_loaded_rsc_table = rproc_elf_find_loaded_rsc_table, + .find_loaded_rsc_table = imx_rproc_elf_find_loaded_rsc_table, .get_loaded_rsc_table = imx_rproc_get_loaded_rsc_table, .sanity_check = rproc_elf_sanity_check, .get_boot_addr = rproc_elf_get_boot_addr, From patchwork Tue Jan 11 03:33:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709472 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F5B8C433EF for ; Tue, 11 Jan 2022 03:36:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347566AbiAKDgf (ORCPT ); Mon, 10 Jan 2022 22:36:35 -0500 Received: from mail-eopbgr60070.outbound.protection.outlook.com ([40.107.6.70]:22111 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347304AbiAKDeq (ORCPT ); Mon, 10 Jan 2022 22:34:46 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FOvt9PRvRZgw7VIdm4t5HykhsS46/uNxA4EtqIuJ5pbyT7fFGoj7kCabn9j84U07y5MHtLoc2rXtc/KmPi6GpyNM4Fx0NciGCkI5jjSZVgCvsJRmZjts2OyVX2lKoF0n62cvsCI4HGroP3eRoMrCHfxUpbcsZUJmlvob7KhBcrkovA351jLC2RxnUf3AeSai9N5mpO9sMndp2rxayCyrtDKMHbPD+ehmZsuQh9tgGzM9yHBS+FOUrheI2moR6F0q4k5obruQ4il8hFLmcnMWD6O1PToCys6B5rtLon7KUaWziDwt2hgEh3GLrxyXRcmCimdWLnux+HsVeaiDYSPvpQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=J+8oCB1Za4EQ4lk52XcHlIqdRQhJlOoncBUkPQUsqQY=; b=iz1VTwwOgLAfFHZQxHh5hBEEjCBdXDVFAZPG0rJAwVdvfncmgUx7yaForlnOYcb0I6mgU2PhRkfwivBNUIHh5tcpK++gkUBKAv2MoZMNAL3jcSULnzoLkwGeYHc0bfwsv2+9jgUEBNeIEoemi6qbMw3c0XxcG1CWCuSPtfXS9sPho1QLAt0J7GYwxABjfbvZ65JDTpVlNPwa2mEtOU6TVKUnOzv5GNrbh8+i3g3txZYE33YSMhBizzJtDvCSN7OP5R94GzmhTPxRN47+64BqMnMER/E7nKNDcvaTBmu0/mHgvN0CxZHCvcFRFOJDo6FOh0C3nIYa+/gLFTtOuHsHxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J+8oCB1Za4EQ4lk52XcHlIqdRQhJlOoncBUkPQUsqQY=; b=OrR2NRdANzDEwnDM+tz/aPG/BozRpyBt862MNO/zE1eAwFaVhDpKRM4dWH3vRTcQL2e11HtyxyzSalRpmnbbPV357Vu+mALHcAbakA+YCy7bps9kniW9tU/L/ITXin9mPpCKI9fB7TNROoiAQ4Ba9PFH8/qEd6J81g+dJ27MPIQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8725.eurprd04.prod.outlook.com (2603:10a6:10:2dc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Tue, 11 Jan 2022 03:34:44 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:34:44 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 2/9] dt-bindings: remoteproc: imx_rproc: support i.MX8QM Date: Tue, 11 Jan 2022 11:33:26 +0800 Message-Id: <20220111033333.403448-5-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9654970f-36ca-43c1-e050-08d9d4b34f33 X-MS-TrafficTypeDiagnostic: DU2PR04MB8725:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9vbzQXCiHiH0t3JgSduzWZ7Gg0IBm7wSmSWqA5jNPWAj6o+ojO/M605dJ6iCnKrPSxJRUN/ftCkSs9ixbpLaWlw+gFPKKn5gKxM6Qf8GgzLW5/1Ms7B8fSdZBS5XpfQ2b0sfrYW4IMUX6ae5ipTMIK3zbKIluQx6pVp5icqnyE93G8fPxp1ELTfhYdc4KTuFZUOiyhnaKtOO7Bzym0dkgAuv1emA3JGbHXnR8vHpCIn7VnlTU0BfGEHd7zrBnNrTQqFtrY3HD9Lv/l9HfBE/H239h/aJiT2s7jXtNn0rgDpVzzOydilTXvl4E9nQ4o/6n63NtpD3O1XLBm9WHb/VBbmgCVQGVti4dp2dFGFp3xZIa7tplFelAliNJinQLqR9Rwz9YycR/Jr92xTcB4DnysoshggMCCfhhMuAVzBdnD7aFyPpR18rcVqmNOD2xEvuC9VZzQGZ/j0QRiQMHQX0jbXMt+LbRwfed/5lDAqleY7L2CvYS99kQITpnMxKAEYWCa6cveT45AaS/l1vY+j+D667JfZiJWWyyOY94ordRRvetjxgdwzgaf3yBbIjNRDLI2s0au71PWCjUt3MJlX3+tVdTv8aH7wgGjj8NMxB4OPIx1BvCEy47AFsp3GebjgzoLUg0lG5D8KQLKXd4aXgp3G8ynDRKPd8VuCGJqN+tuGjjbDLWJK6bvOQVghIXkMVe/u1Z6O6ieVDNWLI23xz9W6RG2fSki7D5BwH/Pkxczw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52116002)(6506007)(38100700002)(38350700002)(186003)(508600001)(921005)(2906002)(8936002)(26005)(8676002)(6486002)(5660300002)(6512007)(1076003)(4744005)(316002)(6666004)(2616005)(66946007)(66556008)(66476007)(86362001)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cwfgDhc1tls6NKe2WGiEZ8Yzh4m4NXsio4pae9CTrhe2dA/QVHItE16F4AlzbnJCZc07xa7hK+9waMV8mAu6ELFejtdadwMvTcGBOlsJghO2NG2GX/CxYPmN0pkBCVt8jM81RViIwXrICpNM9R0mK+xTgJvQm0JAJE6ipIdpl/m+Y9UKqO3W9p22Ij/MIhMZy5ujMeuZq+JuxTBppIjC/ZQAoWoPLDDrOaBF806SWQcpUSeAnEAbMyYbuYggpDmJJyjI2UkHmAStFaf4tKBfCrYn1BuD8m49MVUPig+mjjrhPrHtUWsK8eYh/WxOQ/NAAvt4WIKVnMWLbpAgyk1CUfUN98JqRjkL7eqC1O+IKU5fXtGjx3QUbAC3gI7qOllQ2GRtt5eDw+/yAaPkAJHHZuJtfdZer77jBCUXvLF4BTqWFaWCjvF44/QXpM70Y6uzpwRPM9E5CFuliFyb6rZ6dTVZR5Nnv2vd0MKzI70UWmOu4VebNsqmg/hayyRUhc3b2b8x6ck5U9uMooelPk8hV9SQeF+9aYocu4iwBK+ZBQ5e0fyFkZwr8K2VUuh6DiEwBDIYy8Nw/hjgxBExnd/L+/g2Mx1tv9G/NYUhB+FV9C4oXGkPCjQ1nWUR1nRbrCLDM80qePXyVnmPD1LojSvza2owStzQaku3nWVPU9faJq6QJTnsSKxxsuhWL59CLBciRddgZYuwbt1rRv5QgptofLSS3Ys7UDUXm1I8/oA+0eh2cn0bZt8LZN2VeyCahRltvlGJ9nDPVyvrASvJrzixB694RvDB5kjIDYvPQnG88BpfNgcmgdKJt7+rQ8XVAmeMDL3sP8WdSeBOrzUah9qSN/9pY08gsJ477eniYF4WUja1r5xGEK6TDgZNjkfCDTta11QRGIu45PuRsPhOmofTH5pJYux9mWz4ZOCQ75j0rp4uWXEj/8p5LbepjFuWoZJuLvT0mmRmbvLW2QSK06VM/mZDkfLlMAG+m3O7vGIfasuv/BFxZz4GIpnnSFXrKuwTpaKGaNQpiAZgnNPpNkSHGfox0BVfp0CrgYCnUDVp83a/eYxhewkGPwCyK9Lli2WTtcSb8A+7uHRJ3y0ZQBRFkLHR8PecOIxFKjKwaiH1fYKZPwtNWd2Kcg2iUVdgve8C9tg5kvFlzCf7jjj3ikqaSvPGFWqa+1stzzN0XrL8qq6Edt3273tWUGGahFj/whmzNNQng2U/Adz1M1HPPAS81wORFchAjDgQytgxs4pTWu1TFcDZ7oj5NhOG3Ar0mP+MpTJqT1hjANm0vdf7J0+dLuYesDfRo2puv0UzRGbzG4tvoIUwNPqLuIQX2A0Wk/srT8MxlEMigjnTykk4t1TrMjg81txxeMd0FNqg7HG50Hqj4n5S73ZODL0HDaSz4cifHbHN6uh9TQrb5m9q3h6ducg95st8ow1SubCM0p/F98P1c/8vzA6pv3gvK0YJF/VMTgF8BcZdLny/vF2hOv5h7q5cIvWDaoFUs6cz/WBax0CDHq+qfB+7yxsZwDz1EEr7OfKo8SZkWqrIfazOL17ZGhchQwzMokYuUVaTWHnrcEU3gRKb0rAWcz7EHEi7zbw1nW+z/ai+RXFzjLmcJ36rnvBD7h6cvCnLgni8Zm0pKFw= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9654970f-36ca-43c1-e050-08d9d4b34f33 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:34:44.5482 (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: Zdqd8TYtS+OApAn/XObgY4S851WrtFIz9AwYQ+F1kCMkRqok65+DOZPObTQWFtrcM+CVb8tuXy3/luPxQ30rzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8725 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan Add i.MX8QM compatible There are two general purpose M4, so add reg property to indicate the id. Signed-off-by: Peng Fan --- .../devicetree/bindings/remoteproc/fsl,imx-rproc.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml index ed1bcb3046a9..cd9dcb63b176 100644 --- a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml +++ b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml @@ -20,6 +20,7 @@ properties: - fsl,imx8mn-cm7 - fsl,imx8mp-cm7 - fsl,imx8qxp-cm4 + - fsl,imx8qm-cm4 - fsl,imx8ulp-cm33 - fsl,imx7d-cm4 - fsl,imx7ulp-cm4 @@ -63,6 +64,9 @@ properties: power-domains: maxItems: 8 + reg: + maxItems: 1 + rsrc-id: description: This property is to specify the resource id of the remote processor in SoC From patchwork Tue Jan 11 03:33:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709465 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E7242C433EF for ; Tue, 11 Jan 2022 03:36:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347213AbiAKDgH (ORCPT ); Mon, 10 Jan 2022 22:36:07 -0500 Received: from mail-eopbgr60056.outbound.protection.outlook.com ([40.107.6.56]:54782 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347355AbiAKDeu (ORCPT ); Mon, 10 Jan 2022 22:34:50 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fsb7A7vE4I8+43l4EU6Mq6xVO7LnH/+qOvfTA5upRtp1YwXJcO8On91lFc5B0ecnab/b8Y4najSUTSmcQxS8yX8IR9OBwKjgxSmTAjFVYCBrzZ9BwbsDUka95t7if1EoI/fQI+g1wsyK4fQn9j9iB5Gn6dRpn8r+b5lKYU4zNwzJLBTUc+YMvbOPtS4aD2dvqREPRn+Q6GC2eQxldUBTVv3QtIiE0YNqqBukXnALQ2aH5CCOlAt0rMA+5lvr7vHwYvz+qb68/KMwhM648r9KeCii4e6dkNiFO6X/cwEHqEBgPxG0CZIxeabCi8ifXtUZnnLLJEwcHNRDdTNzciWb0g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Da6kLuIGU1u4oHl1NOQN1CNX40Xzl9HRwpazX8ouviw=; b=amCc8CmEeOiBnkUlbRu54PRRHEwDVXccGPfQgy0BC4Ajm77LFMCMmOsG+QQLj7+K0t6uig67c8Tq5+yw+GS7UMcm0bx1r/sVF6YtbyO3s43zCtz9Ndyy9YeubpGRbHN9CXopJzDTdT/Qn2Cbh8GcGwN5qmLmkFRKDIN07hGnWzV7rhktYzgjv73Nv9KBA/FBmeBstLA3zVvbeReO89HI7JfitQzYhI5FM+aSBIk3+HbM4lOcGzx9rJNanh4yFAZUu+IXgBUs+27k6Sjws/A70GtYCHaQeCLYRvOe7PbvB5X2X3YjXKL8QR5JNGsOArIW3f7g1R4g++4ZyCobgqYf5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Da6kLuIGU1u4oHl1NOQN1CNX40Xzl9HRwpazX8ouviw=; b=UYDogBnpkEhy1DXDFQXWKvn1XDi1ThZK/9u6EdRaqMyA4pkYQTXyvdwOg8nN2OAW/CFDZW51dQMkZb13m8IU2kw1RIwzyWKqEmb7YWQos2AtVmygQj7nWoSiYw867fXE8GwK0h6L6JUj2WnMMHrFaocajA6JGIWXKBDDd696ynE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8725.eurprd04.prod.outlook.com (2603:10a6:10:2dc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Tue, 11 Jan 2022 03:34:48 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:34:48 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 3/9] remoteproc: support self recovery after rproc crash Date: Tue, 11 Jan 2022 11:33:27 +0800 Message-Id: <20220111033333.403448-6-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7a9186f3-04c0-4100-671c-08d9d4b35158 X-MS-TrafficTypeDiagnostic: DU2PR04MB8725:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d+iz9UyX190wiBqEtqGkbS5HOR9Z+wlOzknGgT2H0WhBHey+VWGduDIVJWoT6NvFBvoyHwTTDE4fC2QuMJEQjOJHRBOWZsLg0cXgMuv5SkDzrFwyYfBjEU6IDzSn67T5ZYysNHGstAy9lLxT/2r3ISxYWCIYrtiirJT39rRta4idN1VxrP3x45yZVu6N17HgiWR2NNOJDiJ1WxHRbCqyrVpdXEm1lJfN2kcIoTrsYIowoaPIwvprPfEuj4NChsFwgir5yYC2g+GQd4jHnM3fmOt+vPXMX6EMLuhKPTXXhtEM1EgdIqxSOS5QxwEH2q2NBIMu+RKErZLXSzv9sNDUIfrG2IBiA/zZVlD2ONMrsiF+rhrL5qp+hO6EC5UrAxg23x92aPtxkPz0NgcGGdLAdMNZyDAhYEqft1G7opN70FMBHtHntHwK860gYLcrKyzu6yOnaTUYOEg3xsBRdpB7engNuHyFfi5sO7sRYq/4nxXGkSVO89gNIdpJyRza//OAonBAlkHAR7XyGOK0lnjOwRusXs70gP0RNrycMR7gIqHcoOZKQ/pOLtuBwVyX93kXOEBTlHpOPRepixTsNrQhgu0iG+aGsoGePCcIg2firtiyxjWVgc4Zs0oiQdjC7L9rEL3CNRgaCTcJjFI25I8g0jYvMO6hHIs001PG6QN/uAJCLpvozjr06S74SCGEgerfXqhtshdj474aiZHaoWJ664ehHa7cwNhH+UrkjHtaNRY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52116002)(6506007)(38100700002)(38350700002)(186003)(508600001)(921005)(2906002)(8936002)(26005)(8676002)(6486002)(5660300002)(6512007)(1076003)(316002)(6666004)(2616005)(66946007)(66556008)(66476007)(86362001)(83380400001)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NbPf8dYgLSropYDcYY2GqvruHgRIK1GmKvSfLgPNmkdqB5m2vrUnmsW2HGI4eyII9N2Sp8i1IUHXx6BSAvwRpmTKnkp3WyqvsMcfUMybQmUa5ehR4mpSiP1QOAkzwy9JyxuOa8CLXWY/WqR6HCmW+5DDYzM/NQ2oXGN86ec4RhRtJK2354fQ/ezA1AStr0uvoNmvG5qCZeKhNX1K5Uj1dniSoVXCFUfjH0maZ195y4gsCTltxAXFv+ObvbF/fWKGdYxvhFnsygJUGmA04JWogMM/c0mWwKhzu6YqqiZOyEp0OK8CUGCqL/e4DHGLftDPBaXM9ZsqFUoGygy2yNDr5/LOYvINVBZeLCl2bRdrmE+PeXI8t135S/LzR52JxX1fvenu1kzXAuJqG4BK92S/K1jAyOy3UTpm4jCz1eG2b2Hgo8g6KnAjaLQ67UB/ItzvWcVUx4CmWUPCiDau9jvRLTzW8ppZ6H417xeAkY8jn7aEK2EZtjWIzumuH8Um6uzD2GoSP1D8TnVziDzJlZK9qdh7E04llQppm1mXmZRHZTL0Yo9cWf7bcwDts4hLeW0Hk+sYNvbmZSEqmwhfqW42Xr6x2jRbF01OfIICi5mUr4fBw32iyG4FUi0AkVy7uwYvUzHmBaIB6CJf5DlvTG1A4Via6oU5nfovREBlb0M67PC0N58V5ckmM+/GvvK/7Hj8OhxqMNNjmkwXFP1LNlNZXCEBlEoFz7ycBMzbzQRwEanoc6SPm+S9b2qloU3TjM/2XPqK+XJtJS6ni1NAd/WC//3OUs651iQB1S2krhSYJ6bY+SMBgtPKaHnL/fzHkqtqE//SKpfY1ae/FyZyitzPqPohcfxRjWSMx/BgLCS3KSABwvc4cYxTSsPV8nu+WAU5ZvCZ4X9fyn7+HsKQRKkqkhO//BY+VMm5i3buoL84iuuwWH5nUDm8we/K8t5tPDCRhsw0DFayStJ6IVM+XuoMTqxYl8GnP+CgCTWb4zFQQB/th0or3ADIFKZYhSzSod+sBQ1pg7OO+JDiIB5WC1os9mWRVHth2og4y2UHowKkYwa5k9u614Dk9mrObq4TtZtsZFLHcdzT8rV78+PSBGZZtkySSYY5n9Rz9VqpWzgs1cyu1UU9E7GwgW7BIGN4NqsWKeVgSuS8/fyiiuAkBcn9W8jFEItHHsO8hDzstq/QyEJfQ5X6WM1Y7niMfJ6eMQFpu3YJqHeiCElmSktTf+IKV6SKhb37lm5d5gAI+fAllzFBJTVfhpe49psNpaIDjafDi09XvOGf+IMTY/E/+2cAEv0+fCxtiRSaMZcx/CAETAe5toNCNP3R05pxir8R98jvN0KAEAPB17dek8+JgTTcnugCM/XmY2CufkOwnX0AhWDhD3NrpQ+oTc7l9KvBovxnSoCH8Ghu6bAAftdussDa6r8wn+YTozwhyvsM/9OTiwWdDzGm8oRZ3KPZYpbrDQga8GdmB6Co+kJ6Vn0mjeJEMMKnexwXiDbWHBauJEeUOhiRW2ur8QYfbTdVGHaqXcl5AU6aWJP8DOgJQyWtc8lyRw8ynl9rV/cA2ZR57Y69cnSbAM4AxMEuDJKb+Cs+6X6/kjUHsyahbaDFpvGslsd5lG0nmUyAqaq01iEmwGT5XuY= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a9186f3-04c0-4100-671c-08d9d4b35158 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:34:48.0180 (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: 1qYh3BMymiZCU7sOVxmxRJz5DvGSSG+RdvmF8j9fcGWBL1E4Y1PqD3S7FWu42Kve2obrdL9bX+b5kzfjTudJ8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8725 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan Current logic only support main processor to stop/start the remote processor after rproc crash. However to SoC, such as i.MX8QM/QXP, the remote processor could do self recovery after crash and trigger watchdog reboot. It does not need main processor to load image, stop/start M4 core. This patch add a new flag to indicate whether the SoC has self recovery capability. And introduce two functions: rproc_self_recovery, rproc_assisted_recovery for the two cases. Assisted recovery is as before, let main processor to help recovery, while self recovery is recover itself withou help. To self recovery, we only do detach and attach. Signed-off-by: Peng Fan --- drivers/remoteproc/remoteproc_core.c | 66 ++++++++++++++++++++-------- include/linux/remoteproc.h | 2 + 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index 69f51acf235e..4bd5544dab8f 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -1887,6 +1887,49 @@ static int __rproc_detach(struct rproc *rproc) return 0; } +static int rproc_self_recovery(struct rproc *rproc) +{ + int ret; + + mutex_unlock(&rproc->lock); + ret = rproc_detach(rproc); + mutex_lock(&rproc->lock); + if (ret) + return ret; + + if (atomic_inc_return(&rproc->power) > 1) + return 0; + return rproc_attach(rproc); +} + +static int rproc_assisted_recovery(struct rproc *rproc) +{ + const struct firmware *firmware_p; + struct device *dev = &rproc->dev; + int ret; + + ret = rproc_stop(rproc, true); + if (ret) + return ret; + + /* generate coredump */ + rproc->ops->coredump(rproc); + + /* load firmware */ + ret = request_firmware(&firmware_p, rproc->firmware, dev); + if (ret < 0) { + dev_err(dev, "request_firmware failed: %d\n", ret); + return ret; + } + + /* boot the remote processor up again */ + ret = rproc_start(rproc, firmware_p); + + release_firmware(firmware_p); + + return ret; +} + /** * rproc_trigger_recovery() - recover a remoteproc * @rproc: the remote processor @@ -1901,7 +1944,6 @@ static int __rproc_detach(struct rproc *rproc) */ int rproc_trigger_recovery(struct rproc *rproc) { - const struct firmware *firmware_p; struct device *dev = &rproc->dev; int ret; @@ -1915,24 +1957,10 @@ int rproc_trigger_recovery(struct rproc *rproc) dev_err(dev, "recovering %s\n", rproc->name); - ret = rproc_stop(rproc, true); - if (ret) - goto unlock_mutex; - - /* generate coredump */ - rproc->ops->coredump(rproc); - - /* load firmware */ - ret = request_firmware(&firmware_p, rproc->firmware, dev); - if (ret < 0) { - dev_err(dev, "request_firmware failed: %d\n", ret); - goto unlock_mutex; - } - - /* boot the remote processor up again */ - ret = rproc_start(rproc, firmware_p); - - release_firmware(firmware_p); + if (rproc->self_recovery) + ret = rproc_self_recovery(rproc); + else + ret = rproc_assisted_recovery(rproc); unlock_mutex: mutex_unlock(&rproc->lock); diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index e0600e1e5c17..b32ef46f8aa4 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -529,6 +529,7 @@ struct rproc_dump_segment { * @elf_machine: firmware ELF machine * @cdev: character device of the rproc * @cdev_put_on_release: flag to indicate if remoteproc should be shutdown on @char_dev release + * @self_recovery: flag to indicate if remoteproc support self recovery */ struct rproc { struct list_head node; @@ -568,6 +569,7 @@ struct rproc { u16 elf_machine; struct cdev cdev; bool cdev_put_on_release; + bool self_recovery; }; /** From patchwork Tue Jan 11 03:33:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709466 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2FBBFC4332F for ; Tue, 11 Jan 2022 03:36:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347241AbiAKDgI (ORCPT ); Mon, 10 Jan 2022 22:36:08 -0500 Received: from mail-eopbgr60080.outbound.protection.outlook.com ([40.107.6.80]:13799 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347400AbiAKDex (ORCPT ); Mon, 10 Jan 2022 22:34:53 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dstE9/9gebhxhgXoRfqUionfQPANloKS1H33h+Ic24IkYEQ4Hrp/NBQWQsdCUQbIxQxodX1TTzfOxAqIzBRCFvoD7vxB5bmu7CKw17oq9vPueBsdjVlSdicJOgcBkHDOrYjYpp6JXVhLxEPIPk/qel/PVfKqdO2vkzhlFEDtJ32r8vlYPinEcOneivhfAE3AvIneDlsoh5n8m4FVa0yozlFCnKccfimoiGTxdwCaHvm6g8ilaXOTHJU/V8aN0wnwdYUrKc05KUYmzs9DxeWJ20g+RVhSKIK13ciXx9qOFy7+N3HNa9nevc0J8AwigZ7cWlRS4RrCKGt1xT3MNCekQQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rW990QU0UXEpb7bfVob1NrGOsD3DOdtKxo5hUVIajiM=; b=oZ9Yo6PyN094rseHUFOKhBCU3tfSETue6PS0FCaEKsySN9P1F+ZJQxsWJ59JqeEICYdeig4xW3EE4Wg7WP+sfLPY7DbC8uqCqyVKfidgHZyAa9aNmFwx4ObodyIg31c6jYLDGGsv7j/YVW27lFH+5XozSQL39Cb8yOuibsp/u+OSUCN24cpiUa483G6Hyh2y4zBfpRW6ig7NR0c1O7afexTQzdmqL99zCo39R1ArOkArhKstnMUKzERC/CnLnon0Qf/VU2OBGLPa6TL2BeqtH/2M+B/iOKXpWT/xjiRqYb93xM48wR/Hk4DqBV7qwDfwGZwWICVQdu72Du4fKCcAlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rW990QU0UXEpb7bfVob1NrGOsD3DOdtKxo5hUVIajiM=; b=T2L0h6M40tjsPoDwW3Kg6YCHGZp1zVFEN99EoJSaGcu/LnFTzGw6gb+Tu9ucu5dh8lhnV5Fj0L72tWL2ERDapUQswXuV7Wh/N8LC7DQ//9V9j//SF5uRHdAVzKx6BEMRoU+7/vfqz535VpyRISagpsZGUnxmCYzQ9HyWnAel7OI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8725.eurprd04.prod.outlook.com (2603:10a6:10:2dc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Tue, 11 Jan 2022 03:34:51 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:34:51 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 4/9] remoteproc: imx_rproc: ignore create mem entry for resource table Date: Tue, 11 Jan 2022 11:33:28 +0800 Message-Id: <20220111033333.403448-7-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 723206f0-220d-4dfe-00ff-08d9d4b3536c X-MS-TrafficTypeDiagnostic: DU2PR04MB8725:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1RKYw3VlxB4GaOO4OrgTO6RBxefKtkI53U6IKUsxuq6uB44OrRZSNPg07JnViaDJyKIQUJ84buYchDZc5fwp2GNzKR0y0Fh58jqiu2ABsDJA7eCnFPgNqTwTDNvxjMdwo968vUKM/nuZogoSC8eY+IHXAEtHS7dpYRgSARPFj5xw8vMYuS2LDS7Bmio22x+ZTCGY0pWFu1bZNBoox/JAcqtJM1mqwzVulWU4t3YncJ7Y2t6jg6f5mFR31jCVwG+GfUznYANVZgBpnrWKe8T9zTje175ExPdN1bWGI0+24GFTMHItWl5AER3WsTBXm6YUxwlrlee8Gjo6t+IslAOr53I8dSN48bcLZOiWq7xze8tkQ6QvECL0eVCe+GMWZrfzZXemoaOAb5FdDhaxnKS1FfNivKFtHYsWlHda4B9cnDwIeb7OpZQtoFNtFPFvLFB6K2487/u5YsFGlfbikWoxKP1hH2wdE8b0muy7U3uYITd4wPzZt6s6hCD/LjLUEZaU4Q2Rj9n15t0dczGdNOgu+63yNOuHrohgNc6Fa5QsNTNTV/Jj2OTbLk5vVRNrB0c/wXU84wn31pcnfHVvZiMBQbVLFOSfWk4Ikl9rKxkRJjI338CM0lBV8+asNe68aeGs/nJU3s5Mp7sIH3B/xogq5LHe7KjBKxkX78Bz5cLJcXtJ0i8JP8OqPgrvbM5H7vhw0Bpy7Djiu54v+oqzh/tgOpyFCkRvDyO3PjjdKd8UHJI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52116002)(6506007)(38100700002)(38350700002)(186003)(508600001)(921005)(2906002)(8936002)(26005)(8676002)(6486002)(5660300002)(6512007)(1076003)(4744005)(316002)(6666004)(2616005)(66946007)(66556008)(66476007)(86362001)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mOQDu9XECQzSX1zUlaNz2UnKrNVgZMRgCowJ47l/UNvClUFXQN6whFpAfXd6JWQvfRHVRvqSvMcdYBpz+a7Fzt096+JJb5JNNOAULjY4ti8EvImuoaSUj1eZbepFY2Krja0A64tkXiHJthHXw8yrY6yH2QA6qkmTZS9htTkaEdVvXTYCSEgW6nC7rGqovC4igsAgqVTaPIKuM62whSUFHy/hoCAFaRDK6VJZiNRtSbTzusCNCFIxmqZ79OzZP1ZFRqswll5htVXOM172/QQMhIsOAYS9kawWewKrpkqLvyE3nYYgXZHe8UGc3bAJjgEVwc36marRZaFHAUuabIgStvgPzCyDpVfj0p6zuPdUUnYrtusnWHBHKSgmAB3YX5ctSFY6AwlzQvQ1cnFI8hgaTiV/+I9l/gno0OlnBMoAbWT8XbTVo5TQkYLR3s4svNsiA2srOxBjdxBi/swxowiFjzoChK/H7P2erMqNEbuAM7sKgdmq4/C4cjAs/1oWtGxRz6GnkTXs6qIdj3oe5ko4861vU7SuBHIvC7M7IA8KYq+3LZH8NnnGglZDstgxpZOX479vUuxRY090gLdQZiNyJTokEnKq+kvDTkq9rHTKOa9RpNxq7+cE9uAYHr6La8M7UziRyRrlZBuIBXPLvuMl57NLZzm1GpEwGRholvn+HwMDojbt2/OifGqg3+t66SFuEmX5/NTqVNFCurIClkDONmcUfsaXWe29OpSeLtaJozTSASuSXlkDP7hw9S3obECT2WWdXQfDOALB1DTddhQ0Mgxb23lAkLkche2SvkE/tz1VbKlwsEXiHv7gjslGOk4r4DjgiOUKIAgG6QYRW5Vy9pRYtSFXSV/ua+7qnKCECgqc2XdB7ch9A5xUt9Q/yp2jCko9g2upIViRacicnNU96Ef4EBeuu0QSpEhW20EFo2AZY4jl64iIsKRaFykRUvdequ2z2XxTmvZQgUENL2IWHnrPG1juEp1bbApXp/HCl+K3B/VN7vnJknl6eYJ0z7s/4gLpF18whrG5eXpEv3B6Z5DZkYZ3iK8/Fawz0BVuHA0M6vjb9a7FVqX68VxXGbln7NnvRcWo1w7odRU++SRzbOs1a0BfSpBtm/Hu7RJU+MGsmEZnJQOs139vDs0p/f1i6n9g2nue8TMvMxd/DRI+TwMFeUGX0sVLVgMCdp9swEnF9bQcJzCzo7ZDBw3aacDDGtFaRKhRLOGDv4xTMCIBVsM9gNYVBJqy9lp6pT43VbzJoHnHgM3WBpJ5/Fy8ohSnBKulhpaufrCWWNYIECViYBgpZeUg18QrSHH4hbomTkBMMb3FvZrxmxmFUqSeEOJMdR+7F0Q78yxg9kIU+q0ut+/AeKQRy/Gtmwo5fr8AE+fJ9nd79SPakWp9mLRtF0R19WwwjqufrxAO1aOg6LMnSD0Q/2+SByj8Lflvp3ntTZBbv/x79gM9UXoEcRjgzy48ofVuZaiFXxeGEzXFEqkooSCEnkUcvqLDpo/hQFg3BJoKdhibMFb4+qnu1+KMMSOa3QQFCvys9/qrfMP7PA7JNLo8/MSSBMXwKvmQcHAOhlasFXII3Y9VySPH614zT14AlJ1faUTIag14RxgwHovxVlE32ScUaDXHXB8SejKfql4= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 723206f0-220d-4dfe-00ff-08d9d4b3536c X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:34:51.6269 (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: d8EgvjFa8RuIbQYM26KuTUsB0Wgx/0YXTJVa+RZbIdQtmedGeeFoQQrpQ2f7m8FdBP8JwG5jJi0QZ+JNcHINhA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8725 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan resource table will not be used for memory allocation, no need to create rproc mem entry. Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 75fde16f80a4..7b2578177ea8 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -423,6 +423,9 @@ static int imx_rproc_prepare(struct rproc *rproc) if (!strcmp(it.node->name, "vdev0buffer")) continue; + if (!strncmp(it.node->name, "rsc-table", strlen("rsc-table"))) + continue; + rmem = of_reserved_mem_lookup(it.node); if (!rmem) { dev_err(priv->dev, "unable to acquire memory-region\n"); From patchwork Tue Jan 11 03:33:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709467 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 988BEC433FE for ; Tue, 11 Jan 2022 03:36:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347234AbiAKDgK (ORCPT ); Mon, 10 Jan 2022 22:36:10 -0500 Received: from mail-eopbgr60046.outbound.protection.outlook.com ([40.107.6.46]:39431 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347460AbiAKDe5 (ORCPT ); Mon, 10 Jan 2022 22:34:57 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YctBc2UUizrASyt48QrKpD4jPqf+DLM5dpfL1rubYQarYPG7ob0F/TIHn+J12AWMSofHaI7d5gC3A3MWX7JQIRKTL163QdwYjA2WfYfq0PB4+CCoZ9cXqijvn3JUzRS1m0rO7eJsSMm0FrFOpFtGbTPE/dQlu1a/USl2MvLuW+nYfxiF/yRpd6ybFQ/DyzhMRc/DRvDzVx3a+wT6akw97PLvdhGsROsMBBTNg7oFzITihfOxEVj7ZomlOwq7rxpY0GgRkV8zVVW/ZdOZtt7haDb9F+dYOnS9tUdRx1/5gDvOhmjUdGj5WA2bAB++8ez3xucV2565fxU8APMCKzOuSA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6KkYVNVmejMvRcvJ3CaCgXo79GP41ktOGAMUzPddqSM=; b=Nl08+MYxSEzkXe+HjiCulqmL6CUshzo9t/pDAuhRBfiK4AwIwlwyH+aH6+HzUm5XlkB4vpSKM4GAhsBiMu5OomcpbXsbYhCkpzPzaMSnDD1nxIo2NvNr1/po3rqTKPjJLkl+5p8QiZ8R1encF5WMWo5d/BPqGQs0HdmwRI7BGbjUl1FJhmqbLGAdllJDJxY1SIn/TFwOusgf/PMLZK8m+ePgbZ+X9xgU4bLjD2/tRcHerPv79DOO3AGsp0y1ymPT14GNrLOvSIJtswQD4hB9UNlVxVQ+mwRkN6vRwAKNkH7bpNwp4f6S7xLXMyeRzWm1JwgewPimuQA7tED7r1Z6Rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6KkYVNVmejMvRcvJ3CaCgXo79GP41ktOGAMUzPddqSM=; b=bjfAiWCfug/wLQAwBeZkg4JzOHD7MtV/556LP4ScZ+EB7aoZcfWIn+7t1VaPieYya/Uh9cL6IxuU9nUAScwPhLxmsE0CiCCV4S38zVKdQLuZ7CaxOKVWPLygLLTXmsXRDoyKEIZgKtZqK6wcGjYvusxPuXC0ZLdnxSGskXyXJ04= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8725.eurprd04.prod.outlook.com (2603:10a6:10:2dc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Tue, 11 Jan 2022 03:34:55 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:34:55 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 5/9] remoteproc: imx_rproc: make clk optional Date: Tue, 11 Jan 2022 11:33:29 +0800 Message-Id: <20220111033333.403448-8-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 40d8ffc4-459f-4b50-11dc-08d9d4b35595 X-MS-TrafficTypeDiagnostic: DU2PR04MB8725:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:561; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U/ZA9sYHAX0jRwHL5bwkEI/p1turxMD21oRGOm7LnePTHEHZIe/ZYvXegxOl0MgtwB9yb/wSKRV0Db//ht7W7rUwdgQSsgy1XBVMtKE1e/CukBtNcQYwI18YLkGwkgqGPr4lqrd0iSzf8PjaF7egZkcixgBEdV+ITt4Brxe4aNSTf84RCvVAgvY9I5EDBr3h6CX19X+WqMeIJS52RgJQwWqIcoBGvSAk/wY/MsFA9EwZK2vk7txSsnqovjwXjj+ihi06ZkTLwHN9Fa6qKb7GmeurJnEKBJqgQuTlC2QTPJlkSjlWHAj/WuUw3ScdjbUUuqRwdiKa9zY4hGlWk2C6iMzACwZd0664GQShNsDtvWIcSedt47WCEnRRJm4QYu0cwxL4N/u0+soU4u0njNyFGXNdXZmuZ0twsUaDL3Kn8+DJ9hN6x7xnUKMxzvsbvZ5ioSFI+lkGOI3FeWTHuWU5TNe1YksmdB4a0XgSgPdPC64EDlPC3cOClU1enc83Fewdf5z0Tr18pXYIq97ndS0E4eK6Uy+FTVjQyRI8JjYSnQJc5O/5d2wD/haIrMcBPXHL4LC7ogJGnBIVzzyJvStycwBxh8iWSh0j5QI10tLCo97vgYqjp04RD8b7xtbPXsHPniaYndQc3g5Yw4XQI2gr0LkKg1ASHKiwTCI3c+Y8fkIF5KhKvPq3Q9TP5auJEV0GtxHqri6W87ToUFPzkJQLaNO0BgWBLAl0mXbYND41Hdk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52116002)(6506007)(38100700002)(38350700002)(186003)(508600001)(921005)(2906002)(8936002)(26005)(8676002)(6486002)(5660300002)(6512007)(1076003)(316002)(6666004)(2616005)(66946007)(66556008)(66476007)(86362001)(83380400001)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4ZZYNu02juIlo88T7x04GY18QNPGcS4E65A4qFM5HRx33lVMXfwgc7xWioZtEPgN9z0+77dtgb271UIG8LK5ZT+tS2hYEN+LMgz7Rr0otEMBYTii5o1fOC3dt42XNwvvfqp7SUZ+rozoDvwoms45KNSputx5mjFwNyW98LvuJmAywpfOOvsccAyDdqgVvxAgk8SSUCmzewEPzkT/IAA9oUkAykAI6oOQl+EqKaba3XJZEEEFkOQ16DKfomGgltFFdnvNARYI39oetzAtVFJDMvohdX3TJ0/lttR7fCYdTmoEtKUGGwdFwX+8ZLFc3/YAniM8RP+ukRnYVLUFizJd0XoA2Uv1mieOkwdZg/grY0wO4ConQ0JVDfTe73aLAQgyMs2H7WliXmM5LMr4oF7mcIZwdCjZakO0kiojBVY6TZSwi/xtm6nNFCgQGhjV0R3PQ/LmTTxSszs4TgrZTEkQnMdPIN35B9DrVYSzaRaunh5ze/WmrIr6PjnuA9o2/VmWpDLrzjUS6kKM1W4C1anpecURoBfxFbfjeT+tFWHjnTNPu7wPuU/lQjdmk9EPLN1S+auCCNrPl4FsLZ2g64KkcdRlWIWk1k+jzvKXx6WmU3XYv46vrCG3D3vWwCbOElu3hjGjKsQWn/jXB8PR8DDpH7cJr8jF+U77m8F5jgf07tbmQoOSg+Sh1qKiXOxp3y+REDf4G9vwuduepjVnxoquguOOn6L/WSqR+nWyb3apWksQLCg6mrx7zXaBnOBVa6vmffygBNmYcUkdGLZLsWjyfOoClvBZLLanXjo9ezKr/DljgCWeJOmqz+lxZ1wKl3pvv8Mjmnl0jWyNKsxx0ZEo/ihmC1HeX9VN150s8BIWte3Nzwx77vdrMyWnjLam67R3gjrmYG9lIngQh9gYe/xhpXaAO396+wjj/6HeQv4CfuKR3nau/yE3dydDBkdhpMSYPKP+h1leWX5ytk6GpsgCRcevurD5tWwGtv2v39tFDpCEgN2W/zSw1BrmNvRU1ngRCta+285l1i3i8EkMjidcKrZDs9BKs/iPd0t5Io8zRVtlvogP77r4Xx29k8n1VjCdEpJ7giLGy3CA9X8l8nXrGc6zAakwteU53TzLpHtnmUh67hwKLnm8XnqcHsHv3T6S+g0fzylBDPcidx7+27ZJ9xEhCOV6o34E4vZAKaE9VbAgeSMi9qbq4SWJSo8BrbzGCbAu2Y4zUUg1M3BVxpt4tl5NPwmHNwqTahEd2IvJUwRw7YEUspirPKe+SWtFrYoxnsAsobT0GEzXO2izUax04I8C7AaXfW3VAxlZx1ecBUoYtAF5k9+G8cBspoySz6iHMijOy/t4eJzjpvDRZoEsxfs1AfmfT+eiVn0AWNXVzy4iFI8yY9S9WBIK0ZeEEtt6TNybKDOmgAEBgTBXIKle61gCZEHWs1TUNR4gLqDVcSpjFw2WWp/4zRmPGPjPQk2hEn8eN3lxg3bIJH5DkOn6735Sc4JT6dPgHKROPUtaPQclLd5TJqzHogddX2lRupT1q8KSOYxGLZvW4rUP4PKU2frnMDnP6mF9tr5pLs8O0xax4HurPA5X1AUVHU77YV9ZAeKG4uOk7xRl/P4ftaTucKkTghM0d5zPve0+lWO7BxU= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40d8ffc4-459f-4b50-11dc-08d9d4b35595 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:34:55.2684 (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: m71DS2BYrjnb5ftlqW4p2BRwxmaqbyK33ym/cGzGHry1aGjEoF/wiRoRp5hCC+AA8VmG0iTisCN/zoAzjt8E9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8725 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan To i.MX8QXP/QM/ULP and i.MX7ULP, Mcore maybe out of control of Linux. And in such case, no need clk, so make clk optional with has_clk. Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 7b2578177ea8..0e99a3ca6fbc 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -89,6 +89,7 @@ struct imx_rproc { struct work_struct rproc_work; struct workqueue_struct *workqueue; void __iomem *rsc_table; + bool has_clk; }; static const struct imx_rproc_att imx_rproc_att_imx8mn[] = { @@ -724,6 +725,9 @@ static int imx_rproc_clk_enable(struct imx_rproc *priv) if (dcfg->method == IMX_RPROC_NONE) return 0; + if (!priv->has_clk) + return 0; + priv->clk = devm_clk_get(dev, NULL); if (IS_ERR(priv->clk)) { dev_err(dev, "Failed to get clock\n"); @@ -768,6 +772,7 @@ static int imx_rproc_probe(struct platform_device *pdev) priv->rproc = rproc; priv->dcfg = dcfg; priv->dev = dev; + priv->has_clk = true; dev_set_drvdata(dev, rproc); priv->workqueue = create_workqueue(dev_name(dev)); From patchwork Tue Jan 11 03:33:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709468 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3EBCAC433EF for ; Tue, 11 Jan 2022 03:36:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347230AbiAKDgK (ORCPT ); Mon, 10 Jan 2022 22:36:10 -0500 Received: from mail-eopbgr60071.outbound.protection.outlook.com ([40.107.6.71]:57732 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347496AbiAKDfA (ORCPT ); Mon, 10 Jan 2022 22:35:00 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NOrJSz4skjb7TzNCp7rsxYHn80XhWFKV36OKyn8NcsuCmtAvkLZCqsKtBpxNtAOODrKGM5XrYmggPrCCJn5IzYK/iNE7iZlPCwnN/G6YfaOSagd5pveyM2+n+c8JxOwCqyrw8ZbMiZE5upU1zAVanZNhXYRjsXXar6wBA2ecgite703+VFJtix920UhXnOIpWaIlhIDfer4S4mLTIFBc6zeKGaDNvXM88Dy5cZhUu6E5z9F2hYOjNHJXXq52eENIAuYwaMl9ft7aO9583IvpXTyTTZ0pT0Xl8t/R3jLpFR65gQrs2cOTijvWK6QiXG6L794o8Nr7ZqdVnQwuOfQAxg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PP/7/i1XXOoQxI41HcjSIQHuua8EfhEAcsiTyoT+Ny8=; b=PWysVUgOrjmEQNa/tAuuagft5mpdVFbfFIAu85m0UgkvPepV1hMtoF3nI1ghStdGLnKsKmRUicYuzkItaFANMjx4BGNOKhKqxYeACL74gaAskPheOM6PBfxzSmbQJptMv6hN5dfSahsNqm4poGyHmFD49HNS3qktU8Ha1tzL+fsWcX0C4+8IMtXFlC2CX9uasfC5G9j9W4wUgE9yBa8OygY9Zir+Wf71y/qMj4WMT1Mju14aPjavRXn6x5OWLp3JgTBZ1DTy8RcyujWlum/u2gxgn70FbIeS+7w3bXHEcTSDMrJPKmbIRW+lVXJnqdpNuM/3gxtTEs+BxfFv0We4KA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PP/7/i1XXOoQxI41HcjSIQHuua8EfhEAcsiTyoT+Ny8=; b=BLihbl2tuDjSZ0R+NEmxMgyTaAgu65t38Zr7mvghTpc6y6WPWy9uH/AMaSalWW1pldWZlt41xFK78138CcZqX0X4mztEW8Rf7APUBKLFFVqxukpHgvd1GhjaHsY0WOORq6hoIu+ED8JQNNRAf211TZRHkRPs+JkYd624A8RXP8Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8725.eurprd04.prod.outlook.com (2603:10a6:10:2dc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Tue, 11 Jan 2022 03:34:58 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:34:58 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 6/9] remoteproc: imx_rproc: support attaching to i.MX8QXP M4 Date: Tue, 11 Jan 2022 11:33:30 +0800 Message-Id: <20220111033333.403448-9-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: df8b6d64-1424-471b-545d-08d9d4b357be X-MS-TrafficTypeDiagnostic: DU2PR04MB8725:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:119; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +3urP67l09sd8JMhwVW+Vy00q+1mVfsPNeOkbIe6QcSeaVZuwFmAgmK0KPBkn8ctmoSMroQWda0clkbsNdgyfCF2m/G4h6ek4n2imnG5DF7vLynHEs406LtlpmSplk1ykvmALZDYdZT294XJB2188SeriiyMNhW2tsi11y8u9i/HmegDPLS/FGo5F+6zDynbvrh9R2/yDQ+n0DtIaovPLHF2JP3mlfZKxnnl2vf7mFzCkzEWLgxqrgHuEE6mcq3ot0qHjhU/kGWkjZ/Hro4peC9iuTYpTV6em3XYzrqk0qQVmRfO0uj6H/zzV86RCppmFQ+l/sJYaFQjm7AJfUR/UB9fA9Z3N7kuJUotwAryVFwvOriHbFff7PoG6Wpv/FMyPkWSeo/HV809MU6n2JhnUQTh6tQnRL47DLvqGm8bvCSXWu4jSYjRISFyJkKaVQlTwmX1eABmBCTcYvEWh+uIcvI032RrH0oCbCgDJGluTMlOtPvkwI7UIWc7JiPELVFULB7btH3PNb6+HWdbsHut2zL+zEJAtLXako8r/29huizVVis7GbUcoq13RGBiCCHf2FjpNjupSMjAUOoUAXddPbWWu78D5wZgEJucJHZtw1+zRJfVp3BkG/1pitELWKCCL7dwRVx4BBzF+i1Il2GYbllKK49edOA16Dv1twKw9IJmSrqmVLvcADxBR+1XwDhAF+7GUM9t8b/68wRS7ShVwxpUNBlIHdpkRYAuGXZM2GU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(52116002)(6506007)(38100700002)(38350700002)(186003)(508600001)(921005)(2906002)(8936002)(26005)(8676002)(6486002)(5660300002)(6512007)(1076003)(316002)(6666004)(2616005)(66946007)(66556008)(66476007)(86362001)(83380400001)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sls29Cu3SlphXr72HbOwPncZx/nV4YVeRa1cytvgRVxorK72pWwPFdFkom6aSMGjWYUx5LUDkzExrmBVFzCCs9a/Me+UV3bosGEY4UVFK2IC/I1zdQY1eWs1w8P7LTqgeXmmf18E2HsAEHUqn+yEupRov3qGo51GTMt3huB4tsjP75r3+7nILyJDOq1pps3AM2jtHu9VU/Z9XFUu7+QeXOQ9TRupPnC31mliI9pqltkl4iyAr+rEwuUln1R3WaFmK8ePVbrF0yUPFKWeHDBZ9HwTVAPKxfFNVOkGvXG6Gx5m3llDjhkcLKMryosMbhtwAtLnAjPYSd318nlrHidDIxfy+n7I4v82O+pCl1oHBecXvHZ2DogQBCxs8Cme+7ru56aGAbnF9R2CRx6ZRpijZVd4H9zrbeKDqiLyXXikLjQk2cIld1rmpDWmqZ2ESOPfvr0aunL/fFak/MU6psaKDAgczUbr5FPXPGpiA9BB5IL9BRehGIfWSzDq0ZVuEDMgj7ruAncuVl3mqK5Zv14ch5djUN2Fbiwem75JFYqd4DCWP+HLIkyS5iUGNcYSkTGhmY3IuL4syjZROwiEt1/P47zHP9rmV/03IngzVej1AOgUX0Hsu2NViQXTOqG+PV5AuEDi8ZA5aAzL48ys0oHFerbvfIdMDGG4AUZH9W+Pr5kHwei6MIL3RnTMCRQtEDuEJEp+DB7ba8Ea6uZpGmBl93DtyZThlRqYyEFR/FBTAu35yntgsMZAo1L/fCZ0UsxNoB+snD6ti8jqIua+GpLs7OhZpgg8drt78iJcISjQBUHZ44cU2PoA2uOGRvzwATh3hSAc0SfFF4ITQZWYYjlXIX79W6hmd0P2q0edZrIPVoPdOJGs1ETZfY6AsAonSjHtGhTV+Lk7BE2n9JQ3sMt/aMi499JTAaZEe/l9aqRWGOE48LoNglTYUnJ+CWFwiKisx0JO3QniHdoEQl0rxBO68KeFhoVAvMhBzjEmSzfOb2yjh+sUWC+RsLdTlGy4bRuZXRb8hkZ0+w1WMQPgVh3pwU3WM7FeKub6HPrUV95PXgzy7gsfsYbX00Q+rN69tGuVnmV7ATCNFLqo9frEHuBsChwcQastjTcQJcxa6atMuxCtkF2n2w5m5xi+OHpsKgo87RnNCi5N8maY+CzRyw4v6LSbUp70WTMTxEt06rHkn/D+Z2zz9gMjcbxvhNKnX1M7ubnlECijbPmiligJr5OlIE6RjqVnsJ3ErlX+nQV61B8Je29uDFmjYhxdzc3rHL1OJm9cA4BQA0YBLrmV8Q65vr37bD0cTAx7VNb8Ja3OI1A2ezJMS4SpAmzHfZYygg2yGxUkgJWWMVA5hdpfBSrGQ8Uljd0ULEzSfZJ1p/pgeOm3TnvUMp8iBlLDi34y6uzm/VpZQ/5AUMhkEpuQiuNrTk39UomsBQNj++LqVdNz57Nezs/fOv9CvtgKbvfK4tH/7pTIu5atrQunfcDa8PnBEZ81jCmnrOcMA3pXkdnFy3Ap91wCKYzhnC0j2o3Wye+Sr+vQwaFOUxxkb20xfR+leCiYbnhiW5psm8y97SOszAQZeOLINj5/rCkxpMj+cwzzgPFDoPmsyZc7YhhfOnFJ3v5tTSjR8tJxa01/bbvJtRc= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: df8b6d64-1424-471b-545d-08d9d4b357be X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:34:58.7366 (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: 7BGzl+0sDh7TRMKjqMYDYTlvuOItrOpLhXshQ+izePp28f3EYW/s89Kyq/VGKj/HymRPrjCUEdYCjME8TVeoaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8725 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan When M4 is kicked by SCFW, M4 runs in its own hardware partition, Linux could only do IPC with M4, it could not start, stop, update image. When M4 crash reboot, it could notify Linux, so Linux could prepare to reattach to M4 after M4 recovery. Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 96 ++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 0e99a3ca6fbc..5f04aea2f6a1 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -59,6 +60,8 @@ #define IMX_SIP_RPROC_STARTED 0x01 #define IMX_SIP_RPROC_STOP 0x02 +#define IMX_SC_IRQ_GROUP_REBOOTED 5 + /** * struct imx_rproc_mem - slim internal memory structure * @cpu_addr: MPU virtual address of the memory region @@ -90,6 +93,23 @@ struct imx_rproc { struct workqueue_struct *workqueue; void __iomem *rsc_table; bool has_clk; + struct imx_sc_ipc *ipc_handle; + struct notifier_block proc_nb; + u32 rproc_pt; + u32 rsrc; +}; + +static const struct imx_rproc_att imx_rproc_att_imx8qxp[] = { + /* dev addr , sys addr , size , flags */ + { 0x08000000, 0x08000000, 0x10000000, 0}, + /* TCML/U */ + { 0x1FFE0000, 0x34FE0000, 0x00040000, ATT_OWN | ATT_IOMEM }, + /* OCRAM(Low 96KB) */ + { 0x21000000, 0x00100000, 0x00018000, 0}, + /* OCRAM */ + { 0x21100000, 0x00100000, 0x00040000, 0}, + /* DDR (Data) */ + { 0x80000000, 0x80000000, 0x60000000, 0 }, }; static const struct imx_rproc_att imx_rproc_att_imx8mn[] = { @@ -236,6 +256,12 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp = { .method = IMX_RPROC_NONE, }; +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qxp = { + .att = imx_rproc_att_imx8qxp, + .att_size = ARRAY_SIZE(imx_rproc_att_imx8qxp), + .method = IMX_RPROC_SCU_API, +}; + static const struct imx_rproc_dcfg imx_rproc_cfg_imx7ulp = { .att = imx_rproc_att_imx7ulp, .att_size = ARRAY_SIZE(imx_rproc_att_imx7ulp), @@ -491,6 +517,11 @@ static int imx_rproc_attach(struct rproc *rproc) return 0; } +static int imx_rproc_detach(struct rproc *rproc) +{ + return 0; +} + static struct resource_table *imx_rproc_get_loaded_rsc_table(struct rproc *rproc, size_t *table_sz) { struct imx_rproc *priv = rproc->priv; @@ -525,6 +556,7 @@ imx_rproc_elf_find_loaded_rsc_table(struct rproc *rproc, const struct firmware * static const struct rproc_ops imx_rproc_ops = { .prepare = imx_rproc_prepare, .attach = imx_rproc_attach, + .detach = imx_rproc_detach, .start = imx_rproc_start, .stop = imx_rproc_stop, .kick = imx_rproc_kick, @@ -671,6 +703,22 @@ static void imx_rproc_free_mbox(struct rproc *rproc) mbox_free_channel(priv->rx_ch); } +static int imx_rproc_partition_notify(struct notifier_block *nb, + unsigned long event, void *group) +{ + struct imx_rproc *priv = container_of(nb, struct imx_rproc, proc_nb); + + /* Ignore other irqs */ + if (!((event & BIT(priv->rproc_pt)) && (*(u8 *)group == IMX_SC_IRQ_GROUP_REBOOTED))) + return 0; + + rproc_report_crash(priv->rproc, RPROC_WATCHDOG); + + pr_info("Patition%d reset!\n", priv->rproc_pt); + + return 0; +} + static int imx_rproc_detect_mode(struct imx_rproc *priv) { struct regmap_config config = { .name = "imx-rproc" }; @@ -680,6 +728,7 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) struct arm_smccc_res res; int ret; u32 val; + u8 pt; switch (dcfg->method) { case IMX_RPROC_NONE: @@ -690,6 +739,52 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) if (res.a0) priv->rproc->state = RPROC_DETACHED; return 0; + case IMX_RPROC_SCU_API: + ret = imx_scu_get_handle(&priv->ipc_handle); + if (ret) + return ret; + ret = of_property_read_u32(dev->of_node, "rsrc-id", &priv->rsrc); + if (ret) { + dev_err(dev, "no rsrc-id\n"); + return ret; + } + + /* + * If Mcore resource is not owned by Acore partition, It is kicked by ROM, + * and Linux could only do IPC with Mcore and nothing else. + */ + if (!imx_sc_rm_is_resource_owned(priv->ipc_handle, priv->rsrc)) { + + priv->has_clk = false; + priv->rproc->self_recovery = true; + priv->rproc->state = RPROC_DETACHED; + + /* Get partition id and enable irq in SCFW */ + ret = imx_sc_rm_get_resource_owner(priv->ipc_handle, priv->rsrc, &pt); + if (ret) { + dev_err(dev, "not able to get resource owner\n"); + return ret; + } + + priv->rproc_pt = pt; + priv->proc_nb.notifier_call = imx_rproc_partition_notify; + + ret = imx_scu_irq_register_notifier(&priv->proc_nb); + if (ret) { + dev_warn(dev, "register scu notifier failed.\n"); + return ret; + } + + ret = imx_scu_irq_group_enable(IMX_SC_IRQ_GROUP_REBOOTED, + BIT(priv->rproc_pt), true); + if (ret) { + imx_scu_irq_unregister_notifier(&priv->proc_nb); + dev_warn(dev, "Enable irq failed.\n"); + return ret; + } + } + + return 0; default: break; } @@ -847,6 +942,7 @@ static const struct of_device_id imx_rproc_of_match[] = { { .compatible = "fsl,imx8mm-cm4", .data = &imx_rproc_cfg_imx8mq }, { .compatible = "fsl,imx8mn-cm7", .data = &imx_rproc_cfg_imx8mn }, { .compatible = "fsl,imx8mp-cm7", .data = &imx_rproc_cfg_imx8mn }, + { .compatible = "fsl,imx8qxp-cm4", .data = &imx_rproc_cfg_imx8qxp }, { .compatible = "fsl,imx8ulp-cm33", .data = &imx_rproc_cfg_imx8ulp }, {}, }; From patchwork Tue Jan 11 03:33:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709469 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A326CC433F5 for ; Tue, 11 Jan 2022 03:36:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347252AbiAKDgM (ORCPT ); Mon, 10 Jan 2022 22:36:12 -0500 Received: from mail-eopbgr10072.outbound.protection.outlook.com ([40.107.1.72]:16091 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347548AbiAKDfF (ORCPT ); Mon, 10 Jan 2022 22:35:05 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AH3YCbeIWIquy8AUmetFiviZZ2QIi/XPLGiwmGPRCKQpzx3cfygyRfOYXx71a2duzUgObzRYbe+ouQMTYpNRNPUuDJngDDRknTjb4SrpBpeJvSTjwlGRtN2J1KEpxZ/UWxcuZQEbOcbdIgyi/FC72Diuki1/VHds6EVHyJBTO7Tb/7eLT4HkYqxO7o7m0ACJZVuC7uGWv44v8mYKjxgPflzKI+KRCmu+zCrPQAW/UGkVPvEJgAp7p6lWIOWvey7A0Z3dNwXdFM6Fl+sclD5299c+hc+K6/VjFyyyOX/B+1x6muwJEOMUPMzujCtc13ODhGM39nFuZfmp7x6zUJFnjQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZtpKuJAXl47t4yKty4/JdEtA7DB+EQTDkfxheBzZFjA=; b=f57CtLwLvsDqoP+CfqTT7sVAjYAzGZW6RdBcHcRMrqYgs4w6Qgv/Hg9JDqU+scDUm0uuz+W9rhhImCGxTGXxYliIC0PQagcKcsNSt6UZ3BM6mvWO5Gh2YwbytP8nA+JA4Bn6/s9vni2fcIMsq9BMxumClcDuwjFvQmQ0gDRstH39elEWEtASb6iRDTls7uY3S3NacG9PM/nsaAJ36DCuQDhxZqfS/qbCmI/gBelRbHv3riOxTtXG44VJYHMf7FbioiNDfRMgVQr0WDqItYrQaTef3tI1VyGoKM3rOGFldnaka1WxbmEMvWV7UbqdoY9KTARUnIqpe80vr8fZg/YROQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZtpKuJAXl47t4yKty4/JdEtA7DB+EQTDkfxheBzZFjA=; b=e/npsK55P30ZKkeFmL9NxfU2cTkA00Gc9XH/Du8dwj/w8I/h1DL8pIPKxTsJS9GbGYUUC8YsM45FbzMSj628+6AohqIYL29Rve1rAlor3YhtW70ZLDo0iRnsVozDIpf2g21bMvRMm37bqqC1I1gPQFNsHMcIY1qn5C4I1i2/amI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8520.eurprd04.prod.outlook.com (2603:10a6:10:2d3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.11; Tue, 11 Jan 2022 03:35:02 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:35:02 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 7/9] remoteproc: imx_rproc: support kicking Mcore from Linux for i.MX8QXP Date: Tue, 11 Jan 2022 11:33:31 +0800 Message-Id: <20220111033333.403448-10-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ba1738a7-561b-490d-13c5-08d9d4b359d2 X-MS-TrafficTypeDiagnostic: DU2PR04MB8520:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qqhNLkZ+b364GwzJWvqgplKRjX5m+9SrXws1CGBGY2kNHECB3kOypUJkFWwLGb9dq9ZweOTK3F/FybbS0IuAtd19tHi2/yr4X5AHG564677bOB7KCu0J2PyiogBIejMcePSYWgp7SwNB3XfpcBZO8/GjQjj9XBlOArluDnIcwdQ83FQp9p3v4feVeB2HhuRF3L41f+dNBjAvax5y+qyKjqm5qIiik12hG2GfTMk0tKUAm6epvH1juvJPnkEjqrh+AImaQBFt+AzBzwbk6yCK3mo8TR6VC9Iw1cNBAuXnlJ3xO2ZBhVhe2KAJsMccMeTS6joTZUAWl5JXaoaPBvFqIxdekQKXBTQkxjVHeAvBDMaQdIrYK9p7CODA7KuR76bUc6DXxQsSo7sidQWw0R+FbrgISU8FWRW5ffRmwKJ/hB7WcRr05ImRgZ+jQ1UQHUSN0b1CxeKUAgATuN01YSmMPl2m6PCTcs269av4LMfsiztPJDr3d/aUMInS+5W6wWIp1Z7FZDv//yCFMPQdXOLkeUZsFsg1r9oCEV5aMJxlj4df3DRmcpotaq3dy0YdsorMDD7iTaw3sJeHx4F7we7Mm5EMAI1l06w1Js88fEfe9X8+BbPl59AXaXsYV945J1yw3zBnrNrC8D+12UqhCbKCkZBoFiyEBrBdpswSyQ0abxDrcB4WpXTnd6Js03nsreP6E9vwPMksJ9nQ5M8Ct5iIGr8wvQ4Gv4B15/FayfGWz6E= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(2616005)(6666004)(4326008)(186003)(26005)(6486002)(2906002)(86362001)(921005)(6506007)(83380400001)(508600001)(38350700002)(52116002)(38100700002)(6512007)(66946007)(5660300002)(8676002)(1076003)(66476007)(316002)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vIU6qkQxKB56WPOlBZtBEwaRpbkZWCcp9LNLVwmS3EjOMJyY8+jbE44LARHqKgIk5klHgyQ2+tCB07BvTlM8PSX8iccDGtI7gWscyxVbfYGJuGHBfDWzY+eN4VMIwZ+v0WWlIp2mM4mimz0fOpOlbbKvaNAZ2IpVvcSgu8Nc1XZljLc84pJgXw2DRvuS5sQa03aw7tGG7/Kb9sQzIu7Hyn9auCV9aTh8gxcUNf1NJSFJrEFqEZb+4awz8o9DfveZe1VOPbEoLk/h5S5Vvy4dfb2m3q44TQkFFEJBu39VWJ5QXMcZD6K1v/Hj2OEtxv3Sy16TsOQlE10gdnlJWQOGZY2G9xO9frrFZ+ug8IZDpCEKQLuHcJin7uijbVo4sgDpBmZrhlgFioKnhJus7JAdz19ZEGpnLy/c05tKdxaI43IJSTDpGK+SqXnT+wgkofmL/X+/HN5NjHxlLAIEif/zj+w2z7amAlWlk7ynQNLZnHdJt4WrahSTzkpgfFO/IXbwAwgn8LcuSiKM+9GYqcYu+moVZZ3t7HC6PT+3vhkUSBXQDSiX4LpNEemYg0Vb8h4c6hBH3/W4Ih/JMp1doy67AmGH02iyvSrRg3R8C6NUNn4scKR1oNU4DH71Ewe2JwWs7KxK6K0IONVw5NAw68Pyxvd5hVF+luHCWzl5qTGdumpalp3ALDo1RyXpkilcEtwRE3PzwA671bvQINMoBisCS2Rw771enVBEvoNsWdu0lMBQwAXRPmfF0K8AUZwN7zZeuTc5PNHvHzS68jlEshRBRJwCoWEqNJDmVIFHLRucqf80HgHcYtaRsWJepJw2aYXlKSAVlmtvOZaD7H1HDTlGregxuKZ/3xpk8yBmkGkq3MUTTDWP3oxv1Mg65AWM6dsDnpC+crg35U4cmeRZiTLD1SwBX9yWyY+zJcg1koP/4dZhKiy7/FJQHChZSktmL6AzrsZcKxfcLU1jKljuvGoQOKpCl//CttoFQ45nDdHoqWICwC3hR58zFwrrBpj4uPmv2aH37ToRPxUG3zsJoIgIF/dhWScvktCX5t146ePMOF4IcPcy/iEI19GYaX/XcQ8V2xkNZJ3loJiSG7cKxOl1AHIxWPTdYHsO9y4M99PsAXHlyFj/0K6+e3y/eGo7h4pGo0YgaoLWvFnZmNM5ncwik5aCnZVAaY14/Z30Xf/fQNYCuElF5g2yrUz0KUluwKW5YGVQ1tOTnc77VHqY2Ctb8Ui1Ftrv/RbD9//4G1z3YWcnvpkxQX1idm+IKJ+es67C8cHwZb4U2oQcHldKi85ELHhvfc2Cp5DACKwsbi6XbALFm1o5ig+iNXX7MigDht+bAGzaWLEnnNli0CPox/RxTX3IaiV9gYmycPtMz7TFz7/R+YJaP6vGJHAnwJEWqNlOIXxBB5YIinoRgdqRPW3j2lXo0I8WKynfw4qRyTnaeTEnpBCT0TBcMpOSxP9v6nUsKY96mRLOODQvupcd38A3XTNpxfeDfVUgPH8Q66n9VneLLf6BzuAKw4qz48Bsj8qrf+OTMzOB4vN0TIUYGwjUf8O8FZvovowVCGq+EFk2ZMqMVnY/6LPZQKFU5G0JgnttNn5hug5X0sy24zGjeZPiMsT4YJY2KYdhVXHpXs6OUW0= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba1738a7-561b-490d-13c5-08d9d4b359d2 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:35:02.2216 (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: b9TbSjrPAggDZa7iunDic77ChekGzpA/wldl7q4zqSgwUbh+95e2WcVKpBVUdJLD49hhMLJucWx6AiBtJD/9Iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8520 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan When M4 is in the same hardware partition with Cortex-A, it could be start/stop by Linux. Added power domain to make sure M4 could run, it requires several power domains to work. Make clk always optional for i.MX8QXP, because SCFW handles it when power up M4 core. Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 64 +++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 5f04aea2f6a1..09d2a06e5ed6 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -97,6 +98,9 @@ struct imx_rproc { struct notifier_block proc_nb; u32 rproc_pt; u32 rsrc; + int num_pd; + struct device **pd_dev; + struct device_link **pd_dev_link; }; static const struct imx_rproc_att imx_rproc_att_imx8qxp[] = { @@ -305,6 +309,9 @@ static int imx_rproc_start(struct rproc *rproc) arm_smccc_smc(IMX_SIP_RPROC, IMX_SIP_RPROC_START, 0, 0, 0, 0, 0, 0, &res); ret = res.a0; break; + case IMX_RPROC_SCU_API: + ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, true, 0x34fe0000); + break; default: return -EOPNOTSUPP; } @@ -334,6 +341,9 @@ static int imx_rproc_stop(struct rproc *rproc) if (res.a1) dev_info(dev, "Not in wfi, force stopped\n"); break; + case IMX_RPROC_SCU_API: + ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, false, 0x34fe0000); + break; default: return -EOPNOTSUPP; } @@ -719,6 +729,56 @@ static int imx_rproc_partition_notify(struct notifier_block *nb, return 0; } +static int imx_rproc_attach_pd(struct imx_rproc *priv) +{ + struct device *dev = priv->dev; + int ret, i; + + priv->num_pd = of_count_phandle_with_args(dev->of_node, "power-domains", + "#power-domain-cells"); + if (priv->num_pd < 0) + return priv->num_pd; + + if (!priv->num_pd) + return 0; + + priv->pd_dev = devm_kmalloc_array(dev, priv->num_pd, sizeof(*priv->pd_dev), GFP_KERNEL); + if (!priv->pd_dev) + return -ENOMEM; + + priv->pd_dev_link = devm_kmalloc_array(dev, priv->num_pd, sizeof(*priv->pd_dev_link), + GFP_KERNEL); + + if (!priv->pd_dev_link) + return -ENOMEM; + + for (i = 0; i < priv->num_pd; i++) { + priv->pd_dev[i] = dev_pm_domain_attach_by_id(dev, i); + if (IS_ERR(priv->pd_dev[i])) { + ret = PTR_ERR(priv->pd_dev[i]); + goto detach_pd; + } + + priv->pd_dev_link[i] = device_link_add(dev, priv->pd_dev[i], DL_FLAG_STATELESS | + DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE); + if (!priv->pd_dev_link[i]) { + dev_pm_domain_detach(priv->pd_dev[i], false); + ret = -EINVAL; + goto detach_pd; + } + } + + return 0; + +detach_pd: + while (--i >= 0) { + device_link_del(priv->pd_dev_link[i]); + dev_pm_domain_detach(priv->pd_dev[i], false); + } + + return ret; +} + static int imx_rproc_detect_mode(struct imx_rproc *priv) { struct regmap_config config = { .name = "imx-rproc" }; @@ -749,13 +809,13 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) return ret; } + priv->has_clk = false; /* * If Mcore resource is not owned by Acore partition, It is kicked by ROM, * and Linux could only do IPC with Mcore and nothing else. */ if (!imx_sc_rm_is_resource_owned(priv->ipc_handle, priv->rsrc)) { - priv->has_clk = false; priv->rproc->self_recovery = true; priv->rproc->state = RPROC_DETACHED; @@ -782,6 +842,8 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) dev_warn(dev, "Enable irq failed.\n"); return ret; } + } else { + return imx_rproc_attach_pd(priv); } return 0; From patchwork Tue Jan 11 03:33:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709470 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33BA6C433FE for ; Tue, 11 Jan 2022 03:36:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347188AbiAKDgM (ORCPT ); Mon, 10 Jan 2022 22:36:12 -0500 Received: from mail-eopbgr10052.outbound.protection.outlook.com ([40.107.1.52]:40878 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347569AbiAKDfJ (ORCPT ); Mon, 10 Jan 2022 22:35:09 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j4l7QOU4LQEQIW7rf9izFgoA3ejKPB9fgodY9zJhW+TcapDHqKW8YuFpVftuRf68UdIMduKztLVH3xbM2zutOJUSsJJOmlr8cNrDy3p+vGtv6ksEQELjycUPUV/89yFWrrXZMT3Ah5lYHN0csBiv/lFD+EkihDMvE3k8UQCw7zHXqXbv2MluhJFuevnNfAOVs6+UZuijBh4E8bsowu5r4blIkz+aowwG1J9tuNgsrGqHyXB+rjyHwcNC1bM/d8CKKOvK7STZJ8OEjNi00toZLbg0k7cOEHKAIUZvm5uvuER7C4Jgp+fFxzkfQYRF61m8O+2GuL1LQLEHSvYKwo86VA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5tqm+O+sYiKh5yL45lMO1wcygnl9KWH+7J9khvwk+K4=; b=XFih91wl6cPGAJ7j7k7deAgjvXna7KP/jgaaL/JkqKKNijAyO8BArHqGZl8TjNrd+qEYpIHjJCZhEC/pEUdhYKOKhpAUQ819CykdoqXiW0Xiu9n4v/VierRfyk/uk1r8uHk2hVMeroGySqwTq7p+/9HQkQ+ubpvDtuePn0t4AbYYPeh/znxMy1zYRxTg2RcxFE1FBpsh7r1NhQUKZBekNaGH89fENIPeMi+HlYeBD25/ljG09FIr4HThOucko2GpI2inVFK+hHdV+SrPqwSri/Odi+a7LBRBxQ9KMKGutOE38S0u83baQsBgHmfGDE78uEzieosSocmV9uY0hPQYzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5tqm+O+sYiKh5yL45lMO1wcygnl9KWH+7J9khvwk+K4=; b=HacbhQayfHW7MjM3qsneAq9Xts4U5QrjSFzOaRPm2Dp+s1vklq1f+0TjIQcTusfYG8HK7+Tk6uMH8Fafk6ihIyIorkkgv50hJpnIoz/zGaPmF/nl2itkGyz6dBUCc6HsiKq+rGrlwJp6eEhhm2Jvbfc+3w6ZY/R+VchzhivHs4I= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8520.eurprd04.prod.outlook.com (2603:10a6:10:2d3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.11; Tue, 11 Jan 2022 03:35:05 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:35:05 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 8/9] remoteproc: imx_rproc: support i.MX8QM Date: Tue, 11 Jan 2022 11:33:32 +0800 Message-Id: <20220111033333.403448-11-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 82c9ac16-379d-487a-00b7-08d9d4b35be3 X-MS-TrafficTypeDiagnostic: DU2PR04MB8520:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FgV0tWuxF/buuiT2Y7/4ZhzEuP/UCbB0QY/Tn+0lW05LHCEQIRzuzdnWn9AmIK/FPrzspMCd80ayrbVsD/ZgdkUd+dAb1rGGo4ezqQ3AxTjzGJZmw6+m1wLYYXcdlODCitHpXPKAaNqYjlOgY+Lu2yxPaJyaRpACti5gvnCGwtIBm5y8zSrOW9p9CzQD9Bblrwe5MHgrUOmbsHHXxfESjFAZpk9QdnZXf6BGxePfsmB+56gxo+QDD+IBsjwrtZTZ6kel6Q73AkKdcguDrVFHh2lBSVc1wAF+Twsg7g7QOCLFehTCuLDnyPgtDZ7NWLPJZGXj5XpS/SeFySMCazRLghrhC+jMKHYerjvov7Gx1NJIvfYKRTEVpuvxdYnAzGUTcDcJTO12o3rT6qHs+qZ0UEmNbw2OkbV8TE+ZAke7ynT0Pke65jWUKtAfH6N5G2lBk6WGe3DDom4C7UxhMZ0MD4HzBY0eNGzWdh+2U/NEB1xvB3h8MP0M40DVNdE+HSUWroN/zW6BRdeQCGPRVhKceRk2aYPBSxCMNviE2nq+bGd3iVvURoyG2gxOcTs7nnRkGedCwGImLCqcmgmN0g7JPRQmyK75kXX9gfM5+/sBWu0T9dyAD5UH1ypJUcSBNsO27JvV2zx1bEdTnDlACX4FoesynYwC0wPDkpKaWGiB0Lo0LSgHrnG7eWE/mJJs3mPf0gpvTIZF4t0J/dmAEPWdNC9wrLlAlUMRqxTo/NlJoDo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(2616005)(6666004)(4326008)(186003)(26005)(6486002)(2906002)(86362001)(921005)(6506007)(83380400001)(508600001)(38350700002)(52116002)(38100700002)(6512007)(66946007)(5660300002)(8676002)(1076003)(66476007)(316002)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cuozP/PR9nFZoS6RFLr5fItiZ1rz5lpGb80TAzjhfLiDQb4NGD3x0dLdgukqLsR2OvFXI14DqfsoVSuTc8gvdlpPQ8xl+0o464de0uWS36LieHYI15jam7uYWHgwIGX9ITqlUPODMjxSz/S0kowqXsAXnKSDJhf+kDjPj/cEE6z/iHT/uBQQlKRdATn9iPVHvJCnB92RVL7ObSc2z9dvSx49oimpXV3BSsIbwZ8H0NSF4c4tH4e8mPuQUp5BsTOhXN44Llq1wVBod3k5iWJlyxj6OtVohV/APt48c2ssvIxTH0P2Ji2niab7WudC0jdCsuKlieiCnC5Eo3Lp7rFh9p2b7wokpX/TwkNO/1UHjeoLqVX1a58lsNrrfECjmtZkTTnYKRoMMRs/7fuFzQMW7LNZsjlCC0N10/VHEeg1eNcYSfN+mJqZYxytm7XibYtpYs68oROEOlyLNHg+tHaO+iKgEWWRInXhnf1wtWPungTtnSoZWKyPWhGBr3zGupsnuj9oWLNCTHxxOaLvSu4cL/C8cMyW7qTIp3RF1XjmKlvAl7FGpUuoq4z3Gu61mytVdYoCeFkOoSSzOeglygf1LgiQ4/Z1TRG1K2Sl9p1PeI8ALfp2gOCx2kEdAk0awd1/yXT2jP0SKBEw0ZaqmxA8J0ZtQVgMBjeBNRjqdYj+/t3R89DFBZ3z/O6chldWE5yPJmUl0oXhWILDZ5i18Hex8rxxhftUJn1UzNW5ReHd79kvado3P8ezf0ZOYVYBlVEz12hcMdTdNw4xIRJPgUL+dT21NPYJuAxucZZrkqXqMGMGQQZrrC3BlOENR6tgi2g5iIsuXEM3Lwu4cusOUvAnck253bKLYndBn11MacGbqVcId9YZo240KtheO/04QEYezLneub04wLRLHOWhpGJGarv91+RLLSIbkwxEjOjYfVgkQkAhVtgHkdMiW16s96w8GtPkL5JMdfEXiusSOXOYbd1kH+dAZOVbrVL/iG0+btkKW2F02KLOSn8xGe3Fc1QvJwgOz2L/5Z4Zsl+pE1x6hY4GpV4fhIRs1wDsYfgGvH2LK8sdMV14FagTGgd/V4T2ScXCIQhzVm4NJmBCN1WSChvw6OTirfYFKDsaywMlT7F7jmiq2RLm9zGjDdljW+0vB9UAYUGSILXxR92PmsAAKnWxFCIdu+PuxSmBGBq2BTFBxhNcO7xsPQhMovBT1z7MN5kSqkDSCYyd+iFaikvKMwMwvbcH9PwLgS3hMIa2apJi2fvAfOH/Ynx7z48TdGrldCY8x6QTYdJzk5yPyzMgdJggDIi35V1ha9nRD9UM2MjVGZ6HYiyOI+YMtjTz9xLZZ+qjXWUdl3mpussP8ifbTX86fITMWadNTVTX2kaldwsaeQ9faJgz3xCMNhbpduJ3z1lsCJB3BUGCF8Z3hjr10uPJvJ+KXB5sS86myaC9QQqthmOe1ky7GCMUQrcO/Yzn81iMPGjHJmaeuU4yk0c5xGAuK5d7rsEyiIGPgjLp6L/+rq6p2J9J21AVCe4bEubskptTnfl5wRn0A7JieuZ08qRq1UitIhN2PbajL9jYopLCLapyRoWk5OgLs+3IwVD/pik2DATwfvbTICMFNuEZXKkITpbHQgLCEQxGAdaN0zU= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82c9ac16-379d-487a-00b7-08d9d4b35be3 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:35:05.8130 (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: zc7Z0iAL+tnx8ov9hWT4PLpAwpJ53+0s2JXrnfPxwDtOxEq8KTjAL7p9I26xMf1h6r7iPZE7ARdVvJwsKSKnYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8520 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan Most logic are same as i.MX8QXP, but i.MX8QM has two general purpose M4 cores: Use the lower 16 bits specifying core, higher 16 bits for flags. The 2nd core has different start address from SCFW view Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 55 +++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 09d2a06e5ed6..7bc274fbce9f 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -77,8 +77,11 @@ struct imx_rproc_mem { /* att flags */ /* M4 own area. Can be mapped at probe */ -#define ATT_OWN BIT(1) -#define ATT_IOMEM BIT(2) +#define ATT_OWN BIT(31) +#define ATT_IOMEM BIT(30) +/* I = [0:7] */ +#define ATT_CORE_MASK 0xffff +#define ATT_CORE(I) BIT((I)) struct imx_rproc { struct device *dev; @@ -98,11 +101,25 @@ struct imx_rproc { struct notifier_block proc_nb; u32 rproc_pt; u32 rsrc; + u32 reg; int num_pd; struct device **pd_dev; struct device_link **pd_dev_link; }; +static const struct imx_rproc_att imx_rproc_att_imx8qm[] = { + /* dev addr , sys addr , size , flags */ + { 0x08000000, 0x08000000, 0x10000000, 0}, + /* TCML */ + { 0x1FFE0000, 0x34FE0000, 0x00020000, ATT_OWN | ATT_CORE(0)}, + { 0x1FFE0000, 0x38FE0000, 0x00020000, ATT_OWN | ATT_CORE(1)}, + /* TCMU */ + { 0x20000000, 0x35000000, 0x00020000, ATT_OWN | ATT_CORE(0)}, + { 0x20000000, 0x39000000, 0x00020000, ATT_OWN | ATT_CORE(1)}, + /* DDR (Data) */ + { 0x80000000, 0x80000000, 0x60000000, 0 }, +}; + static const struct imx_rproc_att imx_rproc_att_imx8qxp[] = { /* dev addr , sys addr , size , flags */ { 0x08000000, 0x08000000, 0x10000000, 0}, @@ -260,6 +277,12 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp = { .method = IMX_RPROC_NONE, }; +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qm = { + .att = imx_rproc_att_imx8qm, + .att_size = ARRAY_SIZE(imx_rproc_att_imx8qm), + .method = IMX_RPROC_SCU_API, +}; + static const struct imx_rproc_dcfg imx_rproc_cfg_imx8qxp = { .att = imx_rproc_att_imx8qxp, .att_size = ARRAY_SIZE(imx_rproc_att_imx8qxp), @@ -310,7 +333,10 @@ static int imx_rproc_start(struct rproc *rproc) ret = res.a0; break; case IMX_RPROC_SCU_API: - ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, true, 0x34fe0000); + if (priv->reg) + ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, true, 0x38fe0000); + else + ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, true, 0x34fe0000); break; default: return -EOPNOTSUPP; @@ -342,7 +368,10 @@ static int imx_rproc_stop(struct rproc *rproc) dev_info(dev, "Not in wfi, force stopped\n"); break; case IMX_RPROC_SCU_API: - ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, false, 0x34fe0000); + if (priv->reg) + ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, false, 0x38fe0000); + else + ret = imx_sc_pm_cpu_start(priv->ipc_handle, priv->rsrc, false, 0x34fe0000); break; default: return -EOPNOTSUPP; @@ -364,6 +393,11 @@ static int imx_rproc_da_to_sys(struct imx_rproc *priv, u64 da, for (i = 0; i < dcfg->att_size; i++) { const struct imx_rproc_att *att = &dcfg->att[i]; + if (att->flags & ATT_CORE_MASK) { + if (!((BIT(priv->reg)) & (att->flags & ATT_CORE_MASK))) + continue; + } + if (da >= att->da && da + len < att->da + att->size) { unsigned int offset = da - att->da; @@ -594,6 +628,11 @@ static int imx_rproc_addr_init(struct imx_rproc *priv, if (!(att->flags & ATT_OWN)) continue; + if (att->flags & ATT_CORE_MASK) { + if (!((BIT(priv->reg)) & (att->flags & ATT_CORE_MASK))) + continue; + } + if (b >= IMX_RPROC_MEM_MAX) break; @@ -809,6 +848,13 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) return ret; } + priv->reg = of_get_cpu_hwid(dev->of_node, 0); + if (priv->reg == ~0U) + priv->reg = 0; + + if (priv->reg > 1) + return -EINVAL; + priv->has_clk = false; /* * If Mcore resource is not owned by Acore partition, It is kicked by ROM, @@ -1005,6 +1051,7 @@ static const struct of_device_id imx_rproc_of_match[] = { { .compatible = "fsl,imx8mn-cm7", .data = &imx_rproc_cfg_imx8mn }, { .compatible = "fsl,imx8mp-cm7", .data = &imx_rproc_cfg_imx8mn }, { .compatible = "fsl,imx8qxp-cm4", .data = &imx_rproc_cfg_imx8qxp }, + { .compatible = "fsl,imx8qm-cm4", .data = &imx_rproc_cfg_imx8qm }, { .compatible = "fsl,imx8ulp-cm33", .data = &imx_rproc_cfg_imx8ulp }, {}, }; From patchwork Tue Jan 11 03:33:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 12709471 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADED8C433EF for ; Tue, 11 Jan 2022 03:36:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347480AbiAKDgN (ORCPT ); Mon, 10 Jan 2022 22:36:13 -0500 Received: from mail-eopbgr10077.outbound.protection.outlook.com ([40.107.1.77]:29569 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1347607AbiAKDfM (ORCPT ); Mon, 10 Jan 2022 22:35:12 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WALHYcnSXLKTUwX0gUCo66n+3wIlTtFCwU/BIScVF5ryVZyHqetwvvlJAoS8b9eHq60N44EQBtlH31bY6WhwbG+XxUy8Rz46sfnW3z5wTG9qN6wVM6GYRSCGeYEwxDYG07NDdLtY0d1OnYtrJczwsWlRClOB96O6LltpX6lNXSIJId4ZGfhkHnT+oz9tbkJQdeKXmA6Y8SjwHeVYfJjoq05zt/HbvWzB6ua0/sFGcipdwcz1tS1OhDNxKTNlTqoPJWMjGjvKU0ncccrNXDckgZGO0mW0AW24lGEyvXdzuiOY4uCS1GmzTio4xajbIr1+Ck/azg4/skvmJOX4cpOGQA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pcOpTz48qs4ernRSxlYVrzhzIYFfpYyZfkUK2xz7+g4=; b=Nn8K1acy9ik1vHUkiovMsvtWOnE/fG4SRewnwqHJMyayXD+hvyV+kdjZvSca39p3JPYeqG40uxKKUk9qdidfoGMPMrAVWJqcv9Bgxs9fzOqN7GB/F4hos99d1SndJP6O6NxeoY735t1MA4QUObojzNHkD+NjVB2L0Lquw2k0pvcPXBOaiCnJ//G5ptYU7N9Goz4oak/IT5KzYb9gCoNKi99sY1TlG5TO0GIfaDluO2y4qm903h+ovRl67ceAqLzOMmnvTClFY4DuNdYKCSspDiXwMe9AXHnVZrnpSBd9EIRaUrWkd6zzXHRBAP8RwniKUbKYalLEgLsP8pR5Bn3Ugg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pcOpTz48qs4ernRSxlYVrzhzIYFfpYyZfkUK2xz7+g4=; b=QqTwP3aoAolfErLoKVVc+WNZQsT7g2MhM31u02SY8DIhOTRmMQDHvr7lQFToC/6liEH2RExRUXHWx8gEqXnl53EBQ65XFyY5fycyznQpwl2NEQ+h6SGERWE+pqO7ldEuC1VLFI2sH+OTQXwkgZJtqwMVNKPp7oMdu8CijRt0M2Y= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU2PR04MB8520.eurprd04.prod.outlook.com (2603:10a6:10:2d3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.11; Tue, 11 Jan 2022 03:35:09 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d4dc:8c9a:55d0:81d8%3]) with mapi id 15.20.4867.011; Tue, 11 Jan 2022 03:35:09 +0000 From: "Peng Fan (OSS)" To: bjorn.andersson@linaro.org, mathieu.poirier@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Peng Fan Subject: [PATCH 9/9] remoteproc: imx_rproc: request mbox channel later Date: Tue, 11 Jan 2022 11:33:33 +0800 Message-Id: <20220111033333.403448-12-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220111033333.403448-1-peng.fan@oss.nxp.com> References: <20220111033333.403448-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0005.apcprd06.prod.outlook.com (2603:1096:4:186::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ffc85190-b2cc-4ef6-492f-08d9d4b35e07 X-MS-TrafficTypeDiagnostic: DU2PR04MB8520:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:663; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tGB569+gI8q33VWCCRgoeLUjSolEgra4OLfFWCcWdFw57FSGbkbMXNAmWAfGTti5NfSNtYuoRD3+VOVr3KLYs3tbXVwVMf1YJoJsRQqjFizUc1WdJJiFsvQ8rHbREZyRHKBmIucqD/3GnErfqGMJGR45Wql1uc0iDc73ieLKxGzSBKKL8I9tF9cWUfEy9Ofvx4qeymC2+PmsxkUuoZZypjkCWl/6cjoeF/fqbIAC4MXAqSbVE7ggZv/UmRPHkUDfythMjLhEtrHweJX50KzlD1FnM+PLRBeXQFUPpzB8+L6Tdnpy+KFiRAUJ6rn8bwTFaJOY/fha+uWRdwxE5/p+TqBrKnEXJup6MTtwnXmRah3V2aWsT6AwhlXyQmEcoMGDkpu2AyDI3ltGn7cENfpYthIExt0Lf6MJ7Ya2PeBxraAzkhocHYVOg5l9YrKo3G7Gznc3I/ITNn55ZktfPfHvNowwaJFejD6Bew/IHRpmXaoIwGaP2wJj966Nf10yV4HyfPnbbB3R2yWgDyCnZaAhCKQoHvZ1uGzLHhXEBv+6YuroHJbCzSpmKX4Ji8g/BL79RQ0GiQ91H7Uc9VJcPNreqevQuM6niODv2Au/M42lSxzvcVSHGSOqlVmrAIFjc8H1ce6nHGlSP4xfWzbSEf85usLv97ccW/LR0up7H8l/UCYTzMNRLLj5vEf9gP8+nQrJOneBjOyFYd3Dh9Zoi3FBnBg3UeywPSJFjxFwrBDoGBM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(2616005)(6666004)(4326008)(186003)(26005)(6486002)(2906002)(86362001)(921005)(6506007)(83380400001)(508600001)(38350700002)(52116002)(38100700002)(6512007)(66946007)(5660300002)(8676002)(1076003)(66476007)(316002)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XygafadAjwhsHB2aDu9KdVO82NtF9CLVJen6UdvtOT2qYma6Z/bQkpuuw9iHnozgph6DFNIPyZLbBts73u9934DKM7jPg3Sgb4LBc8Sa9LhCd9xLrFms0iBDEmMaHmb+WgRor1KO+55LCtprALjJx/hJqFPOorKnVgv/QsQJJniuYgAgfetw4n2uDKV6yfFxmywWVk0A02b82sarRd5GcCHoGOFlzjVYNovlrdnlzAjsdVapJs+MNRh9wOSM73/sQLrpmY7TjYaHP4GdBaj3SmHMT6MZkL9mhrLpuCoI4MMBO4GVFn+d2Fhdq7RHSOSpFvQ1ZVht5VXsHxAOXKMvhuS5rVJzp2cJN0QqT2h2MAenT95zYe1QIfn3bkf3T+8qNbf7dYktv2PIUEZW1G5nvdBsFJid9lzdPq0ZUkVUiRudQ15SKZPrCoDeMJVIvHHarhQDumKt/8mmeZkgUiAx7PRMw2zhiGdhCaubo68SKbeU20iuGXXsZ7zjI3jnT0ILaN3OHNKtyqa9S/LJf6PdJzPtECOICkfaCBy79LtZRfvqwLIA6Khfb67/8HFaCnNq7Kvx4MmoGsC6jZQ8+0u8mPRedrhmbAxF8K3gTmMlb03giGyGlPluVrKPrm6uk3xYGadn9bO8hwIkm8WXdEPPoICKnSUdniJLrS7JpFFLB5ICF+PvWxXGdjkVkpaokjVTqKMFg8rascQyAeEUtitWkXuFRuQgMVWLsSUMMbLFpCoRk/UKTTBYtgJJoRDPoOFQ9UcUASnJqRBNz1t6uJM7CQudDAeKSo+t5jWGY1Z6oOUzc4vNsQ1/qW50rYhTUcwsBKif5y0at2vtIQ4jm20+m3NuMGTWulph2oV4ChpIIeVeuuz0IAKzKx+PSwKoX6yefcNhC8i9ygrk4sfG3VvDMva8HmAhWkFWWZsF4IREtHsKPlBsGVYodDtupEpHAKnCfXBG/CSxdiArl3suMlf1BAGc3WnpYjzVZhgC8aWXR3c8Muf5Fyxi45pvaDfTBldtLwxHVMCvRo95y8mFlHXpd4EHZmmj35ScLbfmrZ0om75E56UnNKzhq5fTq48b68OVLmVE4SkX7/ENNFlrTDx33BMxX/j0gXFfQdMoZvJtG5uBnBy/jJ5VfECBx1YyDzz727VVsFwHYCEAoRjIuUCswbDSF+4hvoXBah7Biz3DrDk1Or6NxFYw9bufldFZMXDFwsYGWjOMidXpaEGgR58bXNOsmK0QBndDZYZB5+bi2vbu7a1hnnQM8wHCjVfLfslF80gddD1ooGqzlilWnJr/YP4wE880plfo+gY1eIbuZNK80SWi64kYUOuLuNvm6xxqhTo21cxmOsbv+Z/c0E9UP5aUiagSnFqJIrO6kmcBpx6Qk2Fszi/z+Ftn/+CG4nCcz/GqiPbj1W1lihPx1tkOg7QJSoVIySbsXEFlwEDh2YiYyjYhKv5Aj9CA9WZjFFLZ3lxeRfk+jh1Xrzn5h8ij1sXT2u1iKEzVh5ihcDuX1794fiTyaHkbfI2Tp8lnMofRKWEQD84OXXIb+l+94X2whO84I+BSyLypDodO4EtwZWebxEedMluHWVWDtclpgRs2Zd9yVOkU1ttR53z1PD8EB4NYxuV0BsoK7QLxFIm2A2g= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffc85190-b2cc-4ef6-492f-08d9d4b35e07 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2022 03:35:09.3761 (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: 7igex22r33aNPKkNpUafYraCEbLIGfKvDCxbff/9aDa8jNk87yHG+8p4b6IYO/BM45ehbTyiQv4mUIdA2B7OeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8520 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org From: Peng Fan It is possible that when remote processor crash, the communication channel will be broken with garbage value in mailbox, such as when Linux is issuing a message through mailbox, remote processor crashes, we need free & rebuild the mailbox channels to make sure no garbage value in mailbox channels. So move the request/free to start/stop for managing remote procesosr in Linux, move to attach/detach for remote processor is out of control of Linux. Signed-off-by: Peng Fan --- drivers/remoteproc/imx_rproc.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 7bc274fbce9f..079be82a334c 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -83,6 +83,9 @@ struct imx_rproc_mem { #define ATT_CORE_MASK 0xffff #define ATT_CORE(I) BIT((I)) +static int imx_rproc_xtr_mbox_init(struct rproc *rproc); +static void imx_rproc_free_mbox(struct rproc *rproc); + struct imx_rproc { struct device *dev; struct regmap *regmap; @@ -323,6 +326,10 @@ static int imx_rproc_start(struct rproc *rproc) struct arm_smccc_res res; int ret; + ret = imx_rproc_xtr_mbox_init(rproc); + if (ret) + return ret; + switch (dcfg->method) { case IMX_RPROC_MMIO: ret = regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, @@ -379,6 +386,8 @@ static int imx_rproc_stop(struct rproc *rproc) if (ret) dev_err(dev, "Failed to stop remote core\n"); + else + imx_rproc_free_mbox(rproc); return ret; } @@ -558,11 +567,12 @@ static void imx_rproc_kick(struct rproc *rproc, int vqid) static int imx_rproc_attach(struct rproc *rproc) { - return 0; + return imx_rproc_xtr_mbox_init(rproc); } static int imx_rproc_detach(struct rproc *rproc) { + imx_rproc_free_mbox(rproc); return 0; } @@ -716,6 +726,9 @@ static int imx_rproc_xtr_mbox_init(struct rproc *rproc) struct mbox_client *cl; int ret; + if (priv->tx_ch && priv->rx_ch) + return 0; + if (!of_get_property(dev->of_node, "mbox-names", NULL)) return 0; @@ -750,6 +763,8 @@ static void imx_rproc_free_mbox(struct rproc *rproc) mbox_free_channel(priv->tx_ch); mbox_free_channel(priv->rx_ch); + priv->tx_ch = NULL; + priv->rx_ch = NULL; } static int imx_rproc_partition_notify(struct notifier_block *nb, @@ -985,23 +1000,19 @@ static int imx_rproc_probe(struct platform_device *pdev) goto err_put_rproc; } - ret = imx_rproc_xtr_mbox_init(rproc); - if (ret) - goto err_put_wkq; - ret = imx_rproc_addr_init(priv, pdev); if (ret) { dev_err(dev, "failed on imx_rproc_addr_init\n"); - goto err_put_mbox; + goto err_put_wkq; } ret = imx_rproc_detect_mode(priv); if (ret) - goto err_put_mbox; + goto err_put_wkq; ret = imx_rproc_clk_enable(priv); if (ret) - goto err_put_mbox; + goto err_put_wkq; INIT_WORK(&priv->rproc_work, imx_rproc_vq_work); @@ -1018,8 +1029,6 @@ static int imx_rproc_probe(struct platform_device *pdev) err_put_clk: clk_disable_unprepare(priv->clk); -err_put_mbox: - imx_rproc_free_mbox(rproc); err_put_wkq: destroy_workqueue(priv->workqueue); err_put_rproc: @@ -1035,7 +1044,6 @@ static int imx_rproc_remove(struct platform_device *pdev) clk_disable_unprepare(priv->clk); rproc_del(rproc); - imx_rproc_free_mbox(rproc); destroy_workqueue(priv->workqueue); rproc_free(rproc);