blob: e18055e64c14547137bb05b84122d950f547ed76 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
Index: u-boot-1.3.2/common/main.c
===================================================================
--- u-boot-1.3.2.orig/common/main.c
+++ u-boot-1.3.2/common/main.c
@@ -377,6 +377,15 @@ void main_loop (void)
}
else
#endif /* CONFIG_BOOTCOUNT_LIMIT */
+#ifdef CONFIG_ENV_BOOTRESCUE
+ if ( gpio_get(GPIO_RED_BUTTON) ) {
+ printf ("Red button pressed: booting in rescue mode.\n");
+ s = getenv (CONFIG_ENV_BOOTRESCUE);
+ if ( !s )
+ printf ("Warning: environment variable '" CONFIG_ENV_BOOTRESCUE "' not set. Giving up rescue boot.\n");
+ }
+ else
+#endif
s = getenv ("bootcmd");
debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
Index: u-boot-1.3.2/include/configs/MPC8313ERDB.h
===================================================================
--- u-boot-1.3.2.orig/include/configs/MPC8313ERDB.h
+++ u-boot-1.3.2/include/configs/MPC8313ERDB.h
@@ -405,6 +405,7 @@
#define PRE_INIT_GPIO 0x28
#define INIT_GPIO 0x08
#define MAX_GPIO_OUT 7
+#define GPIO_RED_BUTTON 7
/* Digital Thermometer and Thermostat */
#define CONFIG_DTT_LM73 1
@@ -558,6 +559,7 @@
* Environment Configuration
*/
#define CONFIG_ENV_OVERWRITE
+#define CONFIG_ENV_BOOTRESCUE "bootrescue"
#define CONFIG_ETHADDR 00:E0:0C:00:95:01
#define CONFIG_HAS_ETH1
|