add boottype command, which saves the boot_type
primary (0) or fallback (1) in environment
variable "boottype". If argument "print" is
passed, it also prints the boottype on console.

Signed-off-by: Heiko Schocher <[email protected]>
Signed-off-by: Walter Schweizer <[email protected]>
---

 arch/arm/mach-imx/imx8/misc.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm/mach-imx/imx8/misc.c b/arch/arm/mach-imx/imx8/misc.c
index c77104d0338..f233432f608 100644
--- a/arch/arm/mach-imx/imx8/misc.c
+++ b/arch/arm/mach-imx/imx8/misc.c
@@ -1,4 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
+#include <command.h>
+#include <env.h>
 #include <log.h>
 #include <firmware/imx/sci/sci.h>
 #include <asm/mach-imx/sys_proto.h>
@@ -62,3 +64,28 @@ void build_info(void)
        printf("Build: SCFW %08x, SECO-FW %08x, ATF %s\n",
               sc_commit, seco_commit, (char *)&atf_commit);
 }
+
+int do_boottype(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])
+{
+       sc_misc_bt_t boot_type;
+
+       if (argc > 2)
+               return CMD_RET_USAGE;
+
+       if (sc_misc_get_boot_type(-1, &boot_type) != 0) {
+               puts("boottype cannot be retrieved\n");
+               return CMD_RET_FAILURE;
+       }
+
+       if (argc > 1)
+               printf("Boottype: %d\n", boot_type);
+
+       env_set_ulong("boottype", boot_type);
+
+       return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD(boottype, CONFIG_SYS_MAXARGS, 2, do_boottype,
+          "save current boot-container in env variable 'boottype'",
+          "[print] - print current boottype"
+);
-- 
2.20.1

Reply via email to