All of lore.kernel.org
 help / color / mirror / Atom feed
From: Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>
To: u-boot@lists.denx.de, Sumit Garg <sumit.garg@kernel.org>,
	u-boot-qcom@groups.io
Cc: Tom Rini <trini@konsulko.com>,
	Quentin Schulz <quentin.schulz@cherry.de>,
	 Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Rasmus Villemoes <ravi@prevas.dk>, Simon Glass <sjg@chromium.org>,
	Javier Tia <floss@jetm.me>,
	Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>,
	Varadarajan Narayanan <quic_varada@quicinc.com>,
	Javier Martinez Canillas <javierm@redhat.com>,
	Richard Genoud <richard.genoud@bootlin.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	David Lechner <dlechner@baylibre.com>,
	Casey Connolly <casey.connolly@linaro.org>,
	Marek Vasut <marek.vasut+renesas@mailbox.org>,
	Christian Marangi <ansuelsmth@gmail.com>,
	Michael Walle <mwalle@kernel.org>,
	Sumit Garg <sumit.garg@oss.qualcomm.com>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Aswin Murugan <aswin.murugan@oss.qualcomm.com>,
	Jerome Forissier <jerome.forissier@arm.com>,
	Mattijs Korpershoek <mkorpershoek@kernel.org>,
	Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>
Subject: [PATCH v4 5/8] env: scsi: Add partition type GUID support and choice-based selection
Date: Tue, 28 Apr 2026 13:01:47 +0530	[thread overview]
Message-ID: <20260428-type-v4-5-b7051dc45a88@oss.qualcomm.com> (raw)
In-Reply-To: <20260428-type-v4-0-b7051dc45a88@oss.qualcomm.com>

Add support for locating SCSI environment partition using GPT type
GUID.

Introduce a Kconfig choice statement to select between three
mutually exclusive partition lookup methods: UUID-based (default),
type GUID-based, and hardware partition number.

Reorganize existing configs to depend on their respective choice
options. Update ENV_IS_IN_SCSI help text to document the
new configuration structure.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>
---
Changes in v4:
 - Has only changes related to introducing choice configs

Changes in v3:
- Introduce a new choice config: ENV_SCSI_PART_USE_HW for
  ENV_SCSI_HW_PARTITION
- Refactor env_scsi_get_part and env_scsi_load functions based
  on the choice configs

Changes in v2:
- Introduce a Kconfig choice config to select between UUID-based
and type GUID-based partition lookup methods.
---
 env/Kconfig | 68 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 54 insertions(+), 14 deletions(-)

diff --git a/env/Kconfig b/env/Kconfig
index 71a27894f90..f59b2acb7e6 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -299,16 +299,20 @@ config ENV_IS_IN_SCSI
 	  The size of the partition where the environment is stored in bytes. Must
 	  be a multiple of the partition block size.
 
-	  - CONFIG_ENV_SCSI_HW_PARTITION:
+	  The partition selection method is configured via a choice statement:
 
-	  Specifies which SCSI partition the environment is stored in. If not
-	  set, defaults to partition 0, the user area. Common values might be
-	  1 (first SCSI boot partition), 2 (second SCSI boot partition). Ignored
-	  if CONFIG_ENV_SCSI_PART_UUID is set to non-empty string.
+	  - ENV_SCSI_PART_USE_UUID: Use the partition's unique UUID to identify
+	    the SCSI partition for environment storage.
 
-	  - CONFIG_ENV_SCSI_PART_UUID:
+	  - ENV_SCSI_PART_USE_TYPE_GUID: Use the partition type GUID to identify
+	    the SCSI partition for environment storage. The first partition
+	    matching the specified type GUID will be used.
 
-	  UUID of the SCSI partition where the environment is stored.
+	  - ENV_SCSI_PART_USE_HW: Use the hardware device number to identify
+	    the SCSI device for environment storage. Specifies which SCSI
+	    partition the environment is stored in. If not set, defaults to
+	    partition 0, the user area. Common values might be 1 (first SCSI
+	    boot partition), 2 (second SCSI boot partition).
 
 
 config ENV_RANGE
@@ -780,9 +784,51 @@ config ENV_MMC_USE_DT
 	  The 2 defines CONFIG_ENV_OFFSET, CONFIG_ENV_OFFSET_REDUND
 	  are not used as fallback.
 
