summaryrefslogtreecommitdiff
path: root/env
diff options
context:
space:
mode:
authorRogier Stam <rogier@unrailed.org>2022-05-11 23:20:28 +0200
committerTom Rini <trini@konsulko.com>2022-07-08 09:05:47 -0400
commit54ee5ae84191aa7c53c9de709f6c66411d3e2dda (patch)
treeb9ae82b2e33911a4a0b6bc300bef4911bd2cb8eb /env
parentea92f95d630cba9c3a324d250258ad2e35d9c997 (diff)
downloadu-boot-54ee5ae84191aa7c53c9de709f6c66411d3e2dda.tar.gz
u-boot-54ee5ae84191aa7c53c9de709f6c66411d3e2dda.tar.bz2
u-boot-54ee5ae84191aa7c53c9de709f6c66411d3e2dda.zip
Add SCSI scan for ENV in EXT4 or FAT
When having environment stored in EXT4 or FAT and using an AHCI or SCSI device / partition the scan would not be performed early enough and hence the device would not be recognized. This change adds the scan when the interface is "scsi" in a similar way to mmc_initialize. Signed-off-by: Rogier Stam <rogier@unrailed.org> Reviewed-by: Pali Rohár <pali@kernel.org>
Diffstat (limited to 'env')
-rw-r--r--env/ext4.c5
-rw-r--r--env/fat.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/env/ext4.c b/env/ext4.c
index 9f65afb8a4..47e05a4891 100644
--- a/env/ext4.c
+++ b/env/ext4.c
@@ -31,6 +31,7 @@
#include <errno.h>
#include <ext4fs.h>
#include <mmc.h>
+#include <scsi.h>
#include <asm/global_data.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -146,6 +147,10 @@ static int env_ext4_load(void)
if (!strcmp(ifname, "mmc"))
mmc_initialize(NULL);
#endif
+#if defined(CONFIG_AHCI) || defined(CONFIG_SCSI)
+ if (!strcmp(ifname, "scsi"))
+ scsi_scan(true);
+#endif
part = blk_get_device_part_str(ifname, dev_and_part,
&dev_desc, &info, 1);
diff --git a/env/fat.c b/env/fat.c
index 6251d9649b..3172130d75 100644
--- a/env/fat.c
+++ b/env/fat.c
@@ -17,6 +17,7 @@
#include <errno.h>
#include <fat.h>
#include <mmc.h>
+#include <scsi.h>
#include <asm/cache.h>
#include <asm/global_data.h>
#include <linux/stddef.h>
@@ -128,7 +129,12 @@ static int env_fat_load(void)
if (!strcmp(ifname, "mmc"))
mmc_initialize(NULL);
#endif
-
+#ifndef CONFIG_SPL_BUILD
+#if defined(CONFIG_AHCI) || defined(CONFIG_SCSI)
+ if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "scsi"))
+ scsi_scan(true);
+#endif
+#endif
part = blk_get_device_part_str(ifname, dev_and_part,
&dev_desc, &info, 1);
if (part < 0)