X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=common%2Fspl%2Fspl.c;h=50828e6021812909c65aec01c1bc1d868ddf560d;hb=ddbe1812421a7bf7febd1a678efad69546eb04ab;hp=d98b9fcb9ade2285b50caedbce7483db5ded78da;hpb=722a6b1741bacd4ba36fb89906dbb8bf696d70a7;p=oweals%2Fu-boot.git diff --git a/common/spl/spl.c b/common/spl/spl.c index d98b9fcb9a..50828e6021 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -85,6 +85,9 @@ void spl_set_header_raw_uboot(struct spl_image_info *spl_image) { spl_image->size = CONFIG_SYS_MONITOR_LEN; spl_image->entry_point = CONFIG_SYS_UBOOT_START; +#ifdef CONFIG_CPU_V7M + spl_image->entry_point |= 0x1; +#endif spl_image->load_addr = CONFIG_SYS_TEXT_BASE; spl_image->os = IH_OS_U_BOOT; spl_image->name = "U-Boot"; @@ -227,10 +230,11 @@ int spl_early_init(void) int spl_init(void) { int ret; + bool setup_malloc = !(IS_ENABLED(CONFIG_SPL_STACK_R) && + IS_ENABLED(CONFIG_SPL_SYS_MALLOC_SIMPLE)); if (!(gd->flags & GD_FLG_SPL_EARLY_INIT)) { - ret = spl_common_init( - !IS_ENABLED(CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN)); + ret = spl_common_init(setup_malloc); if (ret) return ret; } @@ -341,6 +345,9 @@ void board_init_r(gd_t *dummy1, ulong dummy2) #endif memset(&spl_image, '\0', sizeof(spl_image)); +#ifdef CONFIG_SYS_SPL_ARGS_ADDR + spl_image.arg = (void *)CONFIG_SYS_SPL_ARGS_ADDR; +#endif board_boot_order(spl_boot_list); if (boot_from_devices(&spl_image, spl_boot_list, @@ -357,8 +364,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2) case IH_OS_LINUX: debug("Jumping to Linux\n"); spl_board_prepare_for_linux(); - jump_to_image_linux(&spl_image, - (void *)CONFIG_SYS_SPL_ARGS_ADDR); + jump_to_image_linux(&spl_image); #endif default: debug("Unsupported OS image.. Jumping nevertheless..\n");