mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
[new uImage] Respect autostart setting in linux bootm
Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Acked-by: Marian Balakowicz <m8@semihalf.com>
This commit is contained in:
parent
d3f2fa0d27
commit
75fa002c47
10 changed files with 32 additions and 2 deletions
|
@ -133,6 +133,9 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
setup_end_tag (bd);
|
||||
#endif
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
/* we assume that the kernel is in place */
|
||||
printf ("\nStarting kernel ...\n\n");
|
||||
|
||||
|
|
|
@ -214,6 +214,9 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
params = setup_ethernet_tags(params);
|
||||
setup_end_tag(params);
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
printf("\nStarting kernel at %p (params at %p)...\n\n",
|
||||
theKernel, params_start);
|
||||
|
||||
|
|
|
@ -53,6 +53,9 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
|
|||
char *cmdline;
|
||||
ulong ep = 0;
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
#ifdef SHARED_RESOURCES
|
||||
swap_to(FLASH);
|
||||
#endif
|
||||
|
|
|
@ -72,6 +72,9 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
|
||||
}
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
#ifdef DEBUG
|
||||
printf ("## Transferring control to Linux (at address %08x) ...\n",
|
||||
(u32)base_ptr);
|
||||
|
|
|
@ -127,6 +127,8 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag,
|
|||
|
||||
show_boot_progress (15);
|
||||
|
||||
if (!images->autostart)
|
||||
return;
|
||||
/*
|
||||
* Linux Kernel Parameters (passing board info data):
|
||||
* r3: ptr to board info data
|
||||
|
@ -140,7 +142,8 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag,
|
|||
return ;
|
||||
|
||||
error:
|
||||
do_reset (cmdtp, flag, argc, argv);
|
||||
if (images->autostart)
|
||||
do_reset (cmdtp, flag, argc, argv);
|
||||
return ;
|
||||
}
|
||||
|
||||
|
|
|
@ -63,5 +63,8 @@ void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
|
|||
(ulong) theKernel);
|
||||
#endif
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
theKernel (commandline);
|
||||
}
|
||||
|
|
|
@ -106,6 +106,9 @@ void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
|
|||
sprintf (env_buf, "0x%X", (uint) (gd->bd->bi_flashsize));
|
||||
linux_env_set ("flash_size", env_buf);
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
/* we assume that the kernel is in place */
|
||||
printf ("\nStarting kernel ...\n\n");
|
||||
|
||||
|
|
|
@ -46,6 +46,9 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
}
|
||||
void (*kernel)(void) = (void (*)(void))ep;
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
/* For now we assume the Microtronix linux ... which only
|
||||
* needs to be called ;-)
|
||||
*/
|
||||
|
|
|
@ -242,6 +242,8 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
#if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500)
|
||||
unlock_ram_in_cache();
|
||||
#endif
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
#if defined(CONFIG_OF_LIBFDT)
|
||||
if (of_flat_tree) { /* device tree; boot new style */
|
||||
|
@ -270,7 +272,8 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
return ;
|
||||
|
||||
error:
|
||||
do_reset (cmdtp, flag, argc, argv);
|
||||
if (images->autostart)
|
||||
do_reset (cmdtp, flag, argc, argv);
|
||||
return ;
|
||||
}
|
||||
|
||||
|
|
|
@ -79,6 +79,9 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
|||
}
|
||||
void (*kernel) (void) = (void (*)(void))ep;
|
||||
|
||||
if (!images->autostart)
|
||||
return ;
|
||||
|
||||
/* Setup parameters */
|
||||
memset(PARAM, 0, 0x1000); /* Clear zero page */
|
||||
strcpy(COMMAND_LINE, bootargs);
|
||||
|
|
Loading…
Reference in a new issue