aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt2018-12-21 02:18:16 +0100
committerAlexander Graf2019-02-13 09:40:05 +0100
commit9493e39cd4efef1dcd8420235685b90a0190f752 (patch)
tree58f3a71b55ca1ea26fd1c719cbfb9e4c7cbd4f9d
parentabb93cb0e548fbf3b6d88e044b52bb8bc8773577 (diff)
distro_bootcmd: add NVME support
Some boards support NVME drives. We should be able to use them as boot devices. NVME access requires running 'nvme scan'. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--include/config_distro_bootcmd.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h
index 555efb7433f..fa0e017b56e 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -178,6 +178,31 @@
BOOT_TARGET_DEVICES_references_SATA_without_CONFIG_SATA
#endif
+#ifdef CONFIG_NVME
+#define BOOTENV_RUN_NVME_INIT "run nvme_init; "
+#define BOOTENV_SET_NVME_NEED_INIT "setenv nvme_need_init; "
+#define BOOTENV_SHARED_NVME \
+ "nvme_init=" \
+ "if ${nvme_need_init}; then " \
+ "setenv nvme_need_init false; " \
+ "nvme scan; " \
+ "fi\0" \
+ \
+ "nvme_boot=" \
+ BOOTENV_RUN_NVME_INIT \
+ BOOTENV_SHARED_BLKDEV_BODY(nvme)
+#define BOOTENV_DEV_NVME BOOTENV_DEV_BLKDEV
+#define BOOTENV_DEV_NAME_NVME BOOTENV_DEV_NAME_BLKDEV
+#else
+#define BOOTENV_RUN_NVME_INIT
+#define BOOTENV_SET_NVME_NEED_INIT
+#define BOOTENV_SHARED_NVME
+#define BOOTENV_DEV_NVME \
+ BOOT_TARGET_DEVICES_references_NVME_without_CONFIG_NVME
+#define BOOTENV_DEV_NAME_NVME \
+ BOOT_TARGET_DEVICES_references_NVME_without_CONFIG_NVME
+#endif
+
#ifdef CONFIG_SCSI
#define BOOTENV_RUN_SCSI_INIT "run scsi_init; "
#define BOOTENV_SET_SCSI_NEED_INIT "setenv scsi_need_init; "
@@ -359,6 +384,7 @@
BOOTENV_SHARED_USB \
BOOTENV_SHARED_SATA \
BOOTENV_SHARED_SCSI \
+ BOOTENV_SHARED_NVME \
BOOTENV_SHARED_IDE \
BOOTENV_SHARED_UBIFS \
BOOTENV_SHARED_EFI \
@@ -423,6 +449,7 @@
BOOT_TARGET_DEVICES(BOOTENV_DEV) \
\
"distro_bootcmd=" BOOTENV_SET_SCSI_NEED_INIT \
+ BOOTENV_SET_NVME_NEED_INIT \
"for target in ${boot_targets}; do " \
"run bootcmd_${target}; " \
"done\0"