xref: /rk3399_rockchip-uboot/arch/mips/cpu/cpu.c (revision 102d86552abc82818c22b39fdef4b3a280a60643)
1eef88dfbSDaniel Schwierzeck /*
2eef88dfbSDaniel Schwierzeck  * (C) Copyright 2003
3eef88dfbSDaniel Schwierzeck  * Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
4eef88dfbSDaniel Schwierzeck  *
5eef88dfbSDaniel Schwierzeck  * SPDX-License-Identifier:	GPL-2.0+
6eef88dfbSDaniel Schwierzeck  */
7eef88dfbSDaniel Schwierzeck 
8eef88dfbSDaniel Schwierzeck #include <common.h>
9eef88dfbSDaniel Schwierzeck #include <command.h>
10eef88dfbSDaniel Schwierzeck #include <linux/compiler.h>
118cb4817dSPaul Burton #include <asm/cache.h>
12eef88dfbSDaniel Schwierzeck #include <asm/mipsregs.h>
13eef88dfbSDaniel Schwierzeck #include <asm/reboot.h>
14eef88dfbSDaniel Schwierzeck 
15*5e36546cSÁlvaro Fernández Rojas #ifndef CONFIG_SYSRESET
_machine_restart(void)16eef88dfbSDaniel Schwierzeck void __weak _machine_restart(void)
17eef88dfbSDaniel Schwierzeck {
18eef88dfbSDaniel Schwierzeck 	fprintf(stderr, "*** reset failed ***\n");
19eef88dfbSDaniel Schwierzeck 
20eef88dfbSDaniel Schwierzeck 	while (1)
21eef88dfbSDaniel Schwierzeck 		/* NOP */;
22eef88dfbSDaniel Schwierzeck }
23eef88dfbSDaniel Schwierzeck 
do_reset(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])24eef88dfbSDaniel Schwierzeck int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
25eef88dfbSDaniel Schwierzeck {
26eef88dfbSDaniel Schwierzeck 	_machine_restart();
27eef88dfbSDaniel Schwierzeck 
28eef88dfbSDaniel Schwierzeck 	return 0;
29eef88dfbSDaniel Schwierzeck }
30*5e36546cSÁlvaro Fernández Rojas #endif
31eef88dfbSDaniel Schwierzeck 
write_one_tlb(int index,u32 pagemask,u32 hi,u32 low0,u32 low1)32eef88dfbSDaniel Schwierzeck void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1)
33eef88dfbSDaniel Schwierzeck {
34eef88dfbSDaniel Schwierzeck 	write_c0_entrylo0(low0);
35eef88dfbSDaniel Schwierzeck 	write_c0_pagemask(pagemask);
36eef88dfbSDaniel Schwierzeck 	write_c0_entrylo1(low1);
37eef88dfbSDaniel Schwierzeck 	write_c0_entryhi(hi);
38eef88dfbSDaniel Schwierzeck 	write_c0_index(index);
39eef88dfbSDaniel Schwierzeck 	tlb_write_indexed();
40eef88dfbSDaniel Schwierzeck }
418cb4817dSPaul Burton 
arch_cpu_init(void)428cb4817dSPaul Burton int arch_cpu_init(void)
438cb4817dSPaul Burton {
448cb4817dSPaul Burton 	mips_cache_probe();
458cb4817dSPaul Burton 	return 0;
468cb4817dSPaul Burton }
47