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