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