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