From mboxrd@z Thu Jan 1 00:00:00 1970 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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DAB71C433EF for ; Mon, 27 Jun 2022 02:47:50 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2DBA584519; Mon, 27 Jun 2022 04:43:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Ypb2ZIWR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3269C844F2; Mon, 27 Jun 2022 04:43:30 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20065.outbound.protection.outlook.com [40.107.2.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 63041844F6 for ; Mon, 27 Jun 2022 04:43:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cw8J8QOlxlqKQtiWbkwLwGPCgguJlsDXSDShJ9XKAVpOIDash4D7LsGAm8DONRXgHKw41fliZ/+mCw752vuKjpjsCpyrYseynl02Bww8VaUKoHvOabtQXukuio5bFehlZN6Vme/5JRfkbhsbpS2UV2Ls5n1wp6+9dtZvFfDgCRMWEnkjwtkR+hbjZrxR8lkzp/SkGH5UoyNL7vSSCmZsm2NWz+ZB1BJ8/2eHpxP7fMBnUwh75+QQWA1u0MQwqMMeqiygqPwp949X64y8vaHzG18KpYQatThR9jBWLAWbdnVJjyTAcsLg+DgJ0Ut9p8n5Zn/kn7i0sAy0Yh4nMKxSBQ== 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=sHWvLqoQK9HyJk0/AQHFfIob45dfvkAWTshFwDAtC0Y=; b=K8fxeKz/C/fLj4wVOeZPYn9ajhplkoZU0RfwVYxlcGjkP/XMfNwUU5zB+Eqo/n3KzTd82Drs39FeF3EofQV4WE6/nKrgt4oAhLkODoWsUj9iVohiOk367GwipcnqYS59nln2NZdLM7H+9L+7jfST5AnhroocQ5exQCYZbj3d5SZNanS14+sHRxdfzM1HkKrBq9+ys2sHorAQPyrAFBe+T+0fsC9xqG7QN9vJG1ulUx0Na+MDjj9JpbpRTyFmepxQf3UCkmQiAQhHc9Jdf25zA2OCt2EtLRCue2IJr7bOtV8HmFq+/Uv8CgiJ5Tdm9cOIcW7+MEw0xUwJ9qOKFRVB7Q== 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=sHWvLqoQK9HyJk0/AQHFfIob45dfvkAWTshFwDAtC0Y=; b=Ypb2ZIWRx5N/v/ZAZ9a1C2uoE9ccFTm6mAZkWOmHEstrce/JRwe8wluJ9zPkkqekeUsuCZN583mcMD4w7eTibXw+kmNXCZCtBxIe6qDRi6WJL8pHdVAsF2hHYTEsIjzOUI/I15yuKD0PpzWpMvigyulP0Zy3p/vfsJ9tCiobqzA= 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 VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:25 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:25 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 33/49] imx: imx9: Add M33 release prepare function Date: Mon, 27 Jun 2022 11:24:39 +0800 Message-Id: <20220627032455.28280-34-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) 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: 9efd75c5-ecdd-495a-2544-08da57e6ceed X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: r6gPDoZAtba2JT0vzMVJSS86YKdQQjr9y7Sp+oikLULwg5ah/PGffd7JGh2OEyzurAxut6ru62u8yVDE3oxbp2KH6DR7o+pYYpyMojTlm7QkZkXrTk5LAlGpjsDU7urRQH6F1F8R8ZSogbhGy3BrF0CdmM11+490G4475QEzl0rRR5GBIgVdeFHC2HkK1m0bq7WmQsHjx2YmjOOFGOmxrE35VSLqhB8N+wkiPCIEFBuMiv+OiRTaqiIGHzza1cnIRVjg11fyH4X5ylsMX+raOIDmTZCvbnips9AgzUKZMtU6OtEd5GO/H+wdTp3OgWKGqLOYjJe+z0vyPdZaA7zB+apTuoJ8+ORkbiKBoxAaZXthlHkjvnjv/sY6tYeHrm0QagLMrKixjofSoKswoaTc7YaLDJFth/ylKGq1apMP9mxRsVYEqXgMDLaHWE+oVBzuk3SV6CJqVa0Yjl5BVe0ueAMQss0K9K+vFD9pELgk1y47nZMYQR9KTzyYSos0ZW9vasb99b2S/hl9zI06BeXwFc/Tew3cln22dZ3U19aqpXWQlEuDyAkMJrQQMWweoYxPG7KfKrDAz9kpj5ifQm7GPtWic48O1s2Zx4INJEGKc+Dq/2O33KnqOSZSo9AO5QU+clQzMaLPjFlRSEnl1tqrdqiLuin7ZLqucxNUeq0tkTOTs1QsfTj/ao0nUd1UMgf1Z9Ge6un7FKYZCTQXy54tVTWHNrv41MWd1hcwMPALWj9ldA8/1U5cfod8imZDVNHnrxfhIBtHHFT2HrJC2tPdv0pcJJNDJ5HlQ6G8dbRQW+8= 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:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VU1x2ARXhBiYjhylVmWfJqv9d/rPE4m83qdXcmA80iWhDeAq2ABQ8raxrGND?= =?us-ascii?Q?WUkF7QtRbZvxn4byVqnpG7RcG6jO3r8bdzS7GpUXkrpwd/k4VpPn5mAzto/I?= =?us-ascii?Q?rtRIeumpcYJxG9gvLds1v5iO9Qt6kgTkW8yK6YAGrRrcShQV8c+WKtj5Ww4q?= =?us-ascii?Q?z146bDABkYbQ+Ye6/nGRXuFxoWj5elfKz0uBWdk1YO4vuBIE1v50GagPUJv+?= =?us-ascii?Q?26hvDvF3wnziHohfkygWpjihBDQTC94tRPFlKzDuaUbO+k16TmkdJ4+MElG1?= =?us-ascii?Q?KNTAuIppwJZZ8qWb4HAt7veowzIroRJKB51U5eNg124rg28UZwo2FcT5oniT?= =?us-ascii?Q?Jl9Hx4BVYE/k+boyG5d1AaxzW8E1rtvJbsoM8ct7bLft2H9ZHbjFFCqFyCAv?= =?us-ascii?Q?vSI1cVMb+t07G9ItheoBvlWB7/7UNJBjjyEeMEwMM9Ydy8KtHcBAV+pMl6Vw?= =?us-ascii?Q?oetnPS2+DjYvKrmX3ICLtih11bjjBl0Sz7wPojUVJ6h3VxaZMSOwCvMFKYG9?= =?us-ascii?Q?BFb6qaT/9AIPGs79V5/C2JvZVRUbB8QFO5ry1com385oLexn84Iyq6wc+aIf?= =?us-ascii?Q?iQi88pPkIIw4lCaG8GESvSkAE/ieZdoUfuHIN2ULxeUjrhexfrl798Mtr5vB?= =?us-ascii?Q?oObrBmtm/MYoNfwP2zBz9ZOGx+r9gIqggKzQD+AeSQpoPVS3NzRLmTbgWt36?= =?us-ascii?Q?vDmjmXpSOBCJxhkMFk87fGcfSsCpGKPoqIs2kqqPj3o+xOUchbfDrhQB7TFh?= =?us-ascii?Q?BOEcYz+avwoBIifPbDtvPV4iyx9vzvuYE19C2ixXdXqB9T7vkg/L3ssgRR6o?= =?us-ascii?Q?1CUa3iqXNeyd/BRKvcCqp2oUR1xyANEigzOGv1j88RWxDFb2VAlilNhbSQo1?= =?us-ascii?Q?6AXgdLStMqar0oj9imocLjBSRoVW0J0LEOkcSn0qkmUqDyfFA71MtVu4eNNA?= =?us-ascii?Q?KDK4re3K2zwrz0w13ZI03d1Gk3nvybIycQ4IIrHDWeyhc9aHFoa9fcu8QIE0?= =?us-ascii?Q?eDMvEoCbSDL+3yQ4ZfwxpSY/P3BlQVw+ejOWujNCGQhV7dxDK58FKo1OdtR7?= =?us-ascii?Q?LiiTfgyt25waG7ykMgUO14HWKG/F7YJYq6Bt4W1v/KMeVNoQbweDRykeUwVV?= =?us-ascii?Q?5sCEZvntilKJc/gGxa5nMbrno3f38IxJN8MMdKsG04mQb7T5w0HuiU6vNYV0?= =?us-ascii?Q?n+rJXHfT2DJyGdQw5QZ/FNQwzOnYMzm41A3FWFltcW7zA+gUxHgEshIQamJB?= =?us-ascii?Q?SQrjZEv1ABwT1yaM9LSUZRyfcibY0dZSpyO9vBy5hNgk/5tmxRpegIquxCuX?= =?us-ascii?Q?IShoBoCato2YJv+maMM5f8XTSlrggtk8kidjpQLV9/9yrKgZFvIg0rWXr4gF?= =?us-ascii?Q?QRxAQz5C8HZ2OMeW85FGyi9iQ3W/NSqEvAcMOw5FJsy/QD/C2Nm+0h39z8UL?= =?us-ascii?Q?wvZieiw/TwhS0AD8jHgxDl4QuL1qX/ZmA0u2OIp24cmVNJQW5tWutkjIUhjA?= =?us-ascii?Q?So4dfl9dhsZF6V+LKfH87oc8IeDYgHUs34BLLOXtP2c2BGZHZyu8f4G3QX3D?= =?us-ascii?Q?S6LKDEOz6ufZJL5CkPzGR7ysXrZD6kGV+OkBEQ0L?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9efd75c5-ecdd-495a-2544-08da57e6ceed X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:25.3807 (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: 0ZXU1Fyen/gO7G8hUIbIWU+AEhQeuw3ASsabbHe505IY96vLCDDRoaXYWB+X4Nvfnroq/N2qUJgxSGbAy9slfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan To support on-demand booting M33 image from A core. SPL needs to follow M33 kick up sequence to release M33 firstly, then set M33 CPUWAIT signal. ATF will clear CPUWAIT to kick M33 to run. The prepare function also works around the M33 TCM ECC issue by clean the TCM. Also enable sentinel handshake and WDOG1 clock for M33 stop and reset. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/sys_proto.h | 2 + arch/arm/mach-imx/imx9/soc.c | 51 ++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/sys_proto.h b/arch/arm/include/asm/arch-imx9/sys_proto.h index 5ae7a043398..ba97f92f5ae 100644 --- a/arch/arm/include/asm/arch-imx9/sys_proto.h +++ b/arch/arm/include/asm/arch-imx9/sys_proto.h @@ -9,4 +9,6 @@ #include void soc_power_init(void); +bool m33_is_rom_kicked(void); +int m33_prepare(void); #endif diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 68f3ddd4287..2a29454d1eb 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -378,3 +379,53 @@ void soc_power_init(void) disable_isolation(); } + +static bool m33_is_rom_kicked(void) +{ + struct blk_ctrl_s_aonmix_regs *s_regs = + (struct blk_ctrl_s_aonmix_regs *)BLK_CTRL_S_ANOMIX_BASE_ADDR; + + if (!(readl(&s_regs->m33_cfg) & BIT(2))) + return true; + + return false; +} + +int m33_prepare(void) +{ + struct src_mix_slice_regs *mix_regs = + (struct src_mix_slice_regs *)(ulong)(SRC_IPS_BASE_ADDR + 0x400 * (SRC_MIX_CM33 + 1)); + struct src_general_regs *global_regs = + (struct src_general_regs *)(ulong)SRC_GLOBAL_RBASE; + struct blk_ctrl_s_aonmix_regs *s_regs = + (struct blk_ctrl_s_aonmix_regs *)BLK_CTRL_S_ANOMIX_BASE_ADDR; + u32 val; + + if (m33_is_rom_kicked()) + return -EPERM; + + /* Release reset of M33 */ + setbits_le32(&global_regs->scr, BIT(0)); + + /* Check the reset released in M33 MIX func stat */ + val = readl(&mix_regs->func_stat); + while (!(val & SRC_MIX_SLICE_FUNC_STAT_RST_STAT)) + val = readl(&mix_regs->func_stat); + + /* Release Sentinel TROUT */ + ahab_release_m33_trout(); + + /* Mask WDOG1 IRQ from A55, we use it for M33 reset */ + setbits_le32(&s_regs->ca55_irq_mask[1], BIT(6)); + + /* Turn on WDOG1 clock */ + ccm_lpcg_on(CCGR_WDG1, 1); + + /* Set sentinel LP handshake for M33 reset */ + setbits_le32(&s_regs->lp_handshake[0], BIT(6)); + + /* Clear M33 TCM for ECC */ + memset((void *)(ulong)0x201e0000, 0, 0x40000); + + return 0; +} -- 2.36.0