diff options
Diffstat (limited to 'packages/uboot/u-boot-mkimage-gta01-native/preboot-override.patch')
-rw-r--r-- | packages/uboot/u-boot-mkimage-gta01-native/preboot-override.patch | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/packages/uboot/u-boot-mkimage-gta01-native/preboot-override.patch b/packages/uboot/u-boot-mkimage-gta01-native/preboot-override.patch deleted file mode 100644 index f32cbde27b..0000000000 --- a/packages/uboot/u-boot-mkimage-gta01-native/preboot-override.patch +++ /dev/null @@ -1,137 +0,0 @@ -Provide a place where the loader can patch the binary, such that it executes a -command string from RAM. We use this for automated installs, where we can thus -use the same u-boot binary for all stages. - -include/configs/neo1973.h: new option CFG_PREBOOT_OVERRIDE to allow setting of - the preboot command in memory -cpu/arm920t/start.S: added variable "preboot_override" at known location - (_start+0x40) -common/main.c (main_loop): if preboot_override is set, execute the command - string found there -common/env_common.c (env_relocate): if preboot_override is set, always use the - default environment - -- Werner Almesberger <werner@openmoko.org> - -Index: u-boot/cpu/arm920t/start.S -=================================================================== ---- u-boot.orig/cpu/arm920t/start.S -+++ u-boot/cpu/arm920t/start.S -@@ -77,6 +77,14 @@ _fiq: .word fiq - ************************************************************************* - */ - -+ -+/* Must follow the .balign above, so we get a well-known address ! */ -+#ifdef CFG_PREBOOT_OVERRIDE -+.globl preboot_override -+preboot_override: -+ .word 0 -+#endif -+ - #ifdef CONFIG_S3C2410_NAND_BOOT - .globl booted_from_nand - booted_from_nand: -Index: u-boot/include/configs/neo1973_gta01.h -=================================================================== ---- u-boot.orig/include/configs/neo1973_gta01.h -+++ u-boot/include/configs/neo1973_gta01.h -@@ -207,6 +207,7 @@ - #define CFG_ENV_IS_IN_NAND 1 - #define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ - #define CFG_ENV_OFFSET_OOB 1 /* Location of ENV stored in block 0 OOB */ -+#define CFG_PREBOOT_OVERRIDE 1 /* allow preboot from memory */ - - #define NAND_MAX_CHIPS 1 - #define CFG_NAND_BASE 0x4e000000 -Index: u-boot/common/main.c -=================================================================== ---- u-boot.orig/common/main.c -+++ u-boot/common/main.c -@@ -85,6 +85,11 @@ int do_mdm_init = 0; - extern void mdm_init(void); /* defined in board.c */ - #endif - -+#ifdef CFG_PREBOOT_OVERRIDE -+extern char *preboot_override; -+#endif -+ -+ - /*************************************************************************** - * Watch for 'delay' seconds for autoboot stop or autoboot delay string. - * returns: 0 - no key string, allow autoboot -@@ -306,8 +311,8 @@ void main_loop (void) - char *s; - int bootdelay; - #endif --#ifdef CONFIG_PREBOOT -- char *p; -+#if defined(CONFIG_PREBOOT) || defined(CFG_PREBOOT_OVERRIDE) -+ char *p = NULL; - #endif - #ifdef CONFIG_BOOTCOUNT_LIMIT - unsigned long bootcount = 0; -@@ -364,8 +369,23 @@ void main_loop (void) - install_auto_complete(); - #endif - -+#if defined(CONFIG_PREBOOT) || defined(CFG_PREBOOT_OVERRIDE) - #ifdef CONFIG_PREBOOT -- if ((p = getenv ("preboot")) != NULL) { -+ p = getenv ("preboot"); -+#endif -+#ifdef CFG_PREBOOT_OVERRIDE -+ if (preboot_override) { -+ /* for convenience, preboot_override may end in \n, not \0 */ -+ p = strchr(preboot_override, '\n'); -+ if (p) -+ *p = 0; -+ /* make sure we can overwrite the load area if we want to */ -+ p = strdup(preboot_override); -+ /* clean the image in case we want to flash it */ -+ preboot_override = NULL; -+ } -+#endif /* CFG_PREBOOT_OVERRIDE */ -+ if (p) { - # ifdef CONFIG_AUTOBOOT_KEYED - int prev = disable_ctrlc(1); /* disable Control C checking */ - # endif -@@ -381,7 +401,7 @@ void main_loop (void) - disable_ctrlc(prev); /* restore Control C checking */ - # endif - } --#endif /* CONFIG_PREBOOT */ -+#endif /* CONFIG_PREBOOT || CFG_PREBOOT_OVERRIDE */ - - #if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) - s = getenv ("bootdelay"); -Index: u-boot/common/env_common.c -=================================================================== ---- u-boot.orig/common/env_common.c -+++ u-boot/common/env_common.c -@@ -37,6 +37,10 @@ - # define SHOW_BOOT_PROGRESS(arg) - #endif - -+#ifdef CFG_PREBOOT_OVERRIDE -+extern char *preboot_override; -+#endif -+ - DECLARE_GLOBAL_DATA_PTR; - - #ifdef CONFIG_AMIGAONEG3SE -@@ -234,7 +238,14 @@ void env_relocate (void) - puts ("*** Warning - bad CRC, using default environment\n\n"); - SHOW_BOOT_PROGRESS (-1); - #endif -+ } -+ -+#ifdef CFG_PREBOOT_OVERRIDE -+ if (preboot_override) -+ gd->env_valid = 0; -+#endif - -+ if (gd->env_valid == 0) { - if (sizeof(default_environment) > ENV_SIZE) - { - puts ("*** Error - default environment is too large\n\n"); |