]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/image.c
x86: dts: Add a device tree file for EFI
[karo-tx-uboot.git] / common / image.c
index 0f5274f1be4739379551f8a1691afab4da684d11..9efacf8b89ecb36b0f2c43dd5cd5fa373b648ebe 100644 (file)
@@ -462,7 +462,7 @@ phys_size_t getenv_bootm_size(void)
                tmp = 0;
 
 
-#if defined(CONFIG_ARM)
+#if defined(CONFIG_ARM) && defined(CONFIG_NR_DRAM_BANKS)
        return gd->bd->bi_dram[0].size - tmp;
 #else
        return gd->bd->bi_memsize - tmp;
@@ -543,6 +543,15 @@ void genimg_print_time(time_t timestamp)
 }
 #endif
 
+const table_entry_t *get_table_entry(const table_entry_t *table, int id)
+{
+       for (; table->id >= 0; ++table) {
+               if (table->id == id)
+                       return table;
+       }
+       return NULL;
+}
+
 /**
  * get_table_entry_name - translate entry id to long name
  * @table: pointer to a translation table for entries of a specific type
@@ -559,15 +568,14 @@ void genimg_print_time(time_t timestamp)
  */
 char *get_table_entry_name(const table_entry_t *table, char *msg, int id)
 {
-       for (; table->id >= 0; ++table) {
-               if (table->id == id)
+       table = get_table_entry(table, id);
+       if (!table)
+               return msg;
 #if defined(USE_HOSTCC) || !defined(CONFIG_NEEDS_MANUAL_RELOC)
-                       return table->lname;
+       return table->lname;
 #else
-                       return table->lname + gd->reloc_off;
+       return table->lname + gd->reloc_off;
 #endif
-       }
-       return (msg);
 }
 
 const char *genimg_get_os_name(uint8_t os)
@@ -586,6 +594,20 @@ const char *genimg_get_type_name(uint8_t type)
        return (get_table_entry_name(uimage_type, "Unknown Image", type));
 }
 
+const char *genimg_get_type_short_name(uint8_t type)
+{
+       const table_entry_t *table;
+
+       table = get_table_entry(uimage_type, type);
+       if (!table)
+               return "unknown";
+#if defined(USE_HOSTCC) || !defined(CONFIG_NEEDS_MANUAL_RELOC)
+       return table->sname;
+#else
+       return table->sname + gd->reloc_off;
+#endif
+}
+
 const char *genimg_get_comp_name(uint8_t comp)
 {
        return (get_table_entry_name(uimage_comp, "Unknown Compression",
@@ -610,34 +632,18 @@ int get_table_entry_id(const table_entry_t *table,
                const char *table_name, const char *name)
 {
        const table_entry_t *t;
-#ifdef USE_HOSTCC
-       int first = 1;
-
-       for (t = table; t->id >= 0; ++t) {
-               if (t->sname && strcasecmp(t->sname, name) == 0)
-                       return(t->id);
-       }
 
-       fprintf(stderr, "\nInvalid %s Type - valid names are", table_name);
-       for (t = table; t->id >= 0; ++t) {
-               if (t->sname == NULL)
-                       continue;
-               fprintf(stderr, "%c %s", (first) ? ':' : ',', t->sname);
-               first = 0;
-       }
-       fprintf(stderr, "\n");
-#else
        for (t = table; t->id >= 0; ++t) {
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
-               if (t->sname && strcmp(t->sname + gd->reloc_off, name) == 0)
+               if (t->sname && strcasecmp(t->sname + gd->reloc_off, name) == 0)
 #else
-               if (t->sname && strcmp(t->sname, name) == 0)
+               if (t->sname && strcasecmp(t->sname, name) == 0)
 #endif
                        return (t->id);
        }
        debug("Invalid %s Type: %s\n", table_name, name);
-#endif /* USE_HOSTCC */
-       return (-1);
+
+       return -1;
 }
 
 int genimg_get_os_id(const char *name)