cmd: broadcom: add bnxt boot command
authorTrac Hoang <trac.hoang@broadcom.com>
Thu, 20 Aug 2020 15:11:04 +0000 (20:41 +0530)
committerTom Rini <trini@konsulko.com>
Wed, 9 Sep 2020 20:57:35 +0000 (16:57 -0400)
Chimp is a core in Broadcom netxtream controller (bnxt).
Add command to load binary to chimp and boot bnxt.

Signed-off-by: Trac Hoang <trac.hoang@broadcom.com>
Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/broadcom/Makefile [new file with mode: 0644]
cmd/broadcom/chimp_boot.c [new file with mode: 0644]
include/broadcom/chimp.h

diff --git a/cmd/broadcom/Makefile b/cmd/broadcom/Makefile
new file mode 100644 (file)
index 0000000..22ccf2f
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright 2020 Broadcom
+
+obj-y += chimp_boot.o
diff --git a/cmd/broadcom/chimp_boot.c b/cmd/broadcom/chimp_boot.c
new file mode 100644 (file)
index 0000000..16f2b61
--- /dev/null
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 Broadcom
+ */
+
+#include <common.h>
+#include <command.h>
+#include <broadcom/chimp.h>
+
+static int do_chimp_fastboot_secure(struct cmd_tbl *cmdtp, int flag, int argc,
+                                   char *const argv[])
+{
+       u32 health = 0;
+
+       if (chimp_health_status_optee(&health)) {
+               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()) {
+               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"
+);
index 7f64152..73bb1c2 100644 (file)
@@ -9,6 +9,12 @@
 
 #include <linux/compiler.h>
 
+/*
+ * Chimp binary has health status like initialization complete,
+ * crash or running fine
+ */
+#define BCM_CHIMP_RUNNIG_GOOD  0x8000
+
 /**
  * chimp_fastboot_optee() - api to load bnxt firmware
  *