From patchwork Mon Jun 6 11:23:49 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: 1639211 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=PxLA3pD4; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LGqrc4RqXz9sGC for ; Mon, 6 Jun 2022 20:45:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8D940843C5; Mon, 6 Jun 2022 12:42:55 +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="PxLA3pD4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A8C7C843A9; Mon, 6 Jun 2022 12:42:42 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,SPF_HELO_PASS,T_SCC_BODY_TEXT_LINE, T_SPF_PERMERROR autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on061e.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::61e]) (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 EFCF38438E for ; Mon, 6 Jun 2022 12:42:23 +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=HY2YrM/mMf4OmAKSrtfC6RZKXpya54gKWFUX7edtcTDM4vyqysYulbcVbmlHCQF52Y5WS7Vb2mS8CzIYPbHw/PAy3AkP+bfOxaf1SG/DD6VSifOoGXNiXOhV4P46R9JuFKcxrYl5kwemDAG7HN5uzaetqh1z+7geFo1gcWaN4YlpZjRdTciBqj5geej8/hAhDgSKlcza0y5TZ7gzW9wAG0PGhJEuJ3N/6SxhXwChzLGJM+Bx8EMlEendcCevrEqtcnanoXuwyWF0AygYcZJBRxFdRA0JP8sE65CZZE1vA+aemhGPZO6PmyYN00P/f2prNVcSnkOM3FVv9AzEXWpsUQ== 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=TRkiRUfeXI340zQjJOvT1dIiKdmtG4b74+R7WUHHZ9c=; b=Emi+QhW3gShfNpiO/HZ4dlkZrNEydbneQVRQxaD6vpkEsOA7NjltabDY27HyOVdMIViZjpgYaSFcfZduPkVMggTTFRwKCoa774vcw5HKzNxTnXKEWg0fXSEtz2Da9UQzxjQmWHICpUE6pv2Oj/ARaTH7N+JV399hLAzlsA8oxFjLzcnAZjDPLWL8n1PmEzxYA1JWN3N/OuUJdyqnyk9DVEVUYiZkpC5KIW+r5k4bPSz2JVCt/m/XRrEizdd1yII3fFwSQRC1Kfw7swsAQgehS6FjDaNF8V7881SY4PrydZgwYNEgw8QQnqpRubw1uab+guiQ/A4G0FuzapVTX2mz+A== 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=TRkiRUfeXI340zQjJOvT1dIiKdmtG4b74+R7WUHHZ9c=; b=PxLA3pD4E6fVAkY33DXtzhJX+dTSYtiTtGsBVI+GS/pklFDJAWQ2bWDe98OLpNe+4UarwKNBczW+MRkOaIYvmDiTgFwHMa5HwszfLlpL/bGNW1SHDBcUcHeOv3iupPac398qlsYtwZKRSdA7KTwSd0JxIxHDUic42xLQiIa7118= 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 AS8PR04MB8312.eurprd04.prod.outlook.com (2603:10a6:20b:3f1::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Mon, 6 Jun 2022 10:42:22 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::a892:e4a9:4769:13a5]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::a892:e4a9:4769:13a5%9]) with mapi id 15.20.5314.019; Mon, 6 Jun 2022 10:42:22 +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 17/49] imx: imx9: support romapi Date: Mon, 6 Jun 2022 19:23:49 +0800 Message-Id: <20220606112421.31711-18-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220606112421.31711-1-peng.fan@oss.nxp.com> References: <20220606112421.31711-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR01CA0025.apcprd01.prod.exchangelabs.com (2603:1096:4:192::10) 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: 4f41c53d-59dc-4eb5-66f7-08da47a93cca X-MS-TrafficTypeDiagnostic: AS8PR04MB8312:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WxzrCU+HRH9ZCjEXAujlf8xUPPtThZQDtPpdKnCi+TOMuIS7IEpqQsJX5m/P4njwf7CzbnVk14G44XUC/2DkwycCS8E25SOl1cIjECmMInXMY5qoWb+dd/QPm0xxAOwgaVPbOKUL5VhWfD9/rz8bSN2V91iGuE419qY+hom/kp0ygHq0Mc/Na8DUWT4Wp8C/1Bf9Z56o61YelaZcgPoETHFSoWtfqcl/xEEvN9/l2r0UXc6v1pvyiADwUjnOwUGAqQfSu9LAbFPEEG6ov03ni1IM8rLmrhR1PRbvND0klSnLLP9iT9RdAm45T+vN8exjnP7X59fUP23UvV3ewwwDh2wR9YKM2Lv5Kz8dvqEfWQtJRzIODWfmojRvDJ5rrZrMBrGfxRypjnyPG1+esed3i3xh4VwsLJ09YgVagLDs7NKToVEW/9ni1CHd///VzyK8KxDGhHK5pLsK0VkbnyCt6ebEaThSxeGJe6gLQ6UiuS/E6XOIWB+yT94xmPu+wBKZz5iTu34rnfEOE17i6Q0D4KkppoiywEGzN0QpcKqiWXA1ys+AVk29EwhAGUNiPPYr9UEEadn5YVXJXHMszHIRBiJCY27hKnmvU9Y6lDUyV7c9RxuSXukrmzDOCwMgKLiSx7H8ghZjink6p0VJIk8t2p/q5YYS9Y7hxOvZas+v3PR8HwrVMfX9NvksBXJaW70fEq4mg6v+0buV69/b6eJraw== 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:(13230001)(4636009)(366004)(6862004)(8936002)(8676002)(38350700002)(66476007)(38100700002)(5660300002)(508600001)(6486002)(66946007)(4326008)(86362001)(2616005)(6666004)(83380400001)(2906002)(66556008)(52116002)(6506007)(186003)(6512007)(26005)(316002)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6EggVVAxG7lNmKrfDzHx98Snb3ICwG2S0wYk7NPWiiCSegKE49aFNT95xV7T/71ybF6/fGZsa8vKv28iiK1mKDsaKByOom2AyuhX//+wBESLQT+jc9vw6GDYn+PmPHeTa1V/mnmFJKNBAfZ0gcmT/Ysbmmwtr0UhPKrz/avdamgxZyhP/zDGYReZ8FQn9ThyIdlp4RebvRetIK68BC3NsJLiRNM5KJU5NvFajgxuqlEzp6eklRCOOjG2YrasxdSg+l9hgzGdeGym4+i2NNwbnRsEX3NhbvSYF9nOY0BZbj0tLWKZSmIyytgsNAbN88wYORh71oJp/M73l5TIOV6RUTi/idJXso0fYy24hjt70b2+woemzz0D5GY9KhB82/QuhKL5EUKtboDzjIIkTVBpzUEesdU+LZmudT1bok3IWAIY6njpLxhfsgCUvAy3Z27uoi+qIlDXQ1eP3ugp213ZpC04mitsUy1vbI2v6mo86y7kqbGTTer5zdGIdNweN250yHPutBim4vN/T9n0sffInP9SgCwSfCB8SVNeQOHu4Fy5ac+TEtQZmAzbRYsMWJMjvwnh1I2qb6zkNJ+j8XOYVuhBTg4eX6KpRfB/fC8tr1VccoVdj0VpYn9L64n2ac4wj7BcdvqKJfFmW9O7rXJHSyC6nbCOS24RnhPK0aHayegurigtrmaEmfVUOWLuM008MN0M7uPU58/IV9S7vMGYzUjY0npAcCs2Zz2i8y/2g5HE29wIsNnz3hARWTMO2itoh8T7FhduHxilMtkFdIWkUfKavFCoyAooGC1BW1SLUPyEfIzo5TpKCwUUzah4/Iq3p9SiyOj2JaVakvfkiG65PhWPF1ZHo93M9Bk+ah9f0AE1uUlFcnDf0qlnsiO5gyklHo/iZmIxPpKn+4RuudMM7qfIyLii4hd5X0OdHOVo7g1edA82KtQxsTVqLM60uJEBDx64acrcPlQ/X3WNM0wfrezW5/0/yGu2Ap/fLmgGCsPp1ap9FHzCTnTm7ENxSZ6/i8lz4nX4N8x0xeq8kh9E60RTaZyWq2y7W5MwMBU+aLn0jIOMHqOtHnuEx1WPKG8hD2KRTXs+nxEkWxX5VJr1gjZ7w/Y4L7sYgG/fu7E01r3S8jKIGM+TE0qqGgRYUQ4O7DaBTczML9QAmpXy3XeGd3uRVfpOpqfN2/qkeVxu7Qf9zjlCTzVq5U+3VfuxVCWiuiyM5I2EsvgoNbDY9dEVWjkEnbWtrnwr+vmK9t2/+93f+AMbpa3gEWgc+NhFqHuJBi5wYdhzW068oObs+qpUsqbyzmnjstQrZH0LIK6QGSa8W2SydEmD5swVqqryCkf+IYQXbPBeSIphwoY0l8vyVhsBXzj/quo0SQTPetoNNiHwZcAnbgeUDl21u92R5Yy1+tziBUHs6R3LTe9rhJtT2WaNgfvsnMwOFpT73r37Be2NWseinXODTaO9TsSQGadQMvte4I61CsoUk8OLey0vQmxCaQtMTPcfm99U4gIV9zrWgMf0cT1vOD72rnRTjRstNgl+u/HnLe72U8tCLVBcaQfSKR420xifNTgfnsDH3kWqURCeBl9C65z42ZJSOw9RK81YQd6YRCBNLuyZRZNeGbh5MKruYBx/rlPpVu+j/eYakJ0twnj8p06iRdUY3HAPw+RS8RA/5FU8NGqTyfx+nwpsr7/oDdSaHUQmSekBHq6WGjgGZnX0tvmv9iL41C43XebYhPK+OdmCYMcYHjKfhg== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f41c53d-59dc-4eb5-66f7-08da47a93cca X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jun 2022 10:42:22.3007 (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: bLFgAKLVsn0xXjdSmEUF5VMLmrwhrRqPff+kT3asiKugfrf5H8FMhmCF/vToZNpYaV6Dz7cre29Crrh5k4iy2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8312 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.5 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan i.MX9 shares same ROM API with i.MX8ULP, so make the i.MX8ULP the function prototype common and usable by i.MX9. Also include mmc env functions that use ROM API. Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 4 -- arch/arm/include/asm/mach-imx/sys_proto.h | 4 ++ arch/arm/mach-imx/imx9/soc.c | 37 +++++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h index 05859dfc2aa..a7869fbb573 100644 --- a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h @@ -8,10 +8,6 @@ #include -extern unsigned long rom_pointer[]; - -ulong spl_romapi_raw_seekable_read(u32 offset, u32 size, void *buf); -ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev); enum bt_mode get_boot_mode(void); int xrdc_config_pdac(u32 bridge, u32 index, u32 dom, u32 perm); int xrdc_config_pdac_openacc(u32 bridge, u32 index); diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h index 05532ebea89..17c5f44b208 100644 --- a/arch/arm/include/asm/mach-imx/sys_proto.h +++ b/arch/arm/include/asm/mach-imx/sys_proto.h @@ -180,6 +180,10 @@ enum boot_dev_type_e { #define ROM_API_OKAY 0xF0 extern struct rom_api *g_rom_api; +extern unsigned long rom_pointer[]; + +ulong spl_romapi_raw_seekable_read(u32 offset, u32 size, void *buf); +ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev); /* For i.MX ULP */ #define BT0CFG_LPBOOT_MASK 0x1 diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 8b620832b5d..9ea2d51495b 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -29,6 +29,43 @@ DECLARE_GLOBAL_DATA_PTR; +struct rom_api *g_rom_api = (struct rom_api *)0x1980; + +#ifdef CONFIG_ENV_IS_IN_MMC +__weak int board_mmc_get_env_dev(int devno) +{ + return devno; } + +int mmc_get_env_dev(void) +{ + volatile gd_t *pgd = gd; + int ret; + u32 boot; + u16 boot_type; + u8 boot_instance; + + ret = g_rom_api->query_boot_infor(QUERY_BT_DEV, &boot, + ((uintptr_t)&boot) ^ QUERY_BT_DEV); + set_gd(pgd); + + if (ret != ROM_API_OKAY) { + puts("ROMAPI: failure at query_boot_info\n"); + return CONFIG_SYS_MMC_ENV_DEV; + } + + boot_type = boot >> 16; + boot_instance = (boot >> 8) & 0xff; + + debug("boot_type %d, instance %d\n", boot_type, boot_instance); + + /* If not boot from sd/mmc, use default value */ + if (boot_type != BOOT_TYPE_SD && boot_type != BOOT_TYPE_MMC) + return env_get_ulong("mmcdev", 10, CONFIG_SYS_MMC_ENV_DEV); + + return board_mmc_get_env_dev(boot_instance); +} +#endif + u32 get_cpu_rev(void) { return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0;