From patchwork Tue Jan 10 16:19:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Enric Balletbo i Serra X-Patchwork-Id: 1724183 X-Patchwork-Delegate: trini@ti.com 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=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ESoJBo3n; 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 ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Nrx3w5LGmz23gG for ; Wed, 11 Jan 2023 03:25:00 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B2645856B2; Tue, 10 Jan 2023 17:21:38 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=redhat.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=redhat.com header.i=@redhat.com header.b="ESoJBo3n"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8AC76854B1; Tue, 10 Jan 2023 17:20:43 +0100 (CET) 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,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (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 DFA108559B for ; Tue, 10 Jan 2023 17:20:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=eballetb@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1673367636; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mnb+nsXRA1vPsZoKVv3xSR2cD9gCHLvvzCQpXllZRPI=; b=ESoJBo3nsQUce1L21I9CqvR5Vk9b5ssbM5IR4wu8HkfIXY3/m/AwLCXN76lVXUXPnAIPyR 4AaQ1IHUtS5mg59fYX0S36ZAtELW/dwgj+fM5uFUV/hfGrD+dnSrV6CBIRrMY1U5O2Hl46 w+VODGTOinqHQxIBklMC9vwmGjtHgJA= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-439-95FEc_rpNUyaEUMBlf0XpQ-1; Tue, 10 Jan 2023 11:20:13 -0500 X-MC-Unique: 95FEc_rpNUyaEUMBlf0XpQ-1 Received: by mail-wm1-f69.google.com with SMTP id g9-20020a7bc4c9000000b003d214cffa4eso2684295wmk.5 for ; Tue, 10 Jan 2023 08:20:03 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=mnb+nsXRA1vPsZoKVv3xSR2cD9gCHLvvzCQpXllZRPI=; b=tq+eaq1UQLkHrncWB9VMmNhw4DQuHO7WlCBNNU6TIgzc71KfZvfuFvOwqf4KXZdcSh ivXmjbOP1bNG15EiSfu1JNw59e1OY6otve489I7dN7/caLU0YvU9L92vr1yFYEmwEwWP MQMc64v8ZM5hIKmnKOy0Iq1vrco/dZbYZRMFIa4yJk5V6M7FYRXgLhIrrewfpDjikK9X DEhJUQv4ywZtFrthvLwYeFVeYFig6N8FBdCfQQm4mCCu7uXVB7a1r7xRbjLZwHHY4KNW /165gDj02NjwZzy5klBrovNfZoqc6gF4fE6l4OAHhlNqefym8WTsYgRe9asmmlchE0CJ MrSQ== X-Gm-Message-State: AFqh2kp/+vrrsaX7S5peeuxYr+s/7t+F/wY2iFnYRXSWjz4zda15UN/R fgUzEu3j28tUvdUgBWAElWL6+qeXjI1iydJc1Sont2X7zu08aSIwLAuEPOgtM7e8WaxVUnYBZdP rqaBuVgWzwidq54qri2No9e3ZT1CoqKeHbJmKn9fbHiD6ulQW2k3g7DowNA7hz3l2/g== X-Received: by 2002:adf:e346:0:b0:2ab:80b3:67b0 with SMTP id n6-20020adfe346000000b002ab80b367b0mr12243949wrj.61.1673367590533; Tue, 10 Jan 2023 08:19:50 -0800 (PST) X-Google-Smtp-Source: AMrXdXtNgidBGM950w6aVLteWMBHgxSEEqUmODv+chVmT8k2ZfQqa39dNcvYz9Zcc/Zb9BlzFb9qLg== X-Received: by 2002:adf:e346:0:b0:2ab:80b3:67b0 with SMTP id n6-20020adfe346000000b002ab80b367b0mr12243938wrj.61.1673367590269; Tue, 10 Jan 2023 08:19:50 -0800 (PST) Received: from fedora.. (215.red-79-157-73.dynamicip.rima-tde.net. [79.157.73.215]) by smtp.gmail.com with ESMTPSA id m1-20020a5d6241000000b002bbdaf21744sm8669803wrv.113.2023.01.10.08.19.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 08:19:49 -0800 (PST) From: Enric Balletbo i Serra X-Google-Original-From: Enric Balletbo i Serra To: u-boot@lists.denx.de Cc: xypron.glpk@gmx.de, trini@konsulko.com, Enric Balletbo i Serra , Simon Glass Subject: [PATCH v3 3/4] cmd: part: Add partition-related type command Date: Tue, 10 Jan 2023 17:19:34 +0100 Message-Id: <20230110161936.526455-4-eballetbo@redhat.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230110161936.526455-1-eballetbo@redhat.com> References: <20230110161936.526455-1-eballetbo@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Mailman-Approved-At: Tue, 10 Jan 2023 17:21:32 +0100 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 This implements the following command: part type mmc 0:1 -> print partition type UUID part type mmc 0:1 uuid -> set environment variable to partition type UUID "part type" can be useful when writing a bootcmd which searches for a specific partition type to enable automatic discovery of partitions and their intended usage or mount point. Signed-off-by: Enric Balletbo i Serra Reviewed-by: Simon Glass --- (no changes since v1) cmd/part.c | 29 +++++++++++++++++++++++++++++ doc/usage/cmd/part.rst | 18 ++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/cmd/part.c b/cmd/part.c index 9d419c967c..26b0cc84fe 100644 --- a/cmd/part.c +++ b/cmd/part.c @@ -182,6 +182,29 @@ static int do_part_number(int argc, char *const argv[]) return do_part_info(argc, argv, CMD_PART_INFO_NUMBER); } +static int do_part_type(int argc, char *const argv[]) +{ + int part; + struct blk_desc *dev_desc; + struct disk_partition info; + + if (argc < 2) + return CMD_RET_USAGE; + if (argc > 3) + return CMD_RET_USAGE; + + part = blk_get_device_part_str(argv[0], argv[1], &dev_desc, &info, 0); + if (part < 0) + return 1; + + if (argc > 2) + env_set(argv[2], info.type_guid); + else + printf("%s\n", info.type_guid); + + return 0; +} + static int do_part_types(int argc, char * const argv[]) { struct part_driver *drv = ll_entry_start(struct part_driver, @@ -218,6 +241,8 @@ static int do_part(struct cmd_tbl *cmdtp, int flag, int argc, return do_part_size(argc - 2, argv + 2); else if (!strcmp(argv[1], "number")) return do_part_number(argc - 2, argv + 2); + else if (!strcmp(argv[1], "type")) + return do_part_type(argc - 2, argv + 2); else if (!strcmp(argv[1], "types")) return do_part_types(argc - 2, argv + 2); return CMD_RET_USAGE; @@ -244,6 +269,10 @@ U_BOOT_CMD( "part number \n" " - set environment variable to the partition number using the partition name\n" " part must be specified as partition name\n" + "part type :\n" + " - print partition type\n" + "part type : \n" + " - set environment variable to partition type\n" "part types\n" " - list supported partition table types" ); diff --git a/doc/usage/cmd/part.rst b/doc/usage/cmd/part.rst index ed464b180b..8d2a280391 100644 --- a/doc/usage/cmd/part.rst +++ b/doc/usage/cmd/part.rst @@ -13,6 +13,7 @@ Synopis part start part size part number + part type : [varname] part types Description @@ -81,6 +82,17 @@ part must be specified as partition name. varname a variable to store the current partition number value into +The 'part type' command prints or sets an environment variable to the partition type UUID. + + interface + interface for accessing the block device (mmc, sata, scsi, usb, ....) + dev + device number + part + partition number + varname + a variable to store the current partition type UUID value into + The 'part types' command list supported partition table types. Examples @@ -126,6 +138,12 @@ Examples => env print varname varname=0x2 => + => part type host 0:1 + ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 + => part type host 0:1 varname + => env print varname + varname=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 + => => part types Supported partition tables: EFI, AMIGA, DOS, ISO, MAC