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