mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
stm32: Use bootm_run() and bootz_run()
Use the new bootm/z_run() functions to avoid having to create an argument list for the stm32prog code. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
parent
3405c9b6a5
commit
e4cee649b9
1 changed files with 11 additions and 9 deletions
|
@ -4,6 +4,7 @@
|
|||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <bootm.h>
|
||||
#include <command.h>
|
||||
#include <dfu.h>
|
||||
#include <image.h>
|
||||
|
@ -125,12 +126,10 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||
char dtb_addr[20];
|
||||
char initrd_addr[40];
|
||||
char *fdt_arg, *initrd_arg;
|
||||
char *bootm_argv[5] = {
|
||||
"bootm", boot_addr_start,
|
||||
};
|
||||
const void *uimage = (void *)data->uimage;
|
||||
const void *dtb = (void *)data->dtb;
|
||||
const void *initrd = (void *)data->initrd;
|
||||
struct bootm_info bmi;
|
||||
|
||||
fdt_arg = dtb_addr;
|
||||
if (!dtb)
|
||||
|
@ -141,7 +140,7 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||
snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
|
||||
"0x%p", uimage);
|
||||
|
||||
initrd_arg = "-";
|
||||
initrd_arg = NULL;
|
||||
if (initrd) {
|
||||
snprintf(initrd_addr, sizeof(initrd_addr) - 1,
|
||||
"0x%p:0x%zx", initrd, data->initrd_size);
|
||||
|
@ -149,15 +148,18 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
|
|||
}
|
||||
|
||||
printf("Booting kernel at %s %s %s...\n\n\n", boot_addr_start,
|
||||
initrd_arg, fdt_arg);
|
||||
bootm_argv[2] = initrd_arg;
|
||||
bootm_argv[3] = fdt_arg;
|
||||
initrd_arg ?: "-", fdt_arg);
|
||||
|
||||
bootm_init(&bmi);
|
||||
bmi.addr_img = boot_addr_start;
|
||||
bmi.conf_ramdisk = initrd_arg;
|
||||
bmi.conf_fdt = fdt_arg;
|
||||
|
||||
/* Try bootm for legacy and FIT format image */
|
||||
if (genimg_get_format(uimage) != IMAGE_FORMAT_INVALID)
|
||||
do_bootm(cmdtp, 0, 4, bootm_argv);
|
||||
bootm_run(&bmi);
|
||||
else if (IS_ENABLED(CONFIG_CMD_BOOTZ))
|
||||
do_bootz(cmdtp, 0, 4, bootm_argv);
|
||||
bootz_run(&bmi);
|
||||
}
|
||||
if (data->script)
|
||||
cmd_source_script(data->script, NULL, NULL);
|
||||
|
|
Loading…
Reference in a new issue