aboutsummaryrefslogtreecommitdiff
path: root/board/broadcom
diff options
context:
space:
mode:
authorRayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>2020-08-25 23:16:37 +0530
committerTom Rini <trini@konsulko.com>2020-09-09 16:57:35 -0400
commitaf071935d2c354f2250542f35e3178dd2660bfe1 (patch)
tree683287a91e306dfcb2e858110892c26e5ef0b0b6 /board/broadcom
parent975d2a6980ac12ca28c97328a6d900241f0e87dc (diff)
downloadu-boot-af071935d2c354f2250542f35e3178dd2660bfe1.zip
u-boot-af071935d2c354f2250542f35e3178dd2660bfe1.tar.gz
u-boot-af071935d2c354f2250542f35e3178dd2660bfe1.tar.bz2
board: ns3: check bnxt chimp handshake status
Chimp is a core in Broadcom netxtream controller (bnxt). Add support to check bnxt's chimp component status. Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'board/broadcom')
-rw-r--r--board/broadcom/bcmns3/ns3.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/board/broadcom/bcmns3/ns3.c b/board/broadcom/bcmns3/ns3.c
index 0357cd0..10ae344 100644
--- a/board/broadcom/bcmns3/ns3.c
+++ b/board/broadcom/bcmns3/ns3.c
@@ -12,6 +12,7 @@
#include <asm/armv8/mmu.h>
#include <asm/arch-bcmns3/bl33_info.h>
#include <dt-bindings/memory/bcm-ns3-mc.h>
+#include <broadcom/chimp.h>
/* Default reset-level = 3 and strap-val = 0 */
#define L3_RESET 30
@@ -210,8 +211,24 @@ void reset_cpu(ulong level)
#ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *fdt, struct bd_info *bd)
{
+ u32 chimp_hs = CHIMP_HANDSHAKE_WAIT_TIMEOUT;
+
gic_lpi_tables_init();
+ /*
+ * Check for chimp handshake status.
+ * Zero timeout value will actually fall to default timeout.
+ *
+ * System boot is independent of chimp handshake.
+ * chimp handshake failure is not a catastrophic error.
+ * Hence continue booting if chimp handshake fails.
+ */
+ chimp_handshake_status_optee(0, &chimp_hs);
+ if (chimp_hs == CHIMP_HANDSHAKE_SUCCESS)
+ printf("ChiMP handshake successful\n");
+ else
+ printf("ERROR: ChiMP handshake status 0x%x\n", chimp_hs);
+
return mem_info_parse_fixup(fdt);
}
#endif /* CONFIG_OF_BOARD_SETUP */