1 /* 2 * Copyright (C) 2007,2008 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> 3 * Copyright (C) 2008 Renesas Solutions Corp. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #include <common.h> 9 #include <command.h> 10 #include <asm/processor.h> 11 #include <asm/io.h> 12 13 #define STBCR4 0xFFFE040C 14 #define cmt_clock_enable() do {\ 15 writeb(readb(STBCR4) & ~0x04, STBCR4);\ 16 } while (0) 17 #define scif0_enable() do {\ 18 writeb(readb(STBCR4) & ~0x80, STBCR4);\ 19 } while (0) 20 #define scif3_enable() do {\ 21 writeb(readb(STBCR4) & ~0x10, STBCR4);\ 22 } while (0) 23 24 int checkcpu(void) 25 { 26 puts("CPU: SH2\n"); 27 return 0; 28 } 29 30 int cpu_init(void) 31 { 32 /* SCIF enable */ 33 #if defined(CONFIG_CONS_SCIF3) 34 scif3_enable(); 35 #else 36 scif0_enable(); 37 #endif 38 /* CMT clock enable */ 39 cmt_clock_enable() ; 40 return 0; 41 } 42 43 int cleanup_before_linux(void) 44 { 45 disable_interrupts(); 46 return 0; 47 } 48 49 int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) 50 { 51 disable_interrupts(); 52 reset_cpu(0); 53 return 0; 54 } 55 56 void flush_cache(unsigned long addr, unsigned long size) 57 { 58 59 } 60 61 void icache_enable(void) 62 { 63 } 64 65 void icache_disable(void) 66 { 67 } 68 69 int icache_status(void) 70 { 71 return 0; 72 } 73 74 void dcache_enable(void) 75 { 76 } 77 78 void dcache_disable(void) 79 { 80 } 81 82 int dcache_status(void) 83 { 84 return 0; 85 } 86 87 void relocate_code(ulong start_addr_sp, gd_t *new_gd, ulong relocaaddr) 88 { 89 /* TODO(sh maintainer): Implement this */ 90 while (1); 91 } 92