Re: [PATCH v4 02/12] arm: mach-k3: Move J721e SoC detection out of common section

Christian Gmeiner
2023-04-09T10:26:33Z

>
> This belongs in the J721e specific file as it is the only place
> this is used. Any board level users should use the SOC driver.
>
> While here, move the J721e and J7200 SoC IDs out of sys_proto.h
> and into hardware.h. Use a macro borrowed from Rockchip and add
> the rest of the SoC IDs for completeness and later use.
>
> Signed-off-by: Andrew Davis <afd@ti.com>

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>

> ---
> arch/arm/mach-k3/common.c | 20 ------------------
> arch/arm/mach-k3/common.h | 3 ---
> arch/arm/mach-k3/include/mach/hardware.h | 25 +++++++++++++++++++++++
> arch/arm/mach-k3/include/mach/sys_proto.h | 3 ---
> 4 files changed, 25 insertions(+), 26 deletions(-)
>
> diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
> index 6870f13c520..6e084de692c 100644
> --- a/arch/arm/mach-k3/common.c
> +++ b/arch/arm/mach-k3/common.c
> @@ -488,26 +488,6 @@ 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;
> -}
> -
> -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(struct bootm_headers *images)
> {
> diff --git a/arch/arm/mach-k3/common.h b/arch/arm/mach-k3/common.h
> index 8f38fcef7f0..531be0be54c 100644
> --- a/arch/arm/mach-k3/common.h
> +++ b/arch/arm/mach-k3/common.h
> @@ -9,9 +9,6 @@
> #include <asm/armv7_mpu.h>
> #include <asm/hardware.h>
>
> -#define J721E 0xbb64
> -#define J7200 0xbb6d
> -
> struct fwl_data {
> const char *name;
> u16 fwl_id;
> diff --git a/arch/arm/mach-k3/include/mach/hardware.h b/arch/arm/mach-k3/include/mach/hardware.h
> index 2c60ef85432..9faf1d6ff06 100644
> --- a/arch/arm/mach-k3/include/mach/hardware.h
> +++ b/arch/arm/mach-k3/include/mach/hardware.h
> @@ -6,6 +6,8 @@
> #ifndef _ASM_ARCH_HARDWARE_H_
> #define _ASM_ARCH_HARDWARE_H_
>
> +#include <asm/io.h>
> +
> #ifdef CONFIG_SOC_K3_AM654
> #include "am6_hardware.h"
> #endif
> @@ -36,6 +38,29 @@
> #define JTAG_ID_VARIANT_MASK (0xf << 28)
> #define JTAG_ID_PARTNO_SHIFT 12
> #define JTAG_ID_PARTNO_MASK (0xffff << 12)
> +#define JTAG_ID_PARTNO_AM65X 0xbb5a
> +#define JTAG_ID_PARTNO_J721E 0xbb64
> +#define JTAG_ID_PARTNO_J7200 0xbb6d
> +#define JTAG_ID_PARTNO_AM64X 0xbb38
> +#define JTAG_ID_PARTNO_J721S2 0xbb75
> +#define JTAG_ID_PARTNO_AM62X 0xbb7e
> +#define JTAG_ID_PARTNO_AM62AX 0xbb8d
> +
> +#define K3_SOC_ID(id, ID) \
> +static inline bool soc_is_##id(void) \
> +{ \
> + u32 soc = (readl(CTRLMMR_WKUP_JTAG_ID) & \
> + JTAG_ID_PARTNO_MASK) >> JTAG_ID_PARTNO_SHIFT; \
> + return soc == JTAG_ID_PARTNO_##ID; \
> +}
> +K3_SOC_ID(am65x, AM65X)
> +K3_SOC_ID(j721e, J721E)
> +K3_SOC_ID(j7200, J7200)
> +K3_SOC_ID(am64x, AM64X)
> +K3_SOC_ID(j721s2, J721S2)
> +K3_SOC_ID(am62x, AM62X)
> +K3_SOC_ID(am62ax, AM62AX)
> +
> #define K3_SEC_MGR_SYS_STATUS 0x44234100
> #define SYS_STATUS_DEV_TYPE_SHIFT 0
> #define SYS_STATUS_DEV_TYPE_MASK (0xf)
> diff --git a/arch/arm/mach-k3/include/mach/sys_proto.h b/arch/arm/mach-k3/include/mach/sys_proto.h
> index 0b5d606eaa2..d5d4b787b7d 100644
> --- a/arch/arm/mach-k3/include/mach/sys_proto.h
> +++ b/arch/arm/mach-k3/include/mach/sys_proto.h
> @@ -15,9 +15,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);
> -bool soc_is_j7200(void);
> -
> void k3_spl_init(void);
> void k3_mem_init(void);
> bool check_rom_loaded_sysfw(void);
> --
> 2.39.2
>

--
greets
--
Christian Gmeiner, MSc