1 /* 2 * (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> 3 * (C) Copyright 2012 Renesas Solutions Corp. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 #include <common.h> 8 #include <asm/io.h> 9 10 #ifdef CONFIG_ARCH_CPU_INIT 11 int arch_cpu_init(void) 12 { 13 icache_enable(); 14 return 0; 15 } 16 #endif 17 18 #ifndef CONFIG_SYS_DCACHE_OFF 19 void enable_caches(void) 20 { 21 dcache_enable(); 22 } 23 #endif 24 25 #ifdef CONFIG_DISPLAY_CPUINFO 26 static u32 __rmobile_get_cpu_type(void) 27 { 28 return 0x0; 29 } 30 u32 rmobile_get_cpu_type(void) 31 __attribute__((weak, alias("__rmobile_get_cpu_type"))); 32 33 static u32 __rmobile_get_cpu_rev_integer(void) 34 { 35 return 0; 36 } 37 u32 rmobile_get_cpu_rev_integer(void) 38 __attribute__((weak, alias("__rmobile_get_cpu_rev_integer"))); 39 40 static u32 __rmobile_get_cpu_rev_fraction(void) 41 { 42 return 0; 43 } 44 u32 rmobile_get_cpu_rev_fraction(void) 45 __attribute__((weak, alias("__rmobile_get_cpu_rev_fraction"))); 46 47 /* CPU infomation table */ 48 static const struct { 49 u16 cpu_type; 50 u8 cpu_name[10]; 51 } rmobile_cpuinfo[] = { 52 { 0x37, "SH73A0" }, 53 { 0x40, "R8A7740" }, 54 { 0x45, "R8A7790" }, 55 { 0x47, "R8A7791" }, 56 { 0x4A, "R8A7792" }, 57 { 0x4B, "R8A7793" }, 58 { 0x4C, "R8A7794" }, 59 { 0x4F, "R8A7795" }, 60 { 0x52, "R8A7796" }, 61 { 0x0, "CPU" }, 62 }; 63 64 int print_cpuinfo(void) 65 { 66 int i = 0; 67 u32 cpu_type = rmobile_get_cpu_type(); 68 for (; i < ARRAY_SIZE(rmobile_cpuinfo); i++) { 69 if (rmobile_cpuinfo[i].cpu_type == cpu_type) { 70 printf("CPU: Renesas Electronics %s rev %d.%d\n", 71 rmobile_cpuinfo[i].cpu_name, 72 rmobile_get_cpu_rev_integer(), 73 rmobile_get_cpu_rev_fraction()); 74 break; 75 } 76 } 77 return 0; 78 } 79 #endif /* CONFIG_DISPLAY_CPUINFO */ 80