xref: /rk3399_rockchip-uboot/arch/nios2/cpu/cpu.c (revision f956ad98b2ba10901b6ea04983e679bc5ddc4d7a)
137e4dafaSPeter Tyser /*
237e4dafaSPeter Tyser  * (C) Copyright 2004, Psyent Corporation <www.psyent.com>
337e4dafaSPeter Tyser  * Scott McNutt <smcnutt@psyent.com>
437e4dafaSPeter Tyser  *
537e4dafaSPeter Tyser  * See file CREDITS for list of people who contributed to this
637e4dafaSPeter Tyser  * project.
737e4dafaSPeter Tyser  *
837e4dafaSPeter Tyser  * This program is free software; you can redistribute it and/or
937e4dafaSPeter Tyser  * modify it under the terms of the GNU General Public License as
1037e4dafaSPeter Tyser  * published by the Free Software Foundation; either version 2 of
1137e4dafaSPeter Tyser  * the License, or (at your option) any later version.
1237e4dafaSPeter Tyser  *
1337e4dafaSPeter Tyser  * This program is distributed in the hope that it will be useful,
1437e4dafaSPeter Tyser  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1537e4dafaSPeter Tyser  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1637e4dafaSPeter Tyser  * GNU General Public License for more details.
1737e4dafaSPeter Tyser  *
1837e4dafaSPeter Tyser  * You should have received a copy of the GNU General Public License
1937e4dafaSPeter Tyser  * along with this program; if not, write to the Free Software
2037e4dafaSPeter Tyser  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
2137e4dafaSPeter Tyser  * MA 02111-1307 USA
2237e4dafaSPeter Tyser  */
2337e4dafaSPeter Tyser 
2437e4dafaSPeter Tyser #include <common.h>
2537e4dafaSPeter Tyser #include <nios2.h>
2637e4dafaSPeter Tyser #include <nios2-io.h>
27*f956ad98SJoachim Foerster #include <asm/cache.h>
2837e4dafaSPeter Tyser 
2937e4dafaSPeter Tyser #if defined (CONFIG_SYS_NIOS_SYSID_BASE)
3037e4dafaSPeter Tyser extern void display_sysid (void);
3137e4dafaSPeter Tyser #endif /* CONFIG_SYS_NIOS_SYSID_BASE */
3237e4dafaSPeter Tyser 
3337e4dafaSPeter Tyser int checkcpu (void)
3437e4dafaSPeter Tyser {
3537e4dafaSPeter Tyser 	printf ("CPU   : Nios-II\n");
3637e4dafaSPeter Tyser #if !defined(CONFIG_SYS_NIOS_SYSID_BASE)
3737e4dafaSPeter Tyser 	printf ("SYSID : <unknown>\n");
3837e4dafaSPeter Tyser #else
3937e4dafaSPeter Tyser 	display_sysid ();
4037e4dafaSPeter Tyser #endif
4137e4dafaSPeter Tyser 	return (0);
4237e4dafaSPeter Tyser }
4337e4dafaSPeter Tyser 
44882b7d72SMike Frysinger int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
4537e4dafaSPeter Tyser {
4637e4dafaSPeter Tyser 	disable_interrupts();
477a6a7d10SThomas Chou 	/* indirect call to go beyond 256MB limitation of toolchain */
487a6a7d10SThomas Chou 	nios2_callr(CONFIG_SYS_RESET_ADDR);
497a6a7d10SThomas Chou 	return 0;
5037e4dafaSPeter Tyser }
51*f956ad98SJoachim Foerster 
52*f956ad98SJoachim Foerster int dcache_status(void)
53*f956ad98SJoachim Foerster {
54*f956ad98SJoachim Foerster 	return 1;
55*f956ad98SJoachim Foerster }
56*f956ad98SJoachim Foerster 
57*f956ad98SJoachim Foerster void dcache_enable(void)
58*f956ad98SJoachim Foerster {
59*f956ad98SJoachim Foerster 	flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE);
60*f956ad98SJoachim Foerster }
61*f956ad98SJoachim Foerster 
62*f956ad98SJoachim Foerster void dcache_disable(void)
63*f956ad98SJoachim Foerster {
64*f956ad98SJoachim Foerster 	flush_dcache(CONFIG_SYS_DCACHE_SIZE, CONFIG_SYS_DCACHELINE_SIZE);
65*f956ad98SJoachim Foerster }
66