diff mbox series

[v1,1/3] cmd: bcm: add nitro boot command

Message ID 20200517083705.22508-2-rayagonda.kokatanur@broadcom.com
State New
Headers show
Series add custome commands for broadcom NS3 soc | expand

Commit Message

Rayagonda Kokatanur May 17, 2020, 8:37 a.m. UTC
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

Comments

Simon Glass May 25, 2020, 5:03 p.m. UTC | #1
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 mbox series

Patch

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);