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

Andrew Davis afd at ti.com
Thu Apr 6 18:29:21 CEST 2023


On 4/6/23 10:59 AM, Christian Gmeiner wrote:
>>
>> 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 at ti.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..4f7bf68f5b6 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_J7200; \
> 
> This is not what you want. Maybe
>         return soc == JTAG_ID_PARTNO_##ID; \
> 

Ah, copy/paste error got me 😄 good catch, v4 on the way..

Thanks,
Andrew

>> +}
>> +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
>>
> 
> 


More information about the U-Boot mailing list