[PATCH v2 07/18] arm: mach-k3: j721e: Add detection for j721e

Lokesh Vutla lokeshvutla at ti.com
Mon Jul 27 11:45:32 CEST 2020


Add an api soc_is_j721e(), and use it to enable certain functionality
that is available only on j721e.

Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
Signed-off-by: Suman Anna <s-anna at ti.com>
---
 arch/arm/mach-k3/common.c                 | 10 ++++++++++
 arch/arm/mach-k3/include/mach/sys_proto.h |  2 ++
 arch/arm/mach-k3/j721e_init.c             |  3 +++
 3 files changed, 15 insertions(+)

diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
index eb72451d06..aec6c600b9 100644
--- a/arch/arm/mach-k3/common.c
+++ b/arch/arm/mach-k3/common.c
@@ -355,6 +355,16 @@ int print_cpuinfo(void)
 }
 #endif
 
+bool soc_is_j721e(void)
+{
+	u32 soc;
+
+	soc = (readl(CTRLMMR_WKUP_JTAG_ID) &
+		JTAG_ID_PARTNO_MASK) >> JTAG_ID_PARTNO_SHIFT;
+
+	return soc == J721E;
+}
+
 #ifdef CONFIG_ARM64
 void board_prep_linux(bootm_headers_t *images)
 {
diff --git a/arch/arm/mach-k3/include/mach/sys_proto.h b/arch/arm/mach-k3/include/mach/sys_proto.h
index 3c825aa3d1..48b11178c3 100644
--- a/arch/arm/mach-k3/include/mach/sys_proto.h
+++ b/arch/arm/mach-k3/include/mach/sys_proto.h
@@ -16,4 +16,6 @@ int do_board_detect(void);
 void release_resources_for_core_shutdown(void);
 int fdt_disable_node(void *blob, char *node_path);
 
+bool soc_is_j721e(void);
+
 #endif
diff --git a/arch/arm/mach-k3/j721e_init.c b/arch/arm/mach-k3/j721e_init.c
index 461a9d7f8f..3b15da2d7c 100644
--- a/arch/arm/mach-k3/j721e_init.c
+++ b/arch/arm/mach-k3/j721e_init.c
@@ -361,6 +361,9 @@ void start_non_linux_remote_cores(void)
 	int size = 0, ret;
 	u32 loadaddr = 0;
 
+	if (!soc_is_j721e())
+		return;
+
 	size = load_firmware("name_mainr5f0_0fw", "addr_mainr5f0_0load",
 			     &loadaddr);
 	if (size <= 0)
-- 
2.27.0



More information about the U-Boot mailing list