Merge branch 'master' of /home/git/u-boot
[oweals/u-boot.git] / lib_arm / bootm.c
index 529b0975ec9824a02404421f7f740b4f7cd2d9c4..31c2d672257577914f37b1cf3d70d286ec6cbfb7 100644 (file)
@@ -66,6 +66,8 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
        ulong initrd_start, initrd_end;
        void (*theKernel)(int zero, int arch, uint params);
        bd_t *bd = gd->bd;
+       int machid = bd->bi_arch_number;
+       char *s;
 
 #ifdef CONFIG_CMDLINE_TAG
        char *commandline = getenv ("bootargs");
@@ -73,6 +75,12 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 
        theKernel = (void (*)(int, int, uint))image_get_ep (hdr);
 
+       s = getenv ("machid");
+       if (s) {
+               machid = simple_strtoul (s, NULL, 16);
+               printf ("Using machid 0x%x from environment\n", machid);
+       }
+
        get_ramdisk (cmdtp, flag, argc, argv, hdr, verify,
                        IH_ARCH_ARM, &initrd_start, &initrd_end);
 
@@ -123,7 +131,7 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 
        cleanup_before_linux ();
 
-       theKernel (0, bd->bi_arch_number, bd->bi_boot_params);
+       theKernel (0, machid, bd->bi_boot_params);
 }