From 186879cdb22fd7569dae7f425711bed82a707bb4 Mon Sep 17 00:00:00 2001 From: Trac Hoang Date: Thu, 20 Aug 2020 20:41:04 +0530 Subject: [PATCH] cmd: broadcom: add bnxt boot command Chimp is a core in Broadcom netxtream controller (bnxt). Add command to load binary to chimp and boot bnxt. Signed-off-by: Trac Hoang Signed-off-by: Rayagonda Kokatanur Reviewed-by: Simon Glass --- cmd/broadcom/Makefile | 4 ++++ cmd/broadcom/chimp_boot.c | 37 +++++++++++++++++++++++++++++++++++++ include/broadcom/chimp.h | 6 ++++++ 3 files changed, 47 insertions(+) create mode 100644 cmd/broadcom/Makefile create mode 100644 cmd/broadcom/chimp_boot.c diff --git a/cmd/broadcom/Makefile b/cmd/broadcom/Makefile new file mode 100644 index 0000000000..22ccf2f334 --- /dev/null +++ b/cmd/broadcom/Makefile @@ -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 index 0000000000..16f2b612c4 --- /dev/null +++ b/cmd/broadcom/chimp_boot.c @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2020 Broadcom + */ + +#include +#include +#include + +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" +); diff --git a/include/broadcom/chimp.h b/include/broadcom/chimp.h index 7f64152913..73bb1c21e9 100644 --- a/include/broadcom/chimp.h +++ b/include/broadcom/chimp.h @@ -9,6 +9,12 @@ #include +/* + * 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 *