From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lokesh Vutla Date: Thu, 23 Jul 2020 14:17:09 +0530 Subject: [PATCH 09/18] arm: mach-k3: j7200: Add support for SOC detection In-Reply-To: <20200723084718.19430-1-lokeshvutla@ti.com> References: <20200723084718.19430-1-lokeshvutla@ti.com> Message-ID: <20200723084718.19430-10-lokeshvutla@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de The J7200 SoC is a part of the K3 Multicore SoC architecture platform. It is targeted for automotive gateway, vehicle compute systems, Vehicle-to-Vehicle (V2V) and Vehicle-to-Everything (V2X) applications. The SoC aims to meet the complex processing needs of modern embedded products. Some highlights of this SoC are: * Dual Cortex-A72s in a single cluster, two clusters of lockstep capable dual Cortex-R5F MCUs and a Centralized Device Management and Security Controller (DMSC). * Configurable L3 Cache and IO-coherent architecture with high data throughput capable distributed DMA architecture under NAVSS. * Integrated Ethernet switch supporting up to a total of 4 external ports in addition to legacy Ethernet switch of up to 2 ports. * Upto 1 PCIe-GEN3 controller, 1 USB3.0 Dual-role device subsystems, 20 MCANs, 3 McASP, eMMC and SD, OSPI/HyperBus memory controller, I3C and I2C, eCAP/eQEP, eHRPWM among other peripherals. * One hardware accelerator block containing AES/DES/SHA/MD5 called SA2UL management. See J7200 Technical Reference Manual (SPRUIU1, June 2020) for further details: https://www.ti.com/lit/pdf/spruiu1 Add support for detection J7200 SoC Signed-off-by: Lokesh Vutla Signed-off-by: Suman Anna --- arch/arm/mach-k3/common.c | 10 ++++++++++ arch/arm/mach-k3/common.h | 1 + arch/arm/mach-k3/include/mach/sys_proto.h | 1 + 3 files changed, 12 insertions(+) diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c index aec6c600b9..d065bdbc83 100644 --- a/arch/arm/mach-k3/common.c +++ b/arch/arm/mach-k3/common.c @@ -365,6 +365,16 @@ bool soc_is_j721e(void) return soc == J721E; } +bool soc_is_j7200(void) +{ + u32 soc; + + soc = (readl(CTRLMMR_WKUP_JTAG_ID) & + JTAG_ID_PARTNO_MASK) >> JTAG_ID_PARTNO_SHIFT; + + return soc == J7200; +} + #ifdef CONFIG_ARM64 void board_prep_linux(bootm_headers_t *images) { diff --git a/arch/arm/mach-k3/common.h b/arch/arm/mach-k3/common.h index e8cc3daac1..8f5a5f323a 100644 --- a/arch/arm/mach-k3/common.h +++ b/arch/arm/mach-k3/common.h @@ -10,6 +10,7 @@ #define AM65X 0xbb5a #define J721E 0xbb64 +#define J7200 0xbb6d #define REV_PG1_0 0 #define REV_PG2_0 1 diff --git a/arch/arm/mach-k3/include/mach/sys_proto.h b/arch/arm/mach-k3/include/mach/sys_proto.h index 48b11178c3..60287b261c 100644 --- a/arch/arm/mach-k3/include/mach/sys_proto.h +++ b/arch/arm/mach-k3/include/mach/sys_proto.h @@ -17,5 +17,6 @@ void release_resources_for_core_shutdown(void); int fdt_disable_node(void *blob, char *node_path); bool soc_is_j721e(void); +bool soc_is_j7200(void); #endif -- 2.27.0