1badbb63cSNobuhiro Iwamatsu /* 2badbb63cSNobuhiro Iwamatsu * (C) Copyright 2012 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> 3badbb63cSNobuhiro Iwamatsu * (C) Copyright 2012 Renesas Solutions Corp. 4badbb63cSNobuhiro Iwamatsu * 5badbb63cSNobuhiro Iwamatsu * SPDX-License-Identifier: GPL-2.0+ 6badbb63cSNobuhiro Iwamatsu */ 7badbb63cSNobuhiro Iwamatsu #include <common.h> 8badbb63cSNobuhiro Iwamatsu #include <asm/io.h> 9badbb63cSNobuhiro Iwamatsu 10badbb63cSNobuhiro Iwamatsu #ifdef CONFIG_ARCH_CPU_INIT 11badbb63cSNobuhiro Iwamatsu int arch_cpu_init(void) 12badbb63cSNobuhiro Iwamatsu { 13badbb63cSNobuhiro Iwamatsu icache_enable(); 14badbb63cSNobuhiro Iwamatsu return 0; 15badbb63cSNobuhiro Iwamatsu } 16badbb63cSNobuhiro Iwamatsu #endif 17badbb63cSNobuhiro Iwamatsu 18badbb63cSNobuhiro Iwamatsu #ifndef CONFIG_SYS_DCACHE_OFF 19badbb63cSNobuhiro Iwamatsu void enable_caches(void) 20badbb63cSNobuhiro Iwamatsu { 21a523af69SMarek Vasut #if defined(CONFIG_RCAR_GEN3) 22a523af69SMarek Vasut rcar_gen3_memmap_fixup(); 23a523af69SMarek Vasut #endif 24badbb63cSNobuhiro Iwamatsu dcache_enable(); 25badbb63cSNobuhiro Iwamatsu } 26badbb63cSNobuhiro Iwamatsu #endif 27badbb63cSNobuhiro Iwamatsu 28badbb63cSNobuhiro Iwamatsu #ifdef CONFIG_DISPLAY_CPUINFO 29badbb63cSNobuhiro Iwamatsu static u32 __rmobile_get_cpu_type(void) 30badbb63cSNobuhiro Iwamatsu { 31badbb63cSNobuhiro Iwamatsu return 0x0; 32badbb63cSNobuhiro Iwamatsu } 33badbb63cSNobuhiro Iwamatsu u32 rmobile_get_cpu_type(void) 34badbb63cSNobuhiro Iwamatsu __attribute__((weak, alias("__rmobile_get_cpu_type"))); 35badbb63cSNobuhiro Iwamatsu 36badbb63cSNobuhiro Iwamatsu static u32 __rmobile_get_cpu_rev_integer(void) 37badbb63cSNobuhiro Iwamatsu { 38badbb63cSNobuhiro Iwamatsu return 0; 39badbb63cSNobuhiro Iwamatsu } 40badbb63cSNobuhiro Iwamatsu u32 rmobile_get_cpu_rev_integer(void) 41badbb63cSNobuhiro Iwamatsu __attribute__((weak, alias("__rmobile_get_cpu_rev_integer"))); 42badbb63cSNobuhiro Iwamatsu 43badbb63cSNobuhiro Iwamatsu static u32 __rmobile_get_cpu_rev_fraction(void) 44badbb63cSNobuhiro Iwamatsu { 45badbb63cSNobuhiro Iwamatsu return 0; 46badbb63cSNobuhiro Iwamatsu } 47badbb63cSNobuhiro Iwamatsu u32 rmobile_get_cpu_rev_fraction(void) 48badbb63cSNobuhiro Iwamatsu __attribute__((weak, alias("__rmobile_get_cpu_rev_fraction"))); 49badbb63cSNobuhiro Iwamatsu 50badbb63cSNobuhiro Iwamatsu /* CPU infomation table */ 51badbb63cSNobuhiro Iwamatsu static const struct { 52badbb63cSNobuhiro Iwamatsu u16 cpu_type; 53badbb63cSNobuhiro Iwamatsu u8 cpu_name[10]; 54badbb63cSNobuhiro Iwamatsu } rmobile_cpuinfo[] = { 55262e9156SMarek Vasut { RMOBILE_CPU_TYPE_SH73A0, "SH73A0" }, 56262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7740, "R8A7740" }, 57262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7790, "R8A7790" }, 58262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7791, "R8A7791" }, 59262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7792, "R8A7792" }, 60262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7793, "R8A7793" }, 61262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7794, "R8A7794" }, 62262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7795, "R8A7795" }, 63262e9156SMarek Vasut { RMOBILE_CPU_TYPE_R8A7796, "R8A7796" }, 64*5cb19e7aSMarek Vasut { RMOBILE_CPU_TYPE_R8A77970, "R8A77970" }, 65badbb63cSNobuhiro Iwamatsu { 0x0, "CPU" }, 66badbb63cSNobuhiro Iwamatsu }; 67badbb63cSNobuhiro Iwamatsu 68badbb63cSNobuhiro Iwamatsu int print_cpuinfo(void) 69badbb63cSNobuhiro Iwamatsu { 70badbb63cSNobuhiro Iwamatsu int i = 0; 71badbb63cSNobuhiro Iwamatsu u32 cpu_type = rmobile_get_cpu_type(); 72badbb63cSNobuhiro Iwamatsu for (; i < ARRAY_SIZE(rmobile_cpuinfo); i++) { 73badbb63cSNobuhiro Iwamatsu if (rmobile_cpuinfo[i].cpu_type == cpu_type) { 74badbb63cSNobuhiro Iwamatsu printf("CPU: Renesas Electronics %s rev %d.%d\n", 75badbb63cSNobuhiro Iwamatsu rmobile_cpuinfo[i].cpu_name, 76badbb63cSNobuhiro Iwamatsu rmobile_get_cpu_rev_integer(), 77badbb63cSNobuhiro Iwamatsu rmobile_get_cpu_rev_fraction()); 78badbb63cSNobuhiro Iwamatsu break; 79badbb63cSNobuhiro Iwamatsu } 80badbb63cSNobuhiro Iwamatsu } 81badbb63cSNobuhiro Iwamatsu return 0; 82badbb63cSNobuhiro Iwamatsu } 83badbb63cSNobuhiro Iwamatsu #endif /* CONFIG_DISPLAY_CPUINFO */ 84