+choice
+	prompt "SCSI partition selection method"
+	depends on ENV_IS_IN_SCSI
+	default ENV_SCSI_PART_USE_UUID
+	help
+	  Select the method to identify the SCSI partition for environment storage.
+
+config ENV_SCSI_PART_USE_UUID
+	bool "Use partition UUID"
+	help
+	  Use the partition's unique UUID to identify the SCSI partition
+	  for environment storage.
+
+config ENV_SCSI_PART_USE_TYPE_GUID
+	bool "Use partition type GUID"
+	select PARTITION_TYPE_GUID
+	help
+	  Use the partition type GUID to identify the SCSI partition
+	  for environment storage. The first partition matching the
+	  specified type GUID will be used.
+
+config ENV_SCSI_PART_USE_HW
+	bool "Use hardware partition number"
+	help
+	  Use the hardware device number to identify the SCSI device
+	  for environment storage.
+
+endchoice
+
+config ENV_SCSI_PART_UUID
+	string "SCSI partition UUID for saving environment"
+	depends on ENV_SCSI_PART_USE_UUID
+	help
+	  UUID of the SCSI partition that you want to store the environment in.
+
+config ENV_SCSI_PART_TYPE_GUID
+	string "SCSI partition type GUID for saving environment"
+	depends on ENV_SCSI_PART_USE_TYPE_GUID
+	help
+	  Type GUID of the SCSI partition to store the environment in.
+	  Uses the first partition matching this type GUID.
+
 config ENV_SCSI_HW_PARTITION
 	string "SCSI hardware partition number"
-	depends on ENV_IS_IN_SCSI
+	depends on ENV_SCSI_PART_USE_HW
 	default "0"
 	help
 	  SCSI hardware partition device number on the platform where the
@@ -791,12 +837,6 @@ config ENV_SCSI_HW_PARTITION
 	  partition 0 or the first boot partition, which is 1 or some other defined
 	  partition.
 
-config ENV_SCSI_PART_UUID
-	string "SCSI partition UUID for saving environment"
-	depends on ENV_IS_IN_SCSI
-	help
-	  UUID of the SCSI partition that you want to store the environment in.
-
 config ENV_USE_DEFAULT_ENV_TEXT_FILE
 	bool "Create default environment from file"
 	depends on !COMPILE_TEST

-- 
2.34.1


  parent reply	other threads:[~2026-04-28  7:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-28  7:31 [PATCH v4 0/8] Add partition type GUID support for environment Balaji Selvanathan
2026-04-28  7:31 ` [PATCH v4 1/8] disk: Add partition lookup by type GUID functionality Balaji Selvanathan
2026-05-07 13:42   ` Quentin Schulz
2026-04-28  7:31 ` [PATCH v4 2/8] scsi: Add partition lookup by type GUID for SCSI devices Balaji Selvanathan
2026-05-01  2:12   ` Simon Glass
2026-04-28  7:31 ` [PATCH v4 3/8] scsi: Optimize scsi_get_blk_by_uuid() loop iteration Balaji Selvanathan
2026-04-28  7:31 ` [PATCH v4 4/8] env: scsi: Fix ENV_SCSI_HW_PARTITION default value type Balaji Selvanathan
2026-04-28  7:31 ` Balaji Selvanathan [this message]
2026-04-28  7:31 ` [PATCH v4 6/8] env: scsi: Implement partition type GUID lookup Balaji Selvanathan
2026-04-28  7:31 ` [PATCH v4 7/8] configs: Enable partition type GUID for QCS9100/QCM6490/QCS615 boards Balaji Selvanathan
2026-05-01  8:02   ` Sumit Garg
2026-04-28  7:31 ` [PATCH v4 8/8] test: dm: Add partition type GUID lookup test Balaji Selvanathan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260428-type-v4-5-b7051dc45a88@oss.qualcomm.com \
    --to=balaji.selvanathan@oss.qualcomm.com \
    --cc=ansuelsmth@gmail.com \
    --cc=aswin.murugan@oss.qualcomm.com \
    --cc=casey.connolly@linaro.org \
    --cc=dlechner@baylibre.com \
    --cc=floss@jetm.me \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jan.kiszka@siemens.com \
    --cc=javierm@redhat.com \
    --cc=jerome.forissier@arm.com \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=mikhail.kshevetskiy@iopsys.eu \
    --cc=mkorpershoek@kernel.org \
    --cc=mwalle@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=quentin.schulz@cherry.de \
    --cc=quic_varada@quicinc.com \
    --cc=ravi@prevas.dk \
    --cc=richard.genoud@bootlin.com \
    --cc=sjg@chromium.org \
    --cc=sumit.garg@kernel.org \
    --cc=sumit.garg@oss.qualcomm.com \
    --cc=trini@konsulko.com \
    --cc=u-boot-qcom@groups.io \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.