]> git.sur5r.net Git - u-boot/blobdiff - board/ait/cam_enc_4xx/cam_enc_4xx.c
ARM: davinci: fixes for cam_enc_4xx board
[u-boot] / board / ait / cam_enc_4xx / cam_enc_4xx.c
index bb29cf3f58b5d6f30ae0a540527a9a456ffd8905..32b28f927053df95d6d3fc498dfe743808899bb0 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <common.h>
 #include <errno.h>
+#include <hush.h>
 #include <linux/mtd/nand.h>
 #include <nand.h>
 #include <miiphy.h>
@@ -554,7 +555,7 @@ static char *menu_handle(struct menu_display *display)
 {
        struct menu *m;
        int i;
-       char *choice = NULL;
+       void *choice = NULL;
        char key[2];
        int ret;
        char *s;
@@ -606,7 +607,7 @@ static char *menu_handle(struct menu_display *display)
        sprintf(key, "%d", 1);
        menu_default_set(m, key);
 
-       if (menu_get_choice(m, (void **)&choice) != 1)
+       if (menu_get_choice(m, &choice) != 1)
                debug("Problem picking a choice!\n");
 
        menu_destroy(m);
@@ -653,7 +654,7 @@ static int ait_writeublheader(void)
                sprintf(s, "%lx", i);
                ret = setenv("header_addr", s);
                if (ret == 0)
-                       ret = run_command2("run img_writeheader", 0);
+                       ret = run_command("run img_writeheader", 0);
                if (ret != 0)
                        break;
        }
@@ -697,7 +698,7 @@ static int ait_menu_install_images(void)
                setenv("filesize", s);
                switch (imgs[count].subtype) {
                case FIT_SUBTYPE_DF_ENV_IMAGE:
-                       ret = run_command2("run img_writedfenv", 0);
+                       ret = run_command("run img_writedfenv", 0);
                        break;
                case FIT_SUBTYPE_RAMDISK_IMAGE:
                        t = getenv("img_volume");
@@ -713,16 +714,16 @@ static int ait_menu_install_images(void)
                        if (ret != 0)
                                break;
 
-                       ret = run_command2("run img_writeramdisk", 0);
+                       ret = run_command("run img_writeramdisk", 0);
                        break;
                case FIT_SUBTYPE_SPL_IMAGE:
-                       ret = run_command2("run img_writespl", 0);
+                       ret = run_command("run img_writespl", 0);
                        break;
                case FIT_SUBTYPE_UBL_HEADER:
                        ret = ait_writeublheader();
                        break;
                case FIT_SUBTYPE_UBOOT_IMAGE:
-                       ret = run_command2("run img_writeuboot", 0);
+                       ret = run_command("run img_writeuboot", 0);
                        break;
                default:
                        /* not supported type */
@@ -731,8 +732,19 @@ static int ait_menu_install_images(void)
                count++;
        }
        /* now save dvn_* and img_volume env vars to new values */
-       if (ret == 0)
-               ret = run_command2("run savenewvers", 0);
+       if (ret == 0) {
+               t = getenv("x_dvn_boot_vers");
+               if (t)
+                       setenv("dvn_boot_vers", t);
+
+               t = getenv("x_dvn_app_vers");
+               if (t)
+                       setenv("dvn_boot_vers", t);
+
+               setenv("x_dvn_boot_vers", NULL);
+               setenv("x_dvn_app_vers", NULL);
+               ret = run_command("run savenewvers", 0);
+       }
 
        return ret;
 }
@@ -749,6 +761,8 @@ static int ait_menu_evaluate_load(char *choice)
                break;
        case '2':
                /* cancel, back to main */
+               setenv("x_dvn_boot_vers", NULL);
+               setenv("x_dvn_app_vers", NULL);
                break;
        }
 
@@ -961,7 +975,7 @@ static int ait_menu_check_image(void)
                if (s) {
                        ret = strcmp(s, imgs[found_uboot].desc);
                        if (ret != 0) {
-                               setenv("dvn_boot_vers",
+                               setenv("x_dvn_boot_vers",
                                        imgs[found_uboot].desc);
                        } else {
                                found_uboot = -1;
@@ -976,7 +990,7 @@ static int ait_menu_check_image(void)
                if (s) {
                        ret = strcmp(s, imgs[found_ramdisk].desc);
                        if (ret != 0) {
-                               setenv("dvn_app_vers",
+                               setenv("x_dvn_app_vers",
                                        imgs[found_ramdisk].desc);
                        } else {
                                found_ramdisk = -1;
@@ -1005,7 +1019,7 @@ static int ait_menu_evaluate_update(char *choice)
                break;
        case '2':
                /* load image */
-               ret = run_command2("run load_img", 0);
+               ret = run_command("run load_img", 0);
                printf("ret: %d\n", ret);
                if (ret)
                        return MENU_UPDATE;
@@ -1073,9 +1087,9 @@ int menu_show(int bootdelay)
 {
        int ret;
 
-       run_command2("run saveparms", 0);
+       run_command("run saveparms", 0);
        ret = ait_menu_show(&ait_main, bootdelay);
-       run_command2("run restoreparms", 0);
+       run_command("run restoreparms", 0);
 
        if (ret == MENU_EXIT_BOOTCMD)
                return 0;
@@ -1085,8 +1099,17 @@ int menu_show(int bootdelay)
 
 void menu_display_statusline(struct menu *m)
 {
-       printf("State: dvn_boot_vers: %s dvn_app_vers: %s\n",
-               getenv("dvn_boot_vers"), getenv("dvn_app_vers"));
+       char *s1, *s2;
+
+       s1 = getenv("x_dvn_boot_vers");
+       if (!s1)
+               s1 = getenv("dvn_boot_vers");
+
+       s2 = getenv("x_dvn_app_vers");
+       if (!s2)
+               s2 = getenv("dvn_app_vers");
+
+       printf("State: dvn_boot_vers: %s dvn_app_vers: %s\n", s1, s2);
        return;
 }
 #endif