From patchwork Wed Apr 26 13:25:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 1774116 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.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=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=qwumTlAP; dkim-atps=neutral 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 ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Q606C4mcPz23vH for ; Wed, 26 Apr 2023 23:27:31 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6AE88862C5; Wed, 26 Apr 2023 15:26:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qwumTlAP"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 10B7D86389; Wed, 26 Apr 2023 15:26:06 +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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ot1-x333.google.com (mail-ot1-x333.google.com [IPv6:2607:f8b0:4864:20::333]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 5CA1C8638B for ; Wed, 26 Apr 2023 15:26:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=festevam@gmail.com Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-6a5f57c64ceso1157215a34.1 for ; Wed, 26 Apr 2023 06:26:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682515562; x=1685107562; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QqvBvRs+RgacCRWNJD8A1Y07DgZz17NhiFWo2O2HByg=; b=qwumTlAPMY3WnFRp6Qyi+uDzNVzgMJdi4lRGj9QclU8v93dvrDeXGMcBC57HD1KKTy llQXcfUba90Vbp7ecCb1RSgoUM3WbyZTGMEcRu0zTVxydbOwZCImaM+xTsVYL2PqrGFO w5B8+UVPSsM081A9PibnBRM8anI0Re9AsLaMarA9OgdbSh32oQ60fl37PpCiqbj5rTL+ Xy6Rg8WU/ouF4oeM3Pld4e/ShHPRZo9/8hhI/TKep2LjnUSRSYrmRsEk5Fv/AXmhmJkJ 5lzNMcVxwjletIGC+TS2iFD1hIc7kDXXCHs15okm2H/ZKC3nNlwO6XqLpjCkkasMW1sK 3QKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682515562; x=1685107562; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QqvBvRs+RgacCRWNJD8A1Y07DgZz17NhiFWo2O2HByg=; b=MRoIC8dJzUeaXiv51JLCoHzy/md/QDoyfNKDaM+UY0HOaqAar+HDUaDgnod3ZSsST/ DO9RFy82RDFmor40cNrTGd1vKg+/NSKKpnTLNOxJe2yvXur5yaiLk4wlOmpeaHiayOWQ vMNIQ0w+8rCjH80781jCeb5iEjYCES7jqXHDdjHtvNipnFU2i9D9sVxBkMX8MU3XeR5U lNvsifV8gWNJHQgkGgQs7qX3YYTE3RbbHEmEZxgAlMutC+sXDhCBEUJLWv7WGfNXy4pE aZh/p/wet0HJtRHcJDcy6ch5+WM/OlUqEQ2uWP8znW8XMBcGwCr94SP3BDwhRiYWrxMw 0ScA== X-Gm-Message-State: AAQBX9d4uqSxJMFjEECOQiv0ybZXRW5/WJ5RT2cBFEDzcyqRf5TAg38C nDAhQW8acuXlhSbhEmvj+I0= X-Google-Smtp-Source: AKy350ZUx4WFbyjcCKEg7jQbD74FheCvZGRM/OShgQc/unz6TpAL8rMfxtF87SM/Z1qsoX/ADmyjFg== X-Received: by 2002:a9d:4d0:0:b0:6a4:27b1:630a with SMTP id 74-20020a9d04d0000000b006a427b1630amr3034519otm.1.1682515561733; Wed, 26 Apr 2023 06:26:01 -0700 (PDT) Received: from fabio-Precision-3551.. ([2804:14c:485:4b69:f6e1:8741:de7a:38fc]) by smtp.gmail.com with ESMTPSA id h9-20020a056830164900b006a61bef7968sm6762384otr.53.2023.04.26.06.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Apr 2023 06:26:01 -0700 (PDT) From: Fabio Estevam To: sbabic@denx.de Cc: eduard@lionizers.com, u-boot@lists.denx.de, Fabio Estevam Subject: [PATCH v4 07/14] smegw01: Enable EMMC boot from multiple partitions Date: Wed, 26 Apr 2023 10:25:26 -0300 Message-Id: <20230426132533.1145591-7-festevam@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230426132533.1145591-1-festevam@gmail.com> References: <20230426132533.1145591-1-festevam@gmail.com> MIME-Version: 1.0 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.8 at phobos.denx.de X-Virus-Status: Clean From: Eduard Strehlau GPT Partition labels are used for determining the right root filesystem to boot from. The U-Boot environment is configured to reside in the eMMC hardware boot partition we are currently booted from. This should enable a dual copy approach for upgrading the bootloader. One can overwrite the inactive hardware partition with new bootloader and environment and afterwards switch the eMMC boot partition for an atomic bootloader switch. Signed-off-by: Eduard Strehlau Signed-off-by: Fabio Estevam --- Changes since v3: - None board/storopack/smegw01/smegw01.c | 10 ++++++++++ configs/smegw01_defconfig | 2 ++ include/configs/smegw01.h | 12 ++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/board/storopack/smegw01/smegw01.c b/board/storopack/smegw01/smegw01.c index e6bff80e5565..7d4de9326d6f 100644 --- a/board/storopack/smegw01/smegw01.c +++ b/board/storopack/smegw01/smegw01.c @@ -17,6 +17,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -93,3 +94,12 @@ int board_late_init(void) return 0; } + +uint board_mmc_get_env_part(struct mmc *mmc) +{ + uint part = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config); + + if (part == 7) + part = 0; + return part; +} diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig index b3580d5d6e54..54cf1cfc1f1b 100644 --- a/configs/smegw01_defconfig +++ b/configs/smegw01_defconfig @@ -30,6 +30,7 @@ CONFIG_CMD_MEMTEST=y CONFIG_CMD_UNZIP=y CONFIG_CMD_DFU=y CONFIG_CMD_GPIO=y +CONFIG_CMD_GPT=y CONFIG_CMD_MMC=y CONFIG_CMD_PART=y CONFIG_CMD_DHCP=y @@ -44,6 +45,7 @@ CONFIG_OF_CONTROL=y CONFIG_ENV_OVERWRITE=y CONFIG_SYS_REDUNDAND_ENVIRONMENT=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_SYS_MMC_ENV_DEV=1 CONFIG_NET_RANDOM_ETHADDR=y CONFIG_BOUNCE_BUFFER=y CONFIG_BOOTCOUNT_LIMIT=y diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h index 277c828d0e07..71f2d9c8e85c 100644 --- a/include/configs/smegw01.h +++ b/include/configs/smegw01.h @@ -32,17 +32,21 @@ "mmcpart=1\0" \ "mmcpart_committed=1\0" \ "mmcargs=setenv bootargs console=${console},${baudrate} " \ - "root=/dev/mmcblk0p${mmcpart_committed} rootwait rw " \ - __stringify(EXTRA_BOOTPARAMS) "\0" \ + "root=/dev/mmcblk${mmcdev}p${gpt_partition_entry} rootwait rw " \ + __stringify(EXTRA_BOOTPARAMS) " SM_ROOT_DEV=${mmcdev} SM_ROOT_PART=${gpt_partition_entry} SM_BOOT_PART=${boot_part}\0" \ "commit_mmc=if test \"${ustate}\" = 1 -a \"${mmcpart}\" != \"${mmcpart_committed}\"; then " \ "setenv mmcpart_committed ${mmcpart};" \ "saveenv;" \ "fi;\0" \ "bootlimit=3\0" \ - "loadimage=load mmc ${mmcdev}:${mmcpart_committed} ${loadaddr} boot/${image}\0" \ - "loadfdt=load mmc ${mmcdev}:${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \ + "loadimage=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${loadaddr} boot/${image}\0" \ + "loadfdt=load mmc ${mmcdev}#rootfs-${mmcpart_committed} ${fdt_addr} boot/${fdtfile}\0" \ + "loadpart=gpt setenv mmc ${mmcdev} rootfs-${mmcpart_committed}\0" \ + "loadbootpart=mmc partconf 1 boot_part\0" \ "mmcboot=echo Booting from mmc ...; " \ "run commit_mmc; " \ + "run loadpart; " \ + "run loadbootpart; " \ "run mmcargs; " \ "if run loadfdt; then " \ "if bootz ${loadaddr} - ${fdt_addr}; then " \