X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cmd%2Fbootm.c;h=931d53f0c7209c77f4d35ac16c03f86dc75fe72b;hb=bb488ac34d9fbb892d870b0cbeabdbc5dc432653;hp=953a57de33996b7b2c3c28cb320fc8420fcc76e2;hpb=21342d4aed6c77a4aa7a5b2579b3c23e21aea31a;p=oweals%2Fu-boot.git diff --git a/cmd/bootm.c b/cmd/bootm.c index 953a57de33..931d53f0c7 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -1,8 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2000-2009 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * SPDX-License-Identifier: GPL-2.0+ */ /* @@ -11,7 +10,7 @@ #include #include #include -#include +#include #include #include #include @@ -20,6 +19,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -138,13 +138,14 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) int bootm_maybe_autostart(cmd_tbl_t *cmdtp, const char *cmd) { - const char *ep = getenv("autostart"); + const char *ep = env_get("autostart"); if (ep && !strcmp(ep, "yes")) { char *local_args[2]; local_args[0] = (char *)cmd; local_args[1] = NULL; - printf("Automatic boot of image at addr 0x%08lX ...\n", load_addr); + printf("Automatic boot of image at addr 0x%08lX ...\n", + image_load_addr); return do_bootm(cmdtp, 0, 1, local_args); } @@ -202,7 +203,7 @@ U_BOOT_CMD( #if defined(CONFIG_CMD_BOOTD) int do_bootd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - return run_command(getenv("bootcmd"), flag); + return run_command(env_get("bootcmd"), flag); } U_BOOT_CMD( @@ -232,7 +233,7 @@ static int do_iminfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) int rcode = 0; if (argc < 2) { - return image_info(load_addr); + return image_info(image_load_addr); } for (arg = 1; arg < argc; ++arg) { @@ -245,21 +246,23 @@ static int do_iminfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) static int image_info(ulong addr) { - void *hdr = (void *)addr; + void *hdr = (void *)map_sysmem(addr, 0); printf("\n## Checking Image at %08lx ...\n", addr); switch (genimg_get_format(hdr)) { -#if defined(CONFIG_IMAGE_FORMAT_LEGACY) +#if defined(CONFIG_LEGACY_IMAGE_FORMAT) case IMAGE_FORMAT_LEGACY: puts(" Legacy image found\n"); if (!image_check_magic(hdr)) { puts(" Bad Magic Number\n"); + unmap_sysmem(hdr); return 1; } if (!image_check_hcrc(hdr)) { puts(" Bad Header Checksum\n"); + unmap_sysmem(hdr); return 1; } @@ -268,15 +271,18 @@ static int image_info(ulong addr) puts(" Verifying Checksum ... "); if (!image_check_dcrc(hdr)) { puts(" Bad Data CRC\n"); + unmap_sysmem(hdr); return 1; } puts("OK\n"); + unmap_sysmem(hdr); return 0; #endif #if defined(CONFIG_ANDROID_BOOT_IMAGE) case IMAGE_FORMAT_ANDROID: puts(" Android image found\n"); android_print_contents(hdr); + unmap_sysmem(hdr); return 0; #endif #if defined(CONFIG_FIT) @@ -285,6 +291,7 @@ static int image_info(ulong addr) if (!fit_check_format(hdr)) { puts("Bad FIT image format!\n"); + unmap_sysmem(hdr); return 1; } @@ -292,9 +299,11 @@ static int image_info(ulong addr) if (!fit_all_image_verify(hdr)) { puts("Bad hash in FIT image!\n"); + unmap_sysmem(hdr); return 1; } + unmap_sysmem(hdr); return 0; #endif default: @@ -302,6 +311,7 @@ static int image_info(ulong addr) break; } + unmap_sysmem(hdr); return 1; } @@ -338,7 +348,7 @@ static int do_imls_nor(void) goto next_sector; switch (genimg_get_format(hdr)) { -#if defined(CONFIG_IMAGE_FORMAT_LEGACY) +#if defined(CONFIG_LEGACY_IMAGE_FORMAT) case IMAGE_FORMAT_LEGACY: if (!image_check_hcrc(hdr)) goto next_sector; @@ -465,7 +475,7 @@ static int do_imls_nand(void) printf("\n"); for (nand_dev = 0; nand_dev < CONFIG_SYS_MAX_NAND_DEVICE; nand_dev++) { - mtd = nand_info[nand_dev]; + mtd = get_nand_dev_by_index(nand_dev); if (!mtd->name || !mtd->size) continue; @@ -486,7 +496,7 @@ static int do_imls_nand(void) } switch (genimg_get_format(buffer)) { -#if defined(CONFIG_IMAGE_FORMAT_LEGACY) +#if defined(CONFIG_LEGACY_IMAGE_FORMAT) case IMAGE_FORMAT_LEGACY: header = (const image_header_t *)buffer;