diff options
Diffstat (limited to 'target/device')
-rw-r--r-- | target/device/Atmel/arch-arm/u-boot/2009.01/u-boot-2009.01-009-factory.patch | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/target/device/Atmel/arch-arm/u-boot/2009.01/u-boot-2009.01-009-factory.patch b/target/device/Atmel/arch-arm/u-boot/2009.01/u-boot-2009.01-009-factory.patch index adbc03bed..7d1c958dc 100644 --- a/target/device/Atmel/arch-arm/u-boot/2009.01/u-boot-2009.01-009-factory.patch +++ b/target/device/Atmel/arch-arm/u-boot/2009.01/u-boot-2009.01-009-factory.patch @@ -109,8 +109,8 @@ diff -urN u-boot-2009.01-0rig//common/cmd_factory.c u-boot-2009.01/common/cmd_fa + setenv("fs-date", MK_STR(DATE)); + setenv("rd", "rootfs.arm-"MK_STR(DATE)".ext2"); +#endif -+#if defined(KERNEL_NAME) -+ setenv("linux", MK_STR(KERNEL_NAME)); ++#if defined(KERNEL_VERSION) ++ setenv("linux", MK_STR(BOARD_NAME)"-linux-"MK_STR(KERNEL_VERSION)"-"MK_STR(DATE)".gz"); +#endif + setenv("get-ramdisk", "tftp ${ramdisk} ${rd}; setenv rd-size ${filesize}"); + setenv("store-ramdisk", "cp.b ${ramdisk} ${FS} ${rd-size}"); @@ -243,17 +243,32 @@ diff -urN u-boot-2009.01-0rig//common/cmd_factory.c u-boot-2009.01/common/cmd_fa + +int do_os (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ -+#if defined(KERNEL_NAME) -+ setenv("linux", MK_STR(KERNEL_NAME)); -+#else -+ setenv("linux", "uImage"); -+#endif -+ return 0; ++ char *kchip; ++ char *kdate; ++ char *kver; ++ char cmd[512]; ++ kchip = getenv("hostname"); ++ kdate = getenv("kernel-date"); ++ kver = getenv("kernel-version"); ++ if((strlen(kdate) + strlen(kver) + 32) > 500) { ++ printf("Error: Environment too large during 'os': "); ++ printf("len=%d\n", strlen(kdate) + strlen(kver) + 32); ++ } else if(kver != NULL) { ++ if(kdate != NULL) { ++ sprintf(cmd,"%s-linux-%s-%s.gz",kchip,kver,kdate); ++ } else { ++ sprintf(cmd,"%s-linux-%s.gz",kchip,kver); ++ } ++ printf("Setting kernel to %s\n",cmd); ++ setenv("linux",cmd); ++ return 0; ++ } ++ return 1; +} + +U_BOOT_CMD( + os, 1, 1, do_os, -+ "os\t- Select linux version\n" ++ "os\t- Select linux version ${hostname}-linux-${kernel-name}-${kernel-date}\n" + , "\n" +); + |