]> git.sur5r.net Git - u-boot/blobdiff - common/image.c
Rename getenv_r() into getenv_f()
[u-boot] / common / image.c
index ca8205ce43d3f9d0e2f164718b6f90f34668f2b3..6d8833e814d841a46d7124514063ce8767faf3d8 100644 (file)
@@ -60,7 +60,7 @@ static int fit_check_ramdisk (const void *fit, int os_noffset,
 #endif
 
 #ifdef CONFIG_CMD_BDI
-extern int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+extern int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
 #endif
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -74,12 +74,6 @@ static const image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch,
 #include <image.h>
 #endif /* !USE_HOSTCC*/
 
-typedef struct table_entry {
-       int     id;             /* as defined in image.h        */
-       char    *sname;         /* short (input) name           */
-       char    *lname;         /* long (output) name           */
-} table_entry_t;
-
 static table_entry_t uimage_arch[] = {
        {       IH_ARCH_INVALID,        NULL,           "Invalid ARCH", },
        {       IH_ARCH_ALPHA,          "alpha",        "Alpha",        },
@@ -90,7 +84,6 @@ static table_entry_t uimage_arch[] = {
        {       IH_ARCH_MICROBLAZE,     "microblaze",   "MicroBlaze",   },
        {       IH_ARCH_MIPS,           "mips",         "MIPS",         },
        {       IH_ARCH_MIPS64,         "mips64",       "MIPS 64 Bit",  },
-       {       IH_ARCH_NIOS,           "nios",         "NIOS",         },
        {       IH_ARCH_NIOS2,          "nios2",        "NIOS II",      },
        {       IH_ARCH_PPC,            "powerpc",      "PowerPC",      },
        {       IH_ARCH_PPC,            "ppc",          "PowerPC",      },
@@ -145,6 +138,8 @@ static table_entry_t uimage_type[] = {
        {       IH_TYPE_SCRIPT,     "script",     "Script",             },
        {       IH_TYPE_STANDALONE, "standalone", "Standalone Program", },
        {       IH_TYPE_FLATDT,     "flat_dt",    "Flat Device Tree",   },
+       {       IH_TYPE_KWBIMAGE,   "kwbimage",   "Kirkwood Boot Image",},
+       {       IH_TYPE_IMXIMAGE,   "imximage",   "Freescale i.MX Boot Image",},
        {       -1,                 "",           "",                   },
 };
 
@@ -153,6 +148,7 @@ static table_entry_t uimage_comp[] = {
        {       IH_COMP_BZIP2,  "bzip2",        "bzip2 compressed",     },
        {       IH_COMP_GZIP,   "gzip",         "gzip compressed",      },
        {       IH_COMP_LZMA,   "lzma",         "lzma compressed",      },
+       {       IH_COMP_LZO,    "lzo",          "lzo compressed",       },
        {       -1,             "",             "",                     },
 };
 
@@ -440,11 +436,7 @@ phys_size_t getenv_bootm_size(void)
        char *s = getenv ("bootm_size");
        if (s) {
                phys_size_t tmp;
-#ifdef CONFIG_SYS_64BIT_STRTOUL
                tmp = (phys_size_t)simple_strtoull (s, NULL, 16);
-#else
-               tmp = (phys_size_t)simple_strtoul (s, NULL, 16);
-#endif
                return tmp;
        }
 
@@ -457,6 +449,9 @@ phys_size_t getenv_bootm_size(void)
 
 void memmove_wd (void *to, void *from, size_t len, ulong chunksz)
 {
+       if (to == from)
+               return;
+
 #if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
        while (len > 0) {
                size_t tail = (len > chunksz) ? chunksz : len;
@@ -514,11 +509,11 @@ static void genimg_print_time (time_t timestamp)
  *     long entry name if translation succeeds
  *     msg otherwise
  */
-static char *get_table_entry_name (table_entry_t *table, char *msg, int id)
+char *get_table_entry_name (table_entry_t *table, char *msg, int id)
 {
        for (; table->id >= 0; ++table) {
                if (table->id == id)
-#ifdef USE_HOSTCC
+#if defined(USE_HOSTCC) || defined(CONFIG_RELOC_FIXUP_WORKS)
                        return table->lname;
 #else
                        return table->lname + gd->reloc_off;
@@ -561,7 +556,7 @@ const char *genimg_get_comp_name (uint8_t comp)
  *     entry id if translation succeeds
  *     -1 otherwise
  */
-static int get_table_entry_id (table_entry_t *table,
+int get_table_entry_id (table_entry_t *table,
                const char *table_name, const char *name)
 {
        table_entry_t *t;
@@ -583,7 +578,11 @@ static int get_table_entry_id (table_entry_t *table,
        fprintf (stderr, "\n");
 #else
        for (t = table; t->id >= 0; ++t) {
+#ifdef CONFIG_RELOC_FIXUP_WORKS
+               if (t->sname && strcmp(t->sname, name) == 0)
+#else
                if (t->sname && strcmp(t->sname + gd->reloc_off, name) == 0)
+#endif
                        return (t->id);
        }
        debug ("Invalid %s Type: %s\n", table_name, name);
@@ -757,7 +756,7 @@ int genimg_has_config (bootm_headers_t *images)
  *     1, if ramdisk image is found but corrupted, or invalid
  *     rd_start and rd_end are set to 0 if no ramdisk exists
  */
-int boot_get_ramdisk (int argc, char *argv[], bootm_headers_t *images,
+int boot_get_ramdisk (int argc, char * const argv[], bootm_headers_t *images,
                uint8_t arch, ulong *rd_start, ulong *rd_end)
 {
        ulong rd_addr, rd_load;
@@ -1280,7 +1279,7 @@ error:
  *     1, if fdt image is found but corrupted
  *     of_flat_tree and of_size are set to 0 if no fdt exists
  */
-int boot_get_fdt (int flag, int argc, char *argv[], bootm_headers_t *images,
+int boot_get_fdt (int flag, int argc, char * const argv[], bootm_headers_t *images,
                char **of_flat_tree, ulong *of_size)
 {
        const image_header_t *fdt_hdr;