diff options
Diffstat (limited to 'arch/arm/mach-rmobile')
-rw-r--r-- | arch/arm/mach-rmobile/Kconfig | 19 | ||||
-rw-r--r-- | arch/arm/mach-rmobile/Kconfig.rzn1 | 20 | ||||
-rw-r--r-- | arch/arm/mach-rmobile/cpu_info-rcar.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-rmobile/cpu_info.c | 17 |
4 files changed, 58 insertions, 4 deletions
diff --git a/arch/arm/mach-rmobile/Kconfig b/arch/arm/mach-rmobile/Kconfig index 1ef7d68bdf3..3061ccd34c8 100644 --- a/arch/arm/mach-rmobile/Kconfig +++ b/arch/arm/mach-rmobile/Kconfig @@ -48,6 +48,24 @@ config RZA1 prompt "Renesas ARM SoCs RZ/A1 (32bit)" select CPU_V7A +config RZN1 + prompt "Renesas ARM SoCs RZ/N1 (32bit)" + select CPU_V7A + select ARMV7_SET_CORTEX_SMPEN if !SPL + select SPL_ARMV7_SET_CORTEX_SMPEN if SPL + select CLK + select CLK_RENESAS + select CLK_R9A06G032 + select DM + select DM_ETH + select DM_SERIAL + select PINCTRL + select PINCONF + select REGMAP + select SYSRESET + select SYSRESET_SYSCON + imply CMD_DM + endchoice config SYS_SOC @@ -56,5 +74,6 @@ config SYS_SOC source "arch/arm/mach-rmobile/Kconfig.32" source "arch/arm/mach-rmobile/Kconfig.64" source "arch/arm/mach-rmobile/Kconfig.rza1" +source "arch/arm/mach-rmobile/Kconfig.rzn1" endif diff --git a/arch/arm/mach-rmobile/Kconfig.rzn1 b/arch/arm/mach-rmobile/Kconfig.rzn1 new file mode 100644 index 00000000000..73138d69f95 --- /dev/null +++ b/arch/arm/mach-rmobile/Kconfig.rzn1 @@ -0,0 +1,20 @@ +if RZN1 + +choice + prompt "Renesas RZ/N1 Board select" + default TARGET_SCHNEIDER_RZN1 + +config TARGET_SCHNEIDER_RZN1 + bool "Schneider RZN1 board" + help + Support the Schneider RZN1D and RZN1S boards, which are based + on the Renesas RZ/N1 SoC. + +endchoice + +config SYS_SOC + default "rzn1" + +source "board/schneider/rzn1-snarc/Kconfig" + +endif diff --git a/arch/arm/mach-rmobile/cpu_info-rcar.c b/arch/arm/mach-rmobile/cpu_info-rcar.c index 62017f52c3b..8fc4cd7f9de 100644 --- a/arch/arm/mach-rmobile/cpu_info-rcar.c +++ b/arch/arm/mach-rmobile/cpu_info-rcar.c @@ -11,6 +11,7 @@ #define R8A7796_REV_1_0 0x5200 #define R8A7796_REV_1_1 0x5210 #define R8A7796_REV_1_3 0x5211 +#define R8A77995_REV_1_1 0x5810 static u32 rmobile_get_prr(void) { @@ -30,7 +31,8 @@ u32 rmobile_get_cpu_rev_integer(void) const u32 prr = rmobile_get_prr(); const u32 rev = prr & PRR_MASK; - if (rev == R8A7796_REV_1_1 || rev == R8A7796_REV_1_3) + if (rev == R8A7796_REV_1_1 || rev == R8A7796_REV_1_3 || + rev == R8A77995_REV_1_1) return 1; else return ((prr & 0x000000F0) >> 4) + 1; @@ -41,7 +43,7 @@ u32 rmobile_get_cpu_rev_fraction(void) const u32 prr = rmobile_get_prr(); const u32 rev = prr & PRR_MASK; - if (rev == R8A7796_REV_1_1) + if (rev == R8A7796_REV_1_1 || rev == R8A77995_REV_1_1) return 1; else if (rev == R8A7796_REV_1_3) return 3; diff --git a/arch/arm/mach-rmobile/cpu_info.c b/arch/arm/mach-rmobile/cpu_info.c index 7e7465a2c8b..1d33e2aa9da 100644 --- a/arch/arm/mach-rmobile/cpu_info.c +++ b/arch/arm/mach-rmobile/cpu_info.c @@ -30,7 +30,7 @@ void enable_caches(void) #endif #ifdef CONFIG_DISPLAY_CPUINFO -#ifndef CONFIG_RZA1 +#if !defined(CONFIG_RZA1) && !defined(CONFIG_RZN1) __weak const u8 *rzg_get_cpu_name(void) { return 0; @@ -120,17 +120,30 @@ int print_cpuinfo(void) { int i = rmobile_cpuinfo_idx(); + if (rmobile_cpuinfo[i].cpu_type == RMOBILE_CPU_TYPE_R8A7796 && + rmobile_get_cpu_rev_integer() == 1 && + rmobile_get_cpu_rev_fraction() == 1) { + printf("CPU: Renesas Electronics %s rev 1.1/1.2\n", get_cpu_name(i)); + return 0; + } + printf("CPU: Renesas Electronics %s rev %d.%d\n", get_cpu_name(i), rmobile_get_cpu_rev_integer(), rmobile_get_cpu_rev_fraction()); return 0; } -#else +#elif defined(CONFIG_RZA1) int print_cpuinfo(void) { printf("CPU: Renesas Electronics RZ/A1\n"); return 0; } +#else /* CONFIG_RZN1 */ +int print_cpuinfo(void) +{ + printf("CPU: Renesas Electronics RZ/N1\n"); + return 0; +} #endif #endif /* CONFIG_DISPLAY_CPUINFO */ |