xref: /rk3399_rockchip-uboot/arch/nios2/cpu/cpu.c (revision 5ff10aa7e76fc7dbd205ec13381757bfa2c99911)
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