From patchwork Mon Apr 12 12:13:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1465205 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: 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=S3hDA6Nj; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FJnYW0Ty3z9sW0 for ; Mon, 12 Apr 2021 22:07:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9828681E72; Mon, 12 Apr 2021 14:07:35 +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="S3hDA6Nj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 28E8581E7F; Mon, 12 Apr 2021 14:07:32 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on061f.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0d::61f]) (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 650E38205E for ; Mon, 12 Apr 2021 13:42:51 +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=X5sKXwBrC2j5pka54A/dHG/g1oSBZWD0vJGCcl/V+KSuJ7+jOiCPkSUi+nk5n/jsQKTPq89cc2OP1TzO7gPdKPXjo3EgqbDPaXj76F2EAB+PCB/KTIcxd1faVMChjsrECoeVtEPCh8ZDsg2rwWgZ1hdnAVG7DcObHOijrV1oTXSCIlsUrDxisqHkZKVelGsY4xW2ra6D6Z6Wqr8TzAWLFjz7UIaspoQrVvXP40PBA4bUcpSvCf1M8TcjSuPDJve0yvzx0JEzlTzPLPfwwSmAtm+F9w3t0OuMg3clf81m2Hll/KnlNof40wgYkm/S+97rQAC5YgvjsYxHGy9cweS3RA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nicWCZzOO2pofbZg1VDvjW//UfYB8WjYD/GhHLSeyPo=; b=WIf51jN4FyzreBlxTYXHK8DjhnQsWZMPGAUUm3PVSSuMflWu5PsxRu4G3I641OIEpcgUybSn10cn1GfgMuYKzGc+76s4JwvBtbAbnD7jK3SJPszBYZCFWp0F/Ju6F7SdIpPujldwTxFbO2xCi7WiolbP6FUe8mhzCs7k28Xp2ZogQvQrFB4sFHEI82Ax9SqbuKSfZfwrCXnMF7g/J6P67tGr+AK3Z95ZPS0Iv4FK4T1G9EFNjx0ikhVCS/tS2IZJJZ9plAX+VUD3VnFgfhvrbtMgbH2mmVpuxFAlYUlZdwLvwbetGVKTNpUjISmDo9/5tRhvXmC2cSfQfG7M/Go1dA== 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=nicWCZzOO2pofbZg1VDvjW//UfYB8WjYD/GhHLSeyPo=; b=S3hDA6Nj2vEdmBPqwyYqWfR7n2Bfm5yUZGufqKwtdevEtmuQa9ddJhBl+azn5BFImq5z7QAZ3XnYUShOb2krwZRRT7GWmegecQmLez7ARSmKYkPFhM4YlDF8bGx8pT0G3/YB4QHKhb+iAhUxggtqDEprPpOvrvT1JV09DEdfuBU= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DBBPR04MB7595.eurprd04.prod.outlook.com (2603:10a6:10:20d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.22; Mon, 12 Apr 2021 11:42:49 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::c57a:6964:f72c:21cf]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::c57a:6964:f72c:21cf%11]) with mapi id 15.20.3999.032; Mon, 12 Apr 2021 11:42:49 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, uboot-imx@nxp.com, Ye Li , Peng Fan Subject: [PATCH 31/37] arm: iMX8ULP: Add boot device relevant functions Date: Mon, 12 Apr 2021 20:13:00 +0800 Message-Id: <20210412121306.11484-32-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210412121306.11484-1-peng.fan@oss.nxp.com> References: <20210412121306.11484-1-peng.fan@oss.nxp.com> X-Originating-IP: [119.31.174.71] X-ClientProxiedBy: HK2PR0401CA0009.apcprd04.prod.outlook.com (2603:1096:202:2::19) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by HK2PR0401CA0009.apcprd04.prod.outlook.com (2603:1096:202:2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.16 via Frontend Transport; Mon, 12 Apr 2021 11:42:47 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 719fa42e-87e8-4a78-6820-08d8fda81936 X-MS-TrafficTypeDiagnostic: DBBPR04MB7595: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1002; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4LQEpUBTLZLJouJOCMZ+8LMkqgeVME6vhbVjqWb9a6vZ4HEmHWA+xAJytZksvarZ5v5yIZva78AiGx1tPFim3SM2CKQu2TgrRhO5zrspBjJ62tTFvWXKy6Bbw2V10WRVdJnUjZTWqmOgE31i/LjEtL+5+Ils+YZyGLg8ZYgZXfK0omAXfIJUFyu8+TnLh6Vuogn8CBk4u12E/9emWwcfXEhOpxuoRkfv6wibgMbzhVR5HM6AbpyfpWL+QKfvoIjmHWIxapSZiU8f/ZtzEoDsBNYCC6Nbha71/hQjDyRa7nEKV40Pb84m6gWxD4dJ5y1Wx9iopENGpi8+09H7JyOVklhjzyRtt4hlMnm89+wmCceAEvTm4DcW4gPwU12NYN9AVo3+qtfZgQJm7ggMmuqT7hWOu7V8ZENIzKT63bbAZ1Xes1F1yIvxqm+GYssnkloENlN8eeRXHOoct0B9NvvLbVChkXigHVTlDWsriYx1FcRWXuqyqookAZcWbqzDdqptwbbdkSCPIKNztkCUqMVQ3xW8Tp4c7Y4EcgY2qEPtJcfm5EnPQZ2ZEZewAofWI+SnofUp7xNlP9wlUXvZtvFVBf1vqPIOQ3ueg7kU+kb2SbQ6Ofc+TjxCSlW1ue534vhDkq8d8N1rAhom/DdzeNhxqxYMccvmx73XQkAS/2LPN7w= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(136003)(376002)(346002)(39860400002)(38100700002)(4326008)(6506007)(38350700002)(316002)(26005)(2616005)(86362001)(186003)(956004)(52116002)(478600001)(2906002)(8676002)(1076003)(6512007)(83380400001)(66476007)(5660300002)(66556008)(8936002)(6666004)(16526019)(54906003)(66946007)(6486002)(32563001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: GNB+yKmV7ml5hd7NJ7PxThBTfwRHS6mgp0d8fWTBUDlPaIRUgBAaHrYAxuIe+j7VkmXFnnmkBJwrqJ9eFDdXbewxjyQ0xxVtKpJkHL/CVngoSIHwiTszX8Ue201sFTRSZdC5tJirzkqu8xce1TT0yksPJ7CMAeMHiZaj/Gg3dNwEIRvBc0xTyfEF6tWZogPDDii8XX7vDCSCxV2rT9D8GjgkhM4yAp/p13toNZmLNHJUIrdKoQ573N4jMKyZHqM4wdH8TYaD8frPWR+l1OVMwFYAp0c9yxl8OQh7RZzIaVsK+LZIw0VuD/lm3wfWHQ0V4BVzwnU0Wp7dZbL77h1dGsL91lrk917p7ZKKoeUzPt7hzAb6v2IHwDlTSjAOxHXVa1ptqb9csczod70o9Fup3/HyGCUN9fuYVoOin2LU+rVgopTeLHiG9U68ugRPn6Lc8Rl8Ni0gcgRA2ElRcpeOM4qelNBep5MEeDnkN4L/1VKtT8WRgOn7taP1ViPFzPH7wN/CPhsCIDwBxmcCU4HniCqGADQp4qUUlXJZK+op6j+mtkVWhHL4I0YwdKJbXGtO99Zqumj4PdBCWyjkzPtRkEyuvI3QHzRLBW4MRqlSZmyfl+Nfo/+EyUpqv/+FYXx/Zy+GZFqtKapDXmlG9fPZ8rIMdXk8PyxAOs7EXgxJ5EdMITtL3ypPMtX1DBJZfwKy6NoAmCmlMDtQLzbbEQEPkkDb1TOZ4s40+W717e6y2R/fFfkWNbxP4h6ODi/XWuqn5LkSVbw/clvCO0wLeE9K388AewCTlxiLewaMCHIjfgLR9D8GEZHdfQ+/Bgvo4ADStVmO+5+4zvXrXzANCiDe5uAbCGVVRHPr0SxCgOPa4sFbGPUgCYs6KsswZsnzGTE1knRAuZ8CPXeWTDgDC6zZ4Sqkn1RlJm4r5jsxabHlVHNhRw9ruh2vcHSoW7E3deTGYipPw9n8r+4+0ejiigb9msFkYSTJkXndrUXR9gsQvkYq7X4xvQKLCr/NRBP6PGwsQvfKAsWzSDAc2NVByaDMyi7cLa2pKFqPlGcfuRgHRgCw3dJyYB7omHUYVW/T1ch8F1IAhxOaUc8pImyH5fFmOTbB99xZol8b+A4fxGSUhJoI/RvFmekx/Vwps7Z0Zw5M10BsjA2ak3/bMUYufkfBs2fjfAl4zvCyS2ulJlnuegt08Ic5TgwwkDN4y/NfsSg9PndhdZ5X9ZkYSix0G+bpv4Xk1/B5p2nm1G97HbNQTj7oKJ2NTR122SCvexEmV1QYuYfdjw/pMyN+duzwCcX2dLZs/1soA3UIE4ySK37PVoqucsDwOei2LnvrjMOFZEbh X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 719fa42e-87e8-4a78-6820-08d8fda81936 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2021 11:42:49.4643 (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: D4CTnb/YmXQpZCAazugjVpzBS5uQ1ymJjxCgUJfYsqRgoeWEiukLtiK961e45jW8jiTS/xapcmNx/BDKMYzr6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7595 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.4 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Read from ROM API to get current boot device. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 1 + arch/arm/mach-imx/imx8ulp/soc.c | 83 +++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h index 47ee46bdf4..1a142dce72 100644 --- a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h @@ -15,4 +15,5 @@ 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); +enum boot_device get_boot_device(void); #endif diff --git a/arch/arm/mach-imx/imx8ulp/soc.c b/arch/arm/mach-imx/imx8ulp/soc.c index 527a4e17d8..3fd49b220b 100644 --- a/arch/arm/mach-imx/imx8ulp/soc.c +++ b/arch/arm/mach-imx/imx8ulp/soc.c @@ -26,6 +26,89 @@ 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); + 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; +} + +#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); + 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; + + /* 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_IMX8ULP << 12) | CHIP_REV_1_0;