On 06/05/2025 09:24, Varadarajan Narayanan wrote:
Allow SCSI to be able to store environment variables.

Signed-off-by: Varadarajan Narayanan <quic_var...@quicinc.com>
---
  env/Kconfig            |  15 +++++-
  env/Makefile           |   1 +
  env/env.c              |   3 ++
  env/scsi.c             | 115 +++++++++++++++++++++++++++++++++++++++++
  include/env_internal.h |   1 +
  5 files changed, 134 insertions(+), 1 deletion(-)
  create mode 100644 env/scsi.c

diff --git a/env/Kconfig b/env/Kconfig
index 9f5ec44601e..9496975f212 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -74,7 +74,7 @@ config ENV_IS_DEFAULT
                     !ENV_IS_IN_MMC && !ENV_IS_IN_NAND && \
                     !ENV_IS_IN_NVRAM && !ENV_IS_IN_ONENAND && \
                     !ENV_IS_IN_REMOTE && !ENV_IS_IN_SPI_FLASH && \
-                    !ENV_IS_IN_UBI && !ENV_IS_IN_MTD
+                    !ENV_IS_IN_UBI && !ENV_IS_IN_MTD && !ENV_IS_IN_SCSI
        select ENV_IS_NOWHERE
config ENV_IS_NOWHERE
@@ -297,6 +297,13 @@ config ENV_IS_IN_NAND
          Currently, CONFIG_ENV_OFFSET_REDUND is not supported when
          using CONFIG_ENV_OFFSET_OOB.
+config ENV_IS_IN_SCSI
+       bool "Environment in an SCSI device"
+       depends on SCSI
+       help
+         Define this if you have an SCSI device which you want to use for the
+         environment.
+
  config ENV_RANGE
        hex "Length of the region in which the environment can be written"
        depends on ENV_IS_IN_NAND
@@ -731,6 +738,12 @@ config ENV_MMC_USE_DT
          The 2 defines CONFIG_ENV_OFFSET, CONFIG_ENV_OFFSET_REDUND
          are not used as fallback.
+config SCSI_ENV_PART

This should be SCSI_ENV_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 USE_DEFAULT_ENV_FILE
        bool "Create default environment from file"

<snip>

+};
diff --git a/include/env_internal.h b/include/env_internal.h
index ee939ba4293..75b46d0bcb0 100644
--- a/include/env_internal.h
+++ b/include/env_internal.h
@@ -115,6 +115,7 @@ enum env_location {
        ENVL_SPI_FLASH,
        ENVL_MTD,
        ENVL_UBI,
+       ENVL_SCSI,
        ENVL_NOWHERE,
ENVL_COUNT,

Wider question, what is specific to scsi here ? it could work with any block 
device.

Neil

Reply via email to