]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/image.c
usb:gadget: USB Mass Storage Gadget support
[karo-tx-uboot.git] / common / image.c
index e93b6e89cf9da48a130c265a83b575eba4a0c737..6afbb40a9871078abe99d48deba8a2b54b16dbc5 100644 (file)
 #include <rtc.h>
 #endif
 
+#include <environment.h>
 #include <image.h>
 
 #if defined(CONFIG_FIT) || defined(CONFIG_OF_LIBFDT)
-#include <fdt.h>
 #include <libfdt.h>
 #include <fdt_support.h>
 #endif
@@ -74,6 +74,8 @@ static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch,
 #include <image.h>
 #endif /* !USE_HOSTCC*/
 
+#include <u-boot/crc.h>
+
 static const table_entry_t uimage_arch[] = {
        {       IH_ARCH_INVALID,        NULL,           "Invalid ARCH", },
        {       IH_ARCH_ALPHA,          "alpha",        "Alpha",        },
@@ -160,8 +162,6 @@ static const table_entry_t uimage_comp[] = {
        {       -1,             "",             "",                     },
 };
 
-uint32_t crc32(uint32_t, const unsigned char *, uint);
-uint32_t crc32_wd(uint32_t, const unsigned char *, uint, uint);
 #if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE) || defined(USE_HOSTCC)
 static void genimg_print_time(time_t timestamp);
 #endif
@@ -416,11 +416,25 @@ static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch,
 /* Shared dual-format routines */
 /*****************************************************************************/
 #ifndef USE_HOSTCC
-int getenv_yesno(char *var)
+ulong load_addr = CONFIG_SYS_LOAD_ADDR;        /* Default Load Address */
+ulong save_addr;                       /* Default Save Address */
+ulong save_size;                       /* Default Save Size (in bytes) */
+
+static int on_loadaddr(const char *name, const char *value, enum env_op op,
+       int flags)
 {
-       char *s = getenv(var);
-       return (s && (*s == 'n')) ? 0 : 1;
+       switch (op) {
+       case env_op_create:
+       case env_op_overwrite:
+               load_addr = simple_strtoul(value, NULL, 16);
+               break;
+       default:
+               break;
+       }
+
+       return 0;
 }
+U_BOOT_ENV_CALLBACK(loadaddr, on_loadaddr);
 
 ulong getenv_bootm_low(void)
 {