+// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
* (C) Copyright 2012 Renesas Solutions Corp.
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <asm/io.h>
+#include <linux/ctype.h>
+/* R-Car Gen3 caches are enabled in memmap-gen3.c */
+#ifndef CONFIG_RCAR_GEN3
#ifdef CONFIG_ARCH_CPU_INIT
int arch_cpu_init(void)
{
dcache_enable();
}
#endif
+#endif
#ifdef CONFIG_DISPLAY_CPUINFO
static u32 __rmobile_get_cpu_type(void)
u16 cpu_type;
u8 cpu_name[10];
} rmobile_cpuinfo[] = {
- { 0x37, "SH73A0" },
- { 0x40, "R8A7740" },
- { 0x45, "R8A7790" },
- { 0x47, "R8A7791" },
- { 0x4A, "R8A7792" },
- { 0x4B, "R8A7793" },
- { 0x4C, "R8A7794" },
+ { RMOBILE_CPU_TYPE_SH73A0, "SH73A0" },
+ { RMOBILE_CPU_TYPE_R8A7740, "R8A7740" },
+ { RMOBILE_CPU_TYPE_R8A7790, "R8A7790" },
+ { RMOBILE_CPU_TYPE_R8A7791, "R8A7791" },
+ { RMOBILE_CPU_TYPE_R8A7792, "R8A7792" },
+ { RMOBILE_CPU_TYPE_R8A7793, "R8A7793" },
+ { RMOBILE_CPU_TYPE_R8A7794, "R8A7794" },
+ { RMOBILE_CPU_TYPE_R8A7795, "R8A7795" },
+ { RMOBILE_CPU_TYPE_R8A7796, "R8A7796" },
+ { RMOBILE_CPU_TYPE_R8A77965, "R8A77965" },
+ { RMOBILE_CPU_TYPE_R8A77970, "R8A77970" },
+ { RMOBILE_CPU_TYPE_R8A77990, "R8A77990" },
+ { RMOBILE_CPU_TYPE_R8A77995, "R8A77995" },
{ 0x0, "CPU" },
};
-int print_cpuinfo(void)
+static int rmobile_cpuinfo_idx(void)
{
int i = 0;
u32 cpu_type = rmobile_get_cpu_type();
- for (; i < ARRAY_SIZE(rmobile_cpuinfo); i++) {
- if (rmobile_cpuinfo[i].cpu_type == cpu_type) {
- printf("CPU: Renesas Electronics %s rev %d.%d\n",
- rmobile_cpuinfo[i].cpu_name,
- rmobile_get_cpu_rev_integer(),
- rmobile_get_cpu_rev_fraction());
+
+ for (; i < ARRAY_SIZE(rmobile_cpuinfo); i++)
+ if (rmobile_cpuinfo[i].cpu_type == cpu_type)
break;
- }
- }
+
+ return i;
+}
+
+#ifdef CONFIG_ARCH_MISC_INIT
+int arch_misc_init(void)
+{
+ int i, idx = rmobile_cpuinfo_idx();
+ char cpu[10] = { 0 };
+
+ for (i = 0; i < sizeof(cpu); i++)
+ cpu[i] = tolower(rmobile_cpuinfo[idx].cpu_name[i]);
+
+ env_set("platform", cpu);
+
+ return 0;
+}
+#endif
+
+int print_cpuinfo(void)
+{
+ int i = rmobile_cpuinfo_idx();
+
+ printf("CPU: Renesas Electronics %s rev %d.%d\n",
+ rmobile_cpuinfo[i].cpu_name, rmobile_get_cpu_rev_integer(),
+ rmobile_get_cpu_rev_fraction());
+
return 0;
}
#endif /* CONFIG_DISPLAY_CPUINFO */