Merge branch 'master' of git://git.denx.de/u-boot-spi
[platform/kernel/u-boot.git] / arch / arm / mach-rmobile / cpu_info.c
index 4e6a191..65a9ca8 100644 (file)
@@ -5,7 +5,10 @@
  */
 #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)
 {
@@ -20,6 +23,7 @@ void enable_caches(void)
        dcache_enable();
 }
 #endif
+#endif
 
 #ifdef CONFIG_DISPLAY_CPUINFO
 static u32 __rmobile_get_cpu_type(void)
@@ -59,23 +63,46 @@ static const struct {
        { 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 */