GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / cfe / cfe / arch / mips / cpu / sb1250 / src / ui_reset.c
blobf015cc5f562babc2ae34b2dbeb0b9de45cb2f6a7
1 /* *********************************************************************
2 * Broadcom Common Firmware Environment (CFE)
3 *
4 * RESET command File: ui_reset.c
5 *
6 * Commands to reset the CPU
7 *
8 * Author: Mitch Lichtenberg (mpl@broadcom.com)
9 *
10 *********************************************************************
12 * Copyright 2000,2001,2002,2003
13 * Broadcom Corporation. All rights reserved.
15 * This software is furnished under license and may be used and
16 * copied only in accordance with the following terms and
17 * conditions. Subject to these conditions, you may download,
18 * copy, install, use, modify and distribute modified or unmodified
19 * copies of this software in source and/or binary form. No title
20 * or ownership is transferred hereby.
22 * 1) Any source code used, modified or distributed must reproduce
23 * and retain this copyright notice and list of conditions
24 * as they appear in the source file.
26 * 2) No right is granted to use any trade name, trademark, or
27 * logo of Broadcom Corporation. The "Broadcom Corporation"
28 * name may not be used to endorse or promote products derived
29 * from this software without the prior written permission of
30 * Broadcom Corporation.
32 * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
33 * IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
34 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
35 * PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
36 * SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
37 * PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
38 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
39 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
40 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
42 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
43 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
44 * THE POSSIBILITY OF SUCH DAMAGE.
45 ********************************************************************* */
48 #include "lib_types.h"
49 #include "lib_string.h"
50 #include "lib_queue.h"
51 #include "lib_malloc.h"
52 #include "lib_printf.h"
54 #include "cfe_timer.h"
56 #include "cfe_error.h"
57 #include "cfe_console.h"
59 #include "ui_command.h"
60 #include "cfe.h"
62 #include "bsp_config.h"
64 #include "sbmips.h"
65 #include "sb1250_regs.h"
66 #include "sb1250_scd.h"
68 /* *********************************************************************
69 * Configuration
70 ********************************************************************* */
72 /* *********************************************************************
73 * prototypes
74 ********************************************************************* */
76 int ui_init_resetcmds(void);
77 static int ui_cmd_reset(ui_cmdline_t *cmd,int argc,char *argv[]);
80 /* *********************************************************************
81 * Data
82 ********************************************************************* */
85 /* *********************************************************************
86 * ui_init_resetcmds()
88 * Add RESET-specific commands to the command table
90 * Input parameters:
91 * nothing
93 * Return value:
94 * 0
95 ********************************************************************* */
98 int ui_init_resetcmds(void)
100 cmd_addcmd("reset",
101 ui_cmd_reset,
102 NULL,
103 "Reset the system.",
104 "reset [-yes] -softreset|-cpu|-unicpu1|-unicpu0|-sysreset",
105 "-yes;Don't ask for confirmation|"
106 "-softreset;Soft reset of the entire chip|"
107 "-cpu;Reset the CPUs|"
108 "-unicpu1;Reset to uniprocessor using CPU1|"
109 "-unicpu0;Reset to uniprocessor using CPU0|"
110 "-sysreset;Full system reset");
114 return 0;
121 /* *********************************************************************
122 * ui_cmd_reset(cmd,argc,argv)
124 * RESET command.
126 * Input parameters:
127 * cmd - command structure
128 * argc,argv - parameters
130 * Return value:
131 * -1 if error occured. Does not return otherwise
132 ********************************************************************* */
134 static int ui_cmd_reset(ui_cmdline_t *cmd,int argc,char *argv[])
136 uint64_t data;
137 uint64_t olddata;
138 int confirm = 1;
139 char str[50];
141 data = SBREADCSR(A_SCD_SYSTEM_CFG) & ~M_SYS_SB_SOFTRES;
142 olddata = data;
144 if (cmd_sw_isset(cmd,"-yes")) confirm = 0;
146 if (cmd_sw_isset(cmd,"-softreset")) data |= M_SYS_SB_SOFTRES;
148 if (cmd_sw_isset(cmd,"-unicpu0")) data |= M_SYS_UNICPU0;
149 else if (cmd_sw_isset(cmd,"-unicpu1")) data |= M_SYS_UNICPU1;
151 if (cmd_sw_isset(cmd,"-sysreset")) data |= M_SYS_SYSTEM_RESET;
153 if (cmd_sw_isset(cmd,"-cpu")) data |= (M_SYS_CPU_RESET_0 | M_SYS_CPU_RESET_1);
155 if (data == olddata) { /* no changes to reset pins were specified */
156 return ui_showusage(cmd);
159 if (confirm) {
160 console_readline("Are you sure you want to reset? ",str,sizeof(str));
161 if ((str[0] != 'Y') && (str[0] != 'y')) return -1;
164 SBWRITECSR(A_SCD_SYSTEM_CFG,data);
166 /* should not return */
168 return -1;