Message ID | 20200517083705.22508-2-rayagonda.kokatanur@broadcom.com |
---|---|
State | New |
Headers | show |
Series | add custome commands for broadcom NS3 soc | expand |
Hi Rayagonda, On Sun, 17 May 2020 at 02:37, Rayagonda Kokatanur <rayagonda.kokatanur at broadcom.com> wrote: > > 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 There seems to be a general lack of documentation in your patches. What is nitro? What is Chimp? > > 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> common.h always goes first > +#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 > + Please add comment. What does running good mean? > #ifdef CONFIG_CHIMP_OPTEE > int chimp_fastboot_optee(void); > int chimp_health_status_optee(u32 *status); Function comments. > -- > 2.17.1 > Regards, Simon
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);