From patchwork Mon Jun 6 11:23:38 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: 1639201 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=cYp37qef; 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 4LGqp409LRz9sGC for ; Mon, 6 Jun 2022 20:43:07 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 048778436C; Mon, 6 Jun 2022 12:42:06 +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="cYp37qef"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 51224842B8; Mon, 6 Jun 2022 12:41:58 +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=unavailable autolearn_force=no version=3.4.2 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on0631.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0d::631]) (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 5B684841A5 for ; Mon, 6 Jun 2022 12:41:53 +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=M7cjnieA+f6V5xtGAGhSbjqfn41EIveWAoO/1CaWRNeYX+Fi8zsYoIsNa8IR0J1jTYV+f3J/tZy5TSPgS2c4DBxmLUeOCqFrZHpu8SpnxrCcRnjrZIgBvPGHsYVxSlO7IjDDyL1Jc+RNPZkdALTovLlow1HrDh1GmEFMIcM56KanojRlZaaw+e0vW14E2m6ZVEylQN8zDf3Grfty5rnUg6MfdiQMhWHB/PwnsYOasL7sxEMQ2u1GxyOsgUpqwrNFIUbilPiVt4R9MiyHfNVuuLT3PJ/nhXYWdQJTPrQYJRbqqAG0kx2KuShN1IRH0fxmh4PDh29OvCbcuiqMMVvBgg== 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=kaBDOmcaoRRR57l+Untls89Koa4TiWf40zynO2pF6ts=; b=gst1Qvyllr1a49gBF3CoSBWaEn5Nrm6GKK1GWSK91mFgIPf1lFo0W+X1ZOi39eBuA46x91CKPPznTvqDcuT3//QiB8WTgMNBr9KBAJeScPSuI+lJL0Khu5ZrWaAN4y6vlRP5ZfsaB3KHn9pg1rhkv02WYn/+nzEYPxAWae+SQ1nOj1kKB04n5+8xPPvIr6NId51/pjaiRJQJtsagiGrbTP1ms5uZJA9wOVONYUO9JvkZkvO3YKJzwWiVMWkwX8D+FiZJXy3defbmZ5bdCCSo02h898qmyGSmJQ/Okkbp/9tKrX7GY69cQFBVA5nRr9eruykrmQ7E6OKAQif3s30tKA== 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=kaBDOmcaoRRR57l+Untls89Koa4TiWf40zynO2pF6ts=; b=cYp37qeflwSn69aoy7cu3H2wQ9d2xhZYC/TtNRpIlD4TJe0kG+vWSVIxa1gfSnSL3epJOkn+bAjCch0W/+rB1iUE/KStfD6xWOQhdyJs447Lf+8oNH0HH8Pd4O6uuGlkIJ30z9CUFuAlD3vyHYrIOqLbRkFhr+G30KAr8vqQCQk= 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 DBAPR04MB7320.eurprd04.prod.outlook.com (2603:10a6:10:1a8::23) 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:41:51 +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:41:51 +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 06/49] imx: move get_boot_device to common file Date: Mon, 6 Jun 2022 19:23:38 +0800 Message-Id: <20220606112421.31711-7-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: 28859f92-4864-42b4-f9fd-08da47a92a40 X-MS-TrafficTypeDiagnostic: DBAPR04MB7320: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: 2Xc2OtEwxwbPi/3zdfH5VI+JYNNm87sKoShZTNmQ+RipLeCHe01HHOADYmyw1OJpogeo0QWICQK9WGY9VrvYuBYy5DhApg5FTc2l0edS9ZcNIdGIHZTJjkxHnQ92huRK5Fv8ILQ33m7XpLn+TZw4OeiJP3IQi/XAEq0SoYt7YbIq2yemXE9wXDB3z0Sgh0UPTs/8+RPh3lbNg1vRFoEF2WX/tsiyAzPLpxwX26dgA1q/0kQsQznOZEv0tXa+rVRIpvn24b/a9+Uo9RqhFCdV/x099GF1mhKRDVNTlvcm9ZXZnYvxzxQxNm6yZpa02A2nCyHzwmvydzcPKsYun42W0Mp2BEsO+cwIY1XAycBdtvFzRZpiq1FNP/5bYADD6LoqW106js+mE1DjxgcvfxcGX9H10FErvxVT5jTrZbXE1/KEcTLitf+n7PvulHs4TMLNWGqpH78T5Xr3jkx/1ABLa9nvRHgnSqeuCv/YDYo5pIfmSz28DiSkXEzYK8kyojNjZ9MNSQW4lHiYKFCxP4ayg50tqTI8Ok2jTle10XaEI0BBu0jqWD4k4hX70Ga8cJXLgQE62++81CEF9YZJ4aV+yQ9nGWJd7dGKoFB5Zj0hQnFXD8Efaf7e7y+s4zUyVZzDEXo2AwEB0iI2sHqBl2+oIVYfVNi7e7PrXUXijy5wlmqUKl4WXNfpT6bkNsmAmh0dFzh4bhA1GElhHzj62pcAKg== 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)(8676002)(38350700002)(66556008)(66476007)(38100700002)(4326008)(66946007)(2906002)(6666004)(6862004)(508600001)(5660300002)(8936002)(26005)(316002)(1076003)(2616005)(6486002)(83380400001)(6506007)(52116002)(6512007)(86362001)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UjjMj8BIRhg0DmmHynIZrvdU9kRLloa+y/WUL2hRI3NnnzJXZ9niiHSlwU9SZAluTifDDMcRTkIR6/dWVGa0cLmulP4qM/UVKkdqkRT4170E7WMdlfkcUcXGy9pgkIPRlF5gXJ7apo1xo88GV5RxzH8xOLKWDwui/2/Vgr0oKH9x9cpg1kb22/UdTUUYKzXqRalYtFErZ5UrLTJt+SygQIyuW1q4CkBMbLueobjTzq1O9fvB69IS+bLKqrSJuegyn4+GI0bfmAwnnKq+WRqF4JFsV5+p73XWk+4Oe9R60udFB7u7jU83wRFAQIrkHSCW430IhhhGr4yH9JMp6iNu2bi7BPWYMZaj4W6Er0VfN4SUKwxntEaPi0uQvTx/Hpfaw/VSu5+KxEdnNnvoZx1YRJxcXBT5RQozq/9UyK5NIAd8U+HwozJHDAqoSVkzA9yi5mf72T2ULClai/ZslIxeejhumyECfEKK62x77+HV5wV+WtwjlNIiAOkP0vepM9FNHf3aWSENyewj/kJ7sYYV9wFyRALmnLkfpkLhPfMuQra8BjR3Stf+6YblLONC4Ppd433lCXP20v68uUMSnpKkvDlWQGc5Ehm5cj4tr8AaMopdTBu6aBKkcccvzM7f4EP68VHPgYCQ0f9JLXG5xoeM1/dvt1dkFtknXTRdiid+arynXCiYGbvemOFrfaJjCYdDPb2umTpUv6pa6n9XdkVxvCLbFrHHam4FoarH3v9/q9yPMHRpDDnPAu0EJ2vA+k4hZVxHquXfCkUEmDxFSMyiYRfdlRDtNBveGFrr5TGrjGQTRaIRmUTWR6Kc9WSHzLeqNlyWPLv8wRIMW8GWV5zyl4CeR5t3GnQrgrIQTmIWtPy8Dzp4f9npBBKS14aXXwu7l08ELkV9InGswBuC1DSPZN1arkoRkApe7mOmME0yfCYqv7PHJgMeCdmpEyKY2LEir3fcW6tY32+kQd7L64EWLzbSu+Tru9gs94MoYep1zIhVDLiFXQDInAbNfPj7Jwz28NACI6Zkoe+F/XC0lLnUmbmNMfk9Bw/oSA2hbhOTiRfLQgp4qPICLnfokyJ2OENvnPB58loCXIo+VQGLrUMsTgGgrxrOVpDvgvxfd9BMpW3UuIkz7fx9OWY5p8FWRdqu2UmoGMBiQdGoc1sWUl2xjpN9eiLWjUH7dNUXVoa5aLOWMYRr6sUjv1WLk66TtviM+Xt9eNqWDYOs7v/UeS5D4CWY8h3+e7EYE4pW/IxYWXLp8XNr3LbxLXOSxdQJ8gBvQC1RETcIn2UH0OZPcPk6PViw/wNdwMgwT2X+Uj92xwl9alPfL23YyHeVF+0j5B47yCSf+xDhTy71/xW6aN47qm8bmhR6R3aT4hJqc8FokJ9HVyRPWKgFObmCKiKM92R/i4L5ooN5Hgk8TLhg/CmZ9hms0TVyswfPT6pOm63SfnNUTFLQETxD0+yVaMMninml0mvurHKVycoit7mEmaCwTluWOOw5YBQ3yEGYTw+H4oB0B2KXWvOYsGa+DNL3WjinKgzYrPHFK3W1/qEjZ0sG35B16jTFhO/Rr1Badnn/gQlB81PvMyUpY49nbovCXtP/6/yPS0NeLVcx/dspyHpbtoPTLNhLk98MVPYfgdYNyOlDYEm4NNJXIhCa9NPKXhCQ46qaw8qhWpOtbAxmObjuvR8zBb18a6HKA2FM/YrDvvL3f8PxZa6BUj8Ams0bDKKVaymr8XaZNd2yVVHzwayMsQ== X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 28859f92-4864-42b4-f9fd-08da47a92a40 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:41:51.1855 (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: pBgc1WUwznbdL6eTM8GBaM466NLoI7bN4njSveqfwCEIlYdpSJKFKB0goWbe8GqZlF7vFPbIQxpuuIWkhB0nuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7320 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.MX8MN/P/ULP supports ROM API, they have almost same get_boot_device implementation, so move to a common file. And when support i.MX9, no need to include the other function copy. Since sys_proto.h is included in imx_romapi.c, there will be build warning for i.MX8M because wdog_regs not defined, so include imx-regs.h in i.MX8M sys_proro.h Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8m/sys_proto.h | 1 + arch/arm/mach-imx/Makefile | 1 + arch/arm/mach-imx/imx8m/soc.c | 47 ---------------- arch/arm/mach-imx/imx8ulp/soc.c | 44 --------------- arch/arm/mach-imx/imx_romapi.c | 60 +++++++++++++++++++++ 5 files changed, 62 insertions(+), 91 deletions(-) create mode 100644 arch/arm/mach-imx/imx_romapi.c diff --git a/arch/arm/include/asm/arch-imx8m/sys_proto.h b/arch/arm/include/asm/arch-imx8m/sys_proto.h index f8854e77128..55b46afaf78 100644 --- a/arch/arm/include/asm/arch-imx8m/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8m/sys_proto.h @@ -7,6 +7,7 @@ #define __ARCH_NMX8M_SYS_PROTO_H #include +#include void set_wdog_reset(struct wdog_regs *wdog); void enable_tzc380(void); diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index aa0b6447f14..c5be63dfe4f 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -242,4 +242,5 @@ obj-$(CONFIG_IMX8M) += imx8m/ obj-$(CONFIG_ARCH_IMX8) += imx8/ obj-$(CONFIG_ARCH_IMXRT) += imxrt/ +obj-$(CONFIG_IMX8MN)$(CONFIG_IMX8MP)$(CONFIG_IMX8ULP) += imx_romapi.o obj-$(CONFIG_SPL_BOOTROM_SUPPORT) += spl_imx_romapi.o diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index 59335356b57..d2a856f5410 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -599,53 +599,6 @@ int arch_cpu_init(void) #if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP) struct rom_api *g_rom_api = (struct rom_api *)0x980; - -enum boot_device get_boot_device(void) -{ - volatile gd_t *pgd = gd; - int ret; - u32 boot; - u16 boot_type; - u8 boot_instance; - enum boot_device boot_dev = SD1_BOOT; - - 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 -1; - } - - boot_type = boot >> 16; - boot_instance = (boot >> 8) & 0xff; - - switch (boot_type) { - case BT_DEV_TYPE_SD: - boot_dev = boot_instance + SD1_BOOT; - break; - case BT_DEV_TYPE_MMC: - boot_dev = boot_instance + MMC1_BOOT; - break; - case BT_DEV_TYPE_NAND: - boot_dev = NAND_BOOT; - break; - case BT_DEV_TYPE_FLEXSPINOR: - boot_dev = QSPI_BOOT; - break; - case BT_DEV_TYPE_SPI_NOR: - boot_dev = SPI_NOR_BOOT; - break; - case BT_DEV_TYPE_USB: - boot_dev = USB_BOOT; - break; - default: - break; - } - - return boot_dev; -} #endif #if defined(CONFIG_IMX8M) diff --git a/arch/arm/mach-imx/imx8ulp/soc.c b/arch/arm/mach-imx/imx8ulp/soc.c index 35020c9714d..529fda4594e 100644 --- a/arch/arm/mach-imx/imx8ulp/soc.c +++ b/arch/arm/mach-imx/imx8ulp/soc.c @@ -34,50 +34,6 @@ DECLARE_GLOBAL_DATA_PTR; struct rom_api *g_rom_api = (struct rom_api *)0x1980; -enum boot_device get_boot_device(void) -{ - volatile gd_t *pgd = gd; - int ret; - u32 boot; - u16 boot_type; - u8 boot_instance; - enum boot_device boot_dev = SD1_BOOT; - - 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 -1; - } - - boot_type = boot >> 16; - boot_instance = (boot >> 8) & 0xff; - - switch (boot_type) { - case BT_DEV_TYPE_SD: - boot_dev = boot_instance + SD1_BOOT; - break; - case BT_DEV_TYPE_MMC: - boot_dev = boot_instance + MMC1_BOOT; - break; - case BT_DEV_TYPE_NAND: - boot_dev = NAND_BOOT; - break; - case BT_DEV_TYPE_FLEXSPINOR: - boot_dev = QSPI_BOOT; - break; - case BT_DEV_TYPE_USB: - boot_dev = USB_BOOT; - break; - default: - break; - } - - return boot_dev; -} - bool is_usb_boot(void) { return get_boot_device() == USB_BOOT; diff --git a/arch/arm/mach-imx/imx_romapi.c b/arch/arm/mach-imx/imx_romapi.c new file mode 100644 index 00000000000..3b2cc6935dc --- /dev/null +++ b/arch/arm/mach-imx/imx_romapi.c @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +extern struct rom_api *g_rom_api; + +enum boot_device get_boot_device(void) +{ + volatile gd_t *pgd = gd; + int ret; + u32 boot; + u16 boot_type; + u8 boot_instance; + enum boot_device boot_dev = SD1_BOOT; + + 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 -1; + } + + boot_type = boot >> 16; + boot_instance = (boot >> 8) & 0xff; + + switch (boot_type) { + case BT_DEV_TYPE_SD: + boot_dev = boot_instance + SD1_BOOT; + break; + case BT_DEV_TYPE_MMC: + boot_dev = boot_instance + MMC1_BOOT; + break; + case BT_DEV_TYPE_NAND: + boot_dev = NAND_BOOT; + break; + case BT_DEV_TYPE_FLEXSPINOR: + boot_dev = QSPI_BOOT; + break; + case BT_DEV_TYPE_USB: + boot_dev = USB_BOOT; + break; + default: + break; + } + + return boot_dev; +}