diff options
Diffstat (limited to 'env')
-rw-r--r-- | env/ext4.c | 10 | ||||
-rw-r--r-- | env/fat.c | 12 | ||||
-rw-r--r-- | env/sf.c | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/env/ext4.c b/env/ext4.c index d92c844ea6c..c8122b4d22c 100644 --- a/env/ext4.c +++ b/env/ext4.c @@ -22,6 +22,7 @@ #include <command.h> #include <env.h> +#include <init.h> #include <env_internal.h> #include <linux/stddef.h> #include <malloc.h> @@ -30,6 +31,7 @@ #include <errno.h> #include <ext4fs.h> #include <mmc.h> +#include <nvme.h> #include <scsi.h> #include <virtio.h> #include <asm/global_data.h> @@ -156,6 +158,14 @@ static int env_ext4_load(void) virtio_init(); #endif +#if defined(CONFIG_NVME) + if (!strcmp(ifname, "nvme")) { + if (IS_ENABLED(CONFIG_PCI)) + pci_init(); + + nvme_scan_namespace(); + } +#endif part = blk_get_device_part_str(ifname, dev_and_part, &dev_desc, &info, 1); if (part < 0) diff --git a/env/fat.c b/env/fat.c index 65ee1c8e086..58c279ff769 100644 --- a/env/fat.c +++ b/env/fat.c @@ -14,8 +14,10 @@ #include <memalign.h> #include <search.h> #include <errno.h> +#include <init.h> #include <fat.h> #include <mmc.h> +#include <nvme.h> #include <scsi.h> #include <virtio.h> #include <asm/cache.h> @@ -129,13 +131,21 @@ static int env_fat_load(void) #endif #ifndef CONFIG_XPL_BUILD #if defined(CONFIG_AHCI) || defined(CONFIG_SCSI) - if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "scsi")) + if (!strcmp(ifname, "scsi")) scsi_scan(true); #endif #if defined(CONFIG_VIRTIO) if (!strcmp(ifname, "virtio")) virtio_init(); #endif +#if defined(CONFIG_NVME) + if (!strcmp(ifname, "nvme")) { + if (IS_ENABLED(CONFIG_PCI)) + pci_init(); + + nvme_scan_namespace(); + } +#endif #endif part = blk_get_device_part_str(ifname, dev_and_part, &dev_desc, &info, 1); @@ -148,7 +148,7 @@ static int env_sf_save(void) puts("done\n"); - gd->env_valid = gd->env_valid == ENV_REDUND ? ENV_VALID : ENV_REDUND; + gd->env_valid = gd->env_valid == ENV_VALID ? ENV_REDUND : ENV_VALID; printf("Valid environment: %d\n", (int)gd->env_valid); |