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 6/8] env: scsi: Implement partition type GUID lookup
Date: Tue, 28 Apr 2026 13:01:48 +0530	[thread overview]
Message-ID: <20260428-type-v4-6-b7051dc45a88@oss.qualcomm.com> (raw)
In-Reply-To: <20260428-type-v4-0-b7051dc45a88@oss.qualcomm.com>

Update env/scsi.c to support the new partition selection methods
introduced in the Kconfig. Replace runtime string checks with
compile-time preprocessor conditionals.

Implement support for all three partition selection methods:
- TYPE_GUID: Uses scsi_get_blk_by_type_guid()
- UUID: Uses scsi_get_blk_by_uuid()
- HW: Uses blk_get_device_part_str()

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 Refactor env_scsi_get_part and
  env_scsi_load functions based on the 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/scsi.c | 43 +++++++++++++++++++++++++------------------
 1 file changed, 25 insertions(+), 18 deletions(-)

diff --git a/env/scsi.c b/env/scsi.c
index 91a6c430302..b170f4ee0c7 100644
--- a/env/scsi.c
+++ b/env/scsi.c
@@ -41,14 +41,17 @@ static inline struct env_scsi_info *env_scsi_get_part(void)
 		is_scsi_scanned = true;
 	}
 
-	if (CONFIG_ENV_SCSI_PART_UUID[0] == '\0') {
-		if (blk_get_device_part_str("scsi", CONFIG_ENV_SCSI_HW_PARTITION,
-					    &ep->blk, &ep->part, true))
-			return NULL;
-	} else {
-		if (scsi_get_blk_by_uuid(CONFIG_ENV_SCSI_PART_UUID, &ep->blk, &ep->part))
-			return NULL;
-	}
+#if defined(CONFIG_ENV_SCSI_PART_USE_TYPE_GUID)
+	if (scsi_get_blk_by_type_guid(CONFIG_ENV_SCSI_PART_TYPE_GUID, &ep->blk, &ep->part))
+		return NULL;
+#elif defined(CONFIG_ENV_SCSI_PART_USE_UUID)
+	if (scsi_get_blk_by_uuid(CONFIG_ENV_SCSI_PART_UUID, &ep->blk, &ep->part))
+		return NULL;
+#elif defined(CONFIG_ENV_SCSI_PART_USE_HW)
+	if (blk_get_device_part_str("scsi", CONFIG_ENV_SCSI_HW_PARTITION,
+				    &ep->blk, &ep->part, true))
+		return NULL;
+#endif
 
 	ep->count = CONFIG_ENV_SIZE / ep->part.blksz;
 
@@ -95,20 +98,24 @@ static int env_scsi_load(void)
 	int ret;
 
 	if (!ep) {
-		if (CONFIG_ENV_SCSI_PART_UUID[0] == '\0')
-			env_set_default("SCSI partition " CONFIG_ENV_SCSI_HW_PARTITION " not found", 0);
-		else
-			env_set_default(CONFIG_ENV_SCSI_PART_UUID " partition not found", 0);
-
+#if defined(CONFIG_ENV_SCSI_PART_USE_TYPE_GUID)
+		env_set_default("partition type " CONFIG_ENV_SCSI_PART_TYPE_GUID " not found", 0);
+#elif defined(CONFIG_ENV_SCSI_PART_USE_UUID)
+		env_set_default(CONFIG_ENV_SCSI_PART_UUID " partition not found", 0);
+#elif defined(CONFIG_ENV_SCSI_PART_USE_HW)
+		env_set_default("SCSI partition " CONFIG_ENV_SCSI_HW_PARTITION " not found", 0);
+#endif
 		return -ENOENT;
 	}
 
 	if (blk_dread(ep->blk, ep->part.start, ep->count, &envbuf) != ep->count) {
-		if (CONFIG_ENV_SCSI_PART_UUID[0] == '\0')
-			env_set_default("SCSI partition " CONFIG_ENV_SCSI_HW_PARTITION " read failed", 0);
-		else
-			env_set_default(CONFIG_ENV_SCSI_PART_UUID " partition read failed", 0);
-
+#if defined(CONFIG_ENV_SCSI_PART_USE_TYPE_GUID)
+		env_set_default("partition type " CONFIG_ENV_SCSI_PART_TYPE_GUID " read failed", 0);
+#elif defined(CONFIG_ENV_SCSI_PART_USE_UUID)
+		env_set_default(CONFIG_ENV_SCSI_PART_UUID " partition read failed", 0);
+#elif defined(CONFIG_ENV_SCSI_PART_USE_HW)
+		env_set_default("SCSI partition " CONFIG_ENV_SCSI_HW_PARTITION " read failed", 0);
+#endif
 		return -EIO;
 	}
 

-- 
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 ` [PATCH v4 5/8] env: scsi: Add partition type GUID support and choice-based selection Balaji Selvanathan
2026-04-28  7:31 ` Balaji Selvanathan [this message]
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-6-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.