[PATCH v1 46/49] cmd: bcm: add nitro boot command
Rayagonda Kokatanur
rayagonda.kokatanur at broadcom.com
Mon Apr 27 12:52:04 CEST 2020
From: Trac Hoang <trac.hoang at broadcom.com>
Add command to boot nitro.
Signed-off-by: Trac Hoang <trac.hoang at broadcom.com>
Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur at broadcom.com>
---
cmd/bcm/Makefile | 1 +
cmd/bcm/chimp_boot.c | 36 ++++++++++++++++++++++++++++++++++++
include/brcm/chimp.h | 2 ++
3 files changed, 39 insertions(+)
create mode 100644 cmd/bcm/chimp_boot.c
diff --git a/cmd/bcm/Makefile b/cmd/bcm/Makefile
index 96dc8f7ad7..dc274f6b96 100644
--- a/cmd/bcm/Makefile
+++ b/cmd/bcm/Makefile
@@ -2,3 +2,4 @@
# Copyright 2020 Broadcom
obj-$(CONFIG_CMD_BCM_LOGSETUP) += logsetup.o
+obj-y += chimp_boot.o
diff --git a/cmd/bcm/chimp_boot.c b/cmd/bcm/chimp_boot.c
new file mode 100644
index 0000000000..dcab9a5bcb
--- /dev/null
+++ b/cmd/bcm/chimp_boot.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 Broadcom
+ */
+
+#include <command.h>
+#include <common.h>
+#include <brcm/chimp.h>
+
+static int do_chimp_fastboot_secure(cmd_tbl_t *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ u32 health = 0;
+
+ if (chimp_health_status_optee(&health) != BCM_CHIMP_SUCCESS) {
+ pr_err("Chimp health command fail\n");
+ return CMD_RET_FAILURE;
+ }
+
+ if (health == BCM_CHIMP_RUNNIG_GOOD) {
+ printf("skip fastboot...\n");
+ return CMD_RET_SUCCESS;
+ }
+
+ if (chimp_fastboot_optee() != BCM_CHIMP_SUCCESS) {
+ pr_err("Failed to load secure ChiMP image\n");
+ return CMD_RET_FAILURE;
+ }
+ return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD
+ (chimp_ld_secure, 1, 0, do_chimp_fastboot_secure,
+ "Invoke chimp fw load via optee",
+ "chimp_ld_secure\n"
+);
diff --git a/include/brcm/chimp.h b/include/brcm/chimp.h
index c3d4594c4b..9099a70ef5 100644
--- a/include/brcm/chimp.h
+++ b/include/brcm/chimp.h
@@ -13,6 +13,8 @@
#define BCM_CHIMP_SUCCESS 0
#define BCM_CHIMP_FAILURE (!BCM_CHIMP_SUCCESS)
+#define BCM_CHIMP_RUNNIG_GOOD 0x8000
+
#ifdef CONFIG_CHIMP_OPTEE
int chimp_fastboot_optee(void);
int chimp_health_status_optee(u32 *status);
--
2.17.1
More information about the U-Boot
mailing list