137e4dafaSPeter Tyser /* 237e4dafaSPeter Tyser * (C) Copyright 2004, Psyent Corporation <www.psyent.com> 337e4dafaSPeter Tyser * Scott McNutt <smcnutt@psyent.com> 437e4dafaSPeter Tyser * 51a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 637e4dafaSPeter Tyser */ 737e4dafaSPeter Tyser 837e4dafaSPeter Tyser #include <common.h> 937e4dafaSPeter Tyser #include <nios2.h> 1037e4dafaSPeter Tyser #include <nios2-io.h> 11f956ad98SJoachim Foerster #include <asm/cache.h> 1237e4dafaSPeter Tyser 13*5ff10aa7SThomas Chou DECLARE_GLOBAL_DATA_PTR; 14*5ff10aa7SThomas Chou 1537e4dafaSPeter Tyser #if defined (CONFIG_SYS_NIOS_SYSID_BASE) 1637e4dafaSPeter Tyser extern void display_sysid (void); 1737e4dafaSPeter Tyser #endif /* CONFIG_SYS_NIOS_SYSID_BASE */ 1837e4dafaSPeter Tyser 19*5ff10aa7SThomas Chou #ifdef CONFIG_DISPLAY_CPUINFO 20*5ff10aa7SThomas Chou int print_cpuinfo(void) 2137e4dafaSPeter Tyser { 2237e4dafaSPeter Tyser printf ("CPU : Nios-II\n"); 2337e4dafaSPeter Tyser #if !defined(CONFIG_SYS_NIOS_SYSID_BASE) 2437e4dafaSPeter Tyser printf ("SYSID : <unknown>\n"); 2537e4dafaSPeter Tyser #else 2637e4dafaSPeter Tyser display_sysid (); 2737e4dafaSPeter Tyser #endif 2837e4dafaSPeter Tyser return (0); 2937e4dafaSPeter Tyser } 30*5ff10aa7SThomas Chou #endif /* CONFIG_DISPLAY_CPUINFO */ 3137e4dafaSPeter Tyser 32882b7d72SMike Frysinger int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) 3337e4dafaSPeter Tyser { 3437e4dafaSPeter Tyser disable_interrupts(); 357a6a7d10SThomas Chou /* indirect call to go beyond 256MB limitation of toolchain */ 367a6a7d10SThomas Chou nios2_callr(CONFIG_SYS_RESET_ADDR); 377a6a7d10SThomas Chou return 0; 3837e4dafaSPeter Tyser } 39f956ad98SJoachim Foerster 40f956ad98SJoachim Foerster int dcache_status(void) 41f956ad98SJoachim Foerster { 42f956ad98SJoachim Foerster return 1; 43f956ad98SJoachim Foerster } 44f956ad98SJoachim Foerster 45f956ad98SJoachim Foerster void dcache_enable(void) 46f956ad98SJoachim Foerster { 47f956ad98SJoachim Foerster flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE); 48f956ad98SJoachim Foerster } 49f956ad98SJoachim Foerster 50f956ad98SJoachim Foerster void dcache_disable(void) 51f956ad98SJoachim Foerster { 52f956ad98SJoachim Foerster flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE); 53f956ad98SJoachim Foerster } 54*5ff10aa7SThomas Chou 55*5ff10aa7SThomas Chou int arch_cpu_init(void) 56*5ff10aa7SThomas Chou { 57*5ff10aa7SThomas Chou gd->cpu_clk = CONFIG_SYS_CLK_FREQ; 58*5ff10aa7SThomas Chou gd->ram_size = CONFIG_SYS_SDRAM_SIZE; 59*5ff10aa7SThomas Chou 60*5ff10aa7SThomas Chou return 0; 61*5ff10aa7SThomas Chou } 62