xref: /rk3399_rockchip-uboot/arch/mips/cpu/cpu.c (revision 8cb4817d0f076605c5126f0925f6c7fdb0461bf6)
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>
11*8cb4817dSPaul Burton #include <asm/cache.h>
12eef88dfbSDaniel Schwierzeck #include <asm/mipsregs.h>
13eef88dfbSDaniel Schwierzeck #include <asm/reboot.h>
14eef88dfbSDaniel Schwierzeck 
15eef88dfbSDaniel Schwierzeck void __weak _machine_restart(void)
16eef88dfbSDaniel Schwierzeck {
17eef88dfbSDaniel Schwierzeck 	fprintf(stderr, "*** reset failed ***\n");
18eef88dfbSDaniel Schwierzeck 
19eef88dfbSDaniel Schwierzeck 	while (1)
20eef88dfbSDaniel Schwierzeck 		/* NOP */;
21eef88dfbSDaniel Schwierzeck }
22eef88dfbSDaniel Schwierzeck 
23eef88dfbSDaniel Schwierzeck int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
24eef88dfbSDaniel Schwierzeck {
25eef88dfbSDaniel Schwierzeck 	_machine_restart();
26eef88dfbSDaniel Schwierzeck 
27eef88dfbSDaniel Schwierzeck 	return 0;
28eef88dfbSDaniel Schwierzeck }
29eef88dfbSDaniel Schwierzeck 
30eef88dfbSDaniel Schwierzeck void write_one_tlb(int index, u32 pagemask, u32 hi, u32 low0, u32 low1)
31eef88dfbSDaniel Schwierzeck {
32eef88dfbSDaniel Schwierzeck 	write_c0_entrylo0(low0);
33eef88dfbSDaniel Schwierzeck 	write_c0_pagemask(pagemask);
34eef88dfbSDaniel Schwierzeck 	write_c0_entrylo1(low1);
35eef88dfbSDaniel Schwierzeck 	write_c0_entryhi(hi);
36eef88dfbSDaniel Schwierzeck 	write_c0_index(index);
37eef88dfbSDaniel Schwierzeck 	tlb_write_indexed();
38eef88dfbSDaniel Schwierzeck }
39*8cb4817dSPaul Burton 
40*8cb4817dSPaul Burton int arch_cpu_init(void)
41*8cb4817dSPaul Burton {
42*8cb4817dSPaul Burton 	mips_cache_probe();
43*8cb4817dSPaul Burton 	return 0;
44*8cb4817dSPaul Burton }
45