Add SCSI scan for ENV in EXT4 or FAT

Hi
This updated version of the patch fixes a problem noticed by Stefan Roese where the CI build fails for the dra7xx_hs_evm_usb_defconfig target if this patch is included
Let me know if any other changes are needed.
Thanks and regards
Rogier

From: Rogier Stam rogier@unrailed.org
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 --- env/ext4.c | 5 +++++ env/fat.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/env/ext4.c b/env/ext4.c index 9f65afb..47e05a4 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 6251d96..3172130 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)

On Wed, May 11, 2022 at 11:20:28PM +0200, rogier@unrailed.org wrote:
From: Rogier Stam rogier@unrailed.org
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
Applied to u-boot/next, thanks!
participants (2)
-
rogier@unrailed.org
-
Tom Rini