summaryrefslogtreecommitdiff
path: root/recipes/u-boot/u-boot-1.3.2/boc01/014-081211-BOOT_RESCUE.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/u-boot/u-boot-1.3.2/boc01/014-081211-BOOT_RESCUE.patch')
-rw-r--r--recipes/u-boot/u-boot-1.3.2/boc01/014-081211-BOOT_RESCUE.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes/u-boot/u-boot-1.3.2/boc01/014-081211-BOOT_RESCUE.patch b/recipes/u-boot/u-boot-1.3.2/boc01/014-081211-BOOT_RESCUE.patch
new file mode 100644
index 0000000000..d2ebdef772
--- /dev/null
+++ b/recipes/u-boot/u-boot-1.3.2/boc01/014-081211-BOOT_RESCUE.patch
@@ -0,0 +1,48 @@
+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
+@@ -39,6 +39,7 @@
+ #endif
+
+ #include <post.h>
++#include <gpio.h>
+
+ #ifdef CONFIG_SILENT_CONSOLE
+ DECLARE_GLOBAL_DATA_PTR;
+@@ -377,6 +378,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
+@@ -406,6 +406,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
+@@ -559,6 +560,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