]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-arm
authorTom Rini <trini@ti.com>
Fri, 10 Jan 2014 15:56:00 +0000 (10:56 -0500)
committerTom Rini <trini@ti.com>
Fri, 10 Jan 2014 15:56:00 +0000 (10:56 -0500)
Bringing in the MMC tree means that CONFIG_BOUNCE_BUFFER needed to be
added to include/configs/exynos5-dt.h now.

Conflicts:
include/configs/exynos5250-dt.h

Signed-off-by: Tom Rini <trini@ti.com>
15 files changed:
1  2 
Makefile
arch/arm/lib/bootm.c
boards.cfg
common/board_f.c
common/fdt_support.c
include/configs/arndale.h
include/configs/balloon3.h
include/configs/exynos5-dt.h
include/configs/lp8x4x.h
include/configs/palmld.h
include/configs/palmtc.h
include/configs/zipitz2.h
spl/Makefile
tools/Makefile
tools/mxsimage.c

diff --combined Makefile
index cbd45a7f178d75801661c586559ae2bb6ad6b774,dc5ba046164110bab85f41b15ef38b2d3da9952e..e6f6edbb3a6d459a121d6c8d284f5343bf05a0a2
+++ b/Makefile
@@@ -8,7 -8,7 +8,7 @@@
  VERSION = 2014
  PATCHLEVEL = 01
  SUBLEVEL =
 -EXTRAVERSION = -rc1
 +EXTRAVERSION = -rc2
  ifneq "$(SUBLEVEL)" ""
  U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
  else
@@@ -109,6 -109,11 +109,6 @@@ export    TOPDIR SRCTREE OBJTREE SPLTREE T
  MKCONFIG      := $(SRCTREE)/mkconfig
  export MKCONFIG
  
 -ifneq ($(OBJTREE),$(SRCTREE))
 -REMOTE_BUILD  := 1
 -export REMOTE_BUILD
 -endif
 -
  # $(obj) and (src) are defined in config.mk but here in main Makefile
  # we also need them before config.mk is included which is the case for
  # some targets like unconfig, clean, clobber, distclean, etc.
@@@ -163,7 -168,7 +163,7 @@@ endi
  include $(TOPDIR)/config.mk
  
  # Targets which don't build the source code
 -NON_BUILD_TARGETS = backup clean clobber distclean mkproper tidy unconfig
 +NON_BUILD_TARGETS = backup clean clobber distclean mrproper tidy unconfig
  
  # Only do the generic board check when actually building, not configuring
  ifeq ($(filter $(NON_BUILD_TARGETS),$(MAKECMDGOALS)),)
@@@ -182,7 -187,7 +182,7 @@@ ifndef LDSCRIP
        #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug
        ifdef CONFIG_SYS_LDSCRIPT
                # need to strip off double quotes
 -              LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
 +              LDSCRIPT := $(CONFIG_SYS_LDSCRIPT:"%"=%)
        endif
  endif
  
@@@ -213,11 -218,15 +213,11 @@@ endi
  #########################################################################
  # U-Boot objects....order is important (i.e. start must be first)
  
 -OBJS  = $(CPUDIR)/start.o
 -ifeq ($(CPU),ppc4xx)
 -OBJS += $(CPUDIR)/resetvec.o
 -endif
 -ifeq ($(CPU),mpc85xx)
 -OBJS += $(CPUDIR)/resetvec.o
 -endif
 +head-y := $(CPUDIR)/start.o
 +head-$(CONFIG_4xx) += arch/powerpc/cpu/ppc4xx/resetvec.o
 +head-$(CONFIG_MPC85xx) += arch/powerpc/cpu/mpc85xx/resetvec.o
  
 -OBJS := $(addprefix $(obj),$(OBJS))
 +OBJS := $(addprefix $(obj),$(head-y))
  
  HAVE_VENDOR_COMMON_LIB = $(if $(wildcard board/$(VENDOR)/common/Makefile),y,n)
  
@@@ -240,9 -249,9 +240,9 @@@ LIBS-y += drivers/i2c
  LIBS-y += drivers/input/
  LIBS-y += drivers/mmc/
  LIBS-y += drivers/mtd/
 -LIBS-y += drivers/mtd/nand/
 +LIBS-$(CONFIG_CMD_NAND) += drivers/mtd/nand/
  LIBS-y += drivers/mtd/onenand/
 -LIBS-y += drivers/mtd/ubi/
 +LIBS-$(CONFIG_CMD_UBI) += drivers/mtd/ubi/
  LIBS-y += drivers/mtd/spi/
  LIBS-y += drivers/net/
  LIBS-y += drivers/net/phy/
@@@ -266,7 -275,7 +266,7 @@@ LIBS-y += drivers/usb/ulpi
  LIBS-y += common/
  LIBS-y += lib/libfdt/
  LIBS-$(CONFIG_API) += api/
 -LIBS-y += post/
 +LIBS-$(CONFIG_HAS_POST) += post/
  LIBS-y += test/
  
  ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs vf610))
@@@ -325,6 -334,17 +325,17 @@@ els
  BOARD_SIZE_CHECK =
  endif
  
+ # Statically apply RELA-style relocations (currently arm64 only)
+ ifneq ($(CONFIG_STATIC_RELA),)
+ # $(1) is u-boot ELF, $(2) is u-boot bin, $(3) is text base
+ DO_STATIC_RELA = \
+       start=$$($(NM) $(1) | grep __rel_dyn_start | cut -f 1 -d ' '); \
+       end=$$($(NM) $(1) | grep __rel_dyn_end | cut -f 1 -d ' '); \
+       $(obj)tools/relocate-rela $(2) $(3) $$start $$end
+ else
+ DO_STATIC_RELA =
+ endif
  # Always append ALL so that arch config.mk's can add custom ones
  ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
  
@@@ -336,17 -356,20 +347,20 @@@ ALL-$(CONFIG_SPL_FRAMEWORK) += $(obj)u-
  ALL-$(CONFIG_TPL) += $(obj)tpl/u-boot-tpl.bin
  ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
  ifneq ($(CONFIG_SPL_TARGET),)
 -ALL-$(CONFIG_SPL) += $(obj)$(subst ",,$(CONFIG_SPL_TARGET))
 +ALL-$(CONFIG_SPL) += $(obj)$(CONFIG_SPL_TARGET:"%"=%)
  endif
+ ALL-$(CONFIG_REMAKE_ELF) += $(obj)u-boot.elf
  
  # enable combined SPL/u-boot/dtb rules for tegra
  ifneq ($(CONFIG_TEGRA),)
+ ifeq ($(CONFIG_SPL),y)
  ifeq ($(CONFIG_OF_SEPARATE),y)
  ALL-y += $(obj)u-boot-dtb-tegra.bin
  else
  ALL-y += $(obj)u-boot-nodtb-tegra.bin
  endif
  endif
+ endif
  
  build := -f $(TOPDIR)/scripts/Makefile.build -C
  
@@@ -367,6 -390,7 +381,7 @@@ $(obj)u-boot.srec: $(obj)u-boo
  
  $(obj)u-boot.bin:     $(obj)u-boot
                $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
+               $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
                $(BOARD_SIZE_CHECK)
  
  $(obj)u-boot.ldr:     $(obj)u-boot
@@@ -471,10 -495,12 +486,10 @@@ $(obj)u-boot.sb:       $(obj)u-boot.bi
  $(obj)u-boot.spr:     $(obj)u-boot.img $(obj)spl/u-boot-spl.bin
                $(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
                -a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n XLOADER \
 -              -d $(obj)spl/u-boot-spl.bin $(obj)spl/u-boot-spl.img
 -              tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_SPL_PAD_TO) \
 -                      of=$(obj)spl/u-boot-spl-pad.img 2>/dev/null
 -              dd if=$(obj)spl/u-boot-spl.img of=$(obj)spl/u-boot-spl-pad.img \
 -                      conv=notrunc 2>/dev/null
 -              cat $(obj)spl/u-boot-spl-pad.img $(obj)u-boot.img > $@
 +              -d $(obj)spl/u-boot-spl.bin $@
 +              $(OBJCOPY) -I binary -O binary \
 +                      --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff $@
 +              cat $(obj)u-boot.img >> $@
  
  ifneq ($(CONFIG_TEGRA),)
  $(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
@@@ -497,10 -523,24 +512,22 @@@ $(obj)u-boot-img.bin: $(obj)spl/u-boot-
  # at the start padded up to the start of the SPL image. And then concat
  # the SPL image to the end.
  $(obj)u-boot-img-spl-at-end.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
 -              tr "\000" "\377" < /dev/zero | dd ibs=1 count=$(CONFIG_UBOOT_PAD_TO) \
 -                      of=$(obj)u-boot-pad.img 2>/dev/null
 -              dd if=$(obj)u-boot.img of=$(obj)u-boot-pad.img \
 -                      conv=notrunc 2>/dev/null
 -              cat $(obj)u-boot-pad.img $(obj)spl/u-boot-spl.bin > $@
 +              $(OBJCOPY) -I binary -O binary --pad-to=$(CONFIG_UBOOT_PAD_TO) \
 +                       --gap-fill=0xff $(obj)u-boot.img $@
 +              cat $(obj)spl/u-boot-spl.bin >> $@
  
+ # Create a new ELF from a raw binary file.  This is useful for arm64
+ # where static relocation needs to be performed on the raw binary,
+ # but certain simulators only accept an ELF file (but don't do the
+ # relocation).
+ # FIXME refactor dts/Makefile to share target/arch detection
+ $(obj)u-boot.elf: $(obj)u-boot.bin
+       @$(OBJCOPY)  -B aarch64 -I binary -O elf64-littleaarch64 \
+               $< $(obj)u-boot-elf.o
+       @$(LD) $(obj)u-boot-elf.o -o $@ \
+               --defsym=_start=$(CONFIG_SYS_TEXT_BASE) \
+               -Ttext=$(CONFIG_SYS_TEXT_BASE)
  ifeq ($(CONFIG_SANDBOX),y)
  GEN_UBOOT = \
                cd $(LNDIR) && $(CC) $(SYMS) -T $(obj)u-boot.lds \
@@@ -515,7 -555,7 +542,7 @@@ GEN_UBOOT = 
  endif
  
  $(obj)u-boot: depend \
 -              $(SUBDIR_TOOLS) $(OBJS) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
 +              $(SUBDIR_TOOLS) $(OBJS) $(LIBS) $(obj)u-boot.lds
                $(GEN_UBOOT)
  ifeq ($(CONFIG_KALLSYMS),y)
                smap=`$(call SYSTEM_MAP,$(obj)u-boot) | \
@@@ -536,7 -576,10 +563,7 @@@ $(SUBDIRS):       depen
  
  $(SUBDIR_EXAMPLES-y): $(obj)u-boot
  
 -$(LDSCRIPT):  depend
 -              $(MAKE) -C $(dir $@) $(notdir $@)
 -
 -$(obj)u-boot.lds: $(LDSCRIPT)
 +$(obj)u-boot.lds: $(LDSCRIPT) depend
                $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
  
  nand_spl:     $(TIMESTAMP_FILE) $(VERSION_FILE) depend
@@@ -570,7 -613,7 +597,7 @@@ FINDFLAGS := -
  checkstack:
                $(CROSS_COMPILE)objdump -d $(obj)u-boot \
                        `$(FIND) $(obj) -name u-boot-spl -print` | \
 -                      perl $(src)tools/checkstack.pl $(ARCH)
 +                      perl $(src)scripts/checkstack.pl $(ARCH)
  
  tags ctags:
                ctags -w -o $(obj)ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
@@@ -622,49 -665,63 +649,49 @@@ checkdtc
  # to regenerate the autoconf.mk file.
  $(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
        @$(XECHO) Generating $@ ; \
 -      set -e ; \
        : Generate the dependancies ; \
        $(CC) -x c -DDO_DEPS_ONLY -M $(CFLAGS) $(CPPFLAGS) \
 -              -MQ $(obj)include/autoconf.mk include/common.h > $@
 +              -MQ $(obj)include/autoconf.mk include/common.h > $@ || \
 +              rm $@
  
  $(obj)include/autoconf.mk: $(obj)include/config.h
        @$(XECHO) Generating $@ ; \
 -      set -e ; \
        : Extract the config macros ; \
 -      $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
 -              sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
 -      mv $@.tmp $@
 +      $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h > $@.tmp && \
 +              sed -n -f tools/scripts/define2mk.sed $@.tmp > $@; \
 +      rm $@.tmp
  
  # Auto-generate the spl-autoconf.mk file (which is included by all makefiles for SPL)
  $(obj)include/tpl-autoconf.mk: $(obj)include/config.h
        @$(XECHO) Generating $@ ; \
 -      set -e ; \
        : Extract the config macros ; \
        $(CPP) $(CFLAGS) -DCONFIG_TPL_BUILD  -DCONFIG_SPL_BUILD\
 -                      -DDO_DEPS_ONLY -dM include/common.h | \
 -      sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
 -      mv $@.tmp $@
 +                      -DDO_DEPS_ONLY -dM include/common.h > $@.tmp && \
 +              sed -n -f tools/scripts/define2mk.sed $@.tmp > $@; \
 +      rm $@.tmp
  
  $(obj)include/spl-autoconf.mk: $(obj)include/config.h
        @$(XECHO) Generating $@ ; \
 -      set -e ; \
        : Extract the config macros ; \
 -      $(CPP) $(CFLAGS) -DCONFIG_SPL_BUILD -DDO_DEPS_ONLY -dM include/common.h | \
 -      sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
 -      mv $@.tmp $@
 -
 -$(obj)include/generated/generic-asm-offsets.h:        $(obj)include/autoconf.mk.dep \
 -      $(obj)include/spl-autoconf.mk \
 -      $(obj)include/tpl-autoconf.mk \
 -      $(obj)lib/asm-offsets.s
 +      $(CPP) $(CFLAGS) -DCONFIG_SPL_BUILD -DDO_DEPS_ONLY -dM include/common.h > $@.tmp && \
 +              sed -n -f tools/scripts/define2mk.sed $@.tmp > $@; \
 +      rm $@.tmp
 +
 +$(obj)include/generated/generic-asm-offsets.h: $(obj)lib/asm-offsets.s
        @$(XECHO) Generating $@
        tools/scripts/make-asm-offsets $(obj)lib/asm-offsets.s $@
  
 -$(obj)lib/asm-offsets.s:      $(obj)include/autoconf.mk.dep \
 -      $(obj)include/spl-autoconf.mk \
 -      $(obj)include/tpl-autoconf.mk \
 -      $(src)lib/asm-offsets.c
 +$(obj)lib/asm-offsets.s: $(obj)include/config.h $(src)lib/asm-offsets.c
        @mkdir -p $(obj)lib
        $(CC) -DDO_DEPS_ONLY \
                $(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
                -o $@ $(src)lib/asm-offsets.c -c -S
  
 -$(obj)include/generated/asm-offsets.h:        $(obj)include/autoconf.mk.dep \
 -      $(obj)include/spl-autoconf.mk \
 -      $(obj)include/tpl-autoconf.mk \
 -      $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
 +$(obj)include/generated/asm-offsets.h: $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
        @$(XECHO) Generating $@
        tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
  
 -$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s: $(obj)include/autoconf.mk.dep \
 -      $(obj)include/spl-autoconf.mk \
 -      $(obj)include/tpl-autoconf.mk
 +$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s: $(obj)include/config.h
        @mkdir -p $(obj)$(CPUDIR)/$(SOC)
        if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
                $(CC) -DDO_DEPS_ONLY \
@@@ -687,16 -744,20 +714,20 @@@ tools: $(VERSION_FILE) $(TIMESTAMP_FILE
        $(MAKE) -C $@ all
  endif # config.mk
  
- # ARM relocations should all be R_ARM_RELATIVE.
+ # ARM relocations should all be R_ARM_RELATIVE (32-bit) or
+ # R_AARCH64_RELATIVE (64-bit).
  checkarmreloc: $(obj)u-boot
-       @if test "R_ARM_RELATIVE" != \
-               "`$(CROSS_COMPILE)readelf -r $< | cut -d ' ' -f 4 | grep R_ARM | sort -u`"; \
-               then echo "$< contains relocations other than \
-               R_ARM_RELATIVE"; false; fi
+       @RELOC="`$(CROSS_COMPILE)readelf -r -W $< | cut -d ' ' -f 4 | \
+               grep R_A | sort -u`"; \
+       if test "$$RELOC" != "R_ARM_RELATIVE" -a \
+                "$$RELOC" != "R_AARCH64_RELATIVE"; then \
+               echo "$< contains unexpected relocations: $$RELOC"; \
+               false; \
+       fi
  
  $(VERSION_FILE):
                @mkdir -p $(dir $(VERSION_FILE))
 -              @( localvers='$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ; \
 +              @( localvers='$(shell $(TOPDIR)/scripts/setlocalversion $(TOPDIR))' ; \
                   printf '#define PLAIN_VERSION "%s%s"\n' \
                        "$(U_BOOT_VERSION)" "$${localvers}" ; \
                   printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' \
@@@ -751,7 -812,9 +782,7 @@@ $(obj).boards.depend:      boards.cf
  #########################################################################
  
  clean:
 -      @rm -f $(obj)examples/standalone/82559_eeprom                     \
 -             $(obj)examples/standalone/atmel_df_pow2                    \
 -             $(obj)examples/standalone/eepro100_eeprom                  \
 +      @rm -f $(obj)examples/standalone/atmel_df_pow2                    \
               $(obj)examples/standalone/hello_world                      \
               $(obj)examples/standalone/interrupt                        \
               $(obj)examples/standalone/mem_to_mem_idma2intr             \
               $(obj)examples/standalone/timer
        @rm -f $(obj)examples/api/demo{,.bin}
        @rm -f $(obj)tools/bmp_logo        $(obj)tools/easylogo/easylogo  \
 -             $(obj)tools/env/{fw_printenv,fw_setenv}                    \
 +             $(obj)tools/env/fw_printenv                                \
               $(obj)tools/envcrc                                         \
 -             $(obj)tools/gdb/{astest,gdbcont,gdbsend}                   \
 +             $(obj)tools/gdb/{gdbcont,gdbsend}                          \
               $(obj)tools/gen_eth_addr    $(obj)tools/img2srec           \
 +             $(obj)tools/dump{env,}image                \
               $(obj)tools/mk{env,}image   $(obj)tools/mpc86x_clk         \
               $(obj)tools/mk{$(BOARD),}spl                               \
               $(obj)tools/mxsboot                                        \
               $(obj)tools/proftool
        @rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}        \
               $(obj)board/matrix_vision/*/bootscript.img                 \
 -             $(obj)board/voiceblue/eeprom                               \
               $(obj)u-boot.lds                                           \
               $(obj)arch/blackfin/cpu/init.{lds,elf}
        @rm -f $(obj)include/bmp_logo.h
@@@ -809,6 -872,7 +840,6 @@@ clobber:   tid
        @rm -f $(obj)u-boot.ais
        @rm -f $(obj)u-boot.dtb
        @rm -f $(obj)u-boot.sb
 -      @rm -f $(obj)u-boot.bd
        @rm -f $(obj)u-boot.spr
        @rm -f $(obj)nand_spl/{u-boot.{lds,lst},System.map}
        @rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
diff --combined arch/arm/lib/bootm.c
index dff10ba3acfc033fd0340d2e9f5b1b12657ac796,77f1a5c9736f13ec4034a641f19f360c86fd8fc7..a8295bf1f1e1e0dd3bbd1d590e0065501b1d2dc2
@@@ -196,6 -196,14 +196,14 @@@ static void do_nonsec_virt_switch(void
                debug("entered non-secure state\n");
  #endif
  #endif
+ #ifdef CONFIG_ARM64
+       smp_kick_all_cpus();
+       armv8_switch_to_el2();
+ #ifdef CONFIG_ARMV8_SWITCH_TO_EL1
+       armv8_switch_to_el1();
+ #endif
+ #endif
  }
  
  /* Subcommand: PREP */
@@@ -240,6 -248,21 +248,21 @@@ static void boot_prep_linux(bootm_heade
  /* Subcommand: GO */
  static void boot_jump_linux(bootm_headers_t *images, int flag)
  {
+ #ifdef CONFIG_ARM64
+       void (*kernel_entry)(void *fdt_addr);
+       int fake = (flag & BOOTM_STATE_OS_FAKE_GO);
+       kernel_entry = (void (*)(void *fdt_addr))images->ep;
+       debug("## Transferring control to Linux (at address %lx)...\n",
+               (ulong) kernel_entry);
+       bootstage_mark(BOOTSTAGE_ID_RUN_OS);
+       announce_and_cleanup(fake);
+       if (!fake)
+               kernel_entry(images->ft_addr);
+ #else
        unsigned long machid = gd->bd->bi_arch_number;
        char *s;
        void (*kernel_entry)(int zero, int arch, uint params);
  
        if (!fake)
                kernel_entry(0, machid, r2);
+ #endif
  }
  
  /* Main Entry point for arm bootm implementation
@@@ -326,26 -350,3 +350,26 @@@ int bootz_setup(ulong image, ulong *sta
  }
  
  #endif        /* CONFIG_CMD_BOOTZ */
 +
 +#if defined(CONFIG_BOOTM_VXWORKS)
 +void boot_prep_vxworks(bootm_headers_t *images)
 +{
 +#if defined(CONFIG_OF_LIBFDT)
 +      int off;
 +
 +      if (images->ft_addr) {
 +              off = fdt_path_offset(images->ft_addr, "/memory");
 +              if (off < 0) {
 +                      if (arch_fixup_memory_node(images->ft_addr))
 +                              puts("## WARNING: fixup memory failed!\n");
 +              }
 +      }
 +#endif
 +      cleanup_before_linux();
 +}
 +void boot_jump_vxworks(bootm_headers_t *images)
 +{
 +      /* ARM VxWorks requires device tree physical address to be passed */
 +      ((void (*)(void *))images->ep)(images->ft_addr);
 +}
 +#endif
diff --combined boards.cfg
index 18faf09a15fe537755b4b87a4994d9018f0e26b8,a1a727fb5ecee39db16106c3f5db9c38cdc13ed2..d177f8227c7fc4b3ff95b923a734a353481c51fc
@@@ -171,6 -171,7 +171,7 @@@ Active  arm         arm926ejs      kirk
  Active  arm         arm926ejs      kirkwood    karo            tk71                tk71                                 -                                                                                                                                 -
  Active  arm         arm926ejs      kirkwood    keymile         km_arm              km_kirkwood                          km_kirkwood:KM_KIRKWOOD                                                                                                           Valentin Longchamp <valentin.longchamp@keymile.com>
  Active  arm         arm926ejs      kirkwood    keymile         km_arm              km_kirkwood_pci                      km_kirkwood:KM_KIRKWOOD_PCI                                                                                                       Valentin Longchamp <valentin.longchamp@keymile.com>
+ Active  arm         arm926ejs      kirkwood    keymile         km_arm              km_kirkwood_128m16                   km_kirkwood:KM_KIRKWOOD_128M16                                                                                                    Valentin Longchamp <valentin.longchamp@keymile.com>
  Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmcoge5un                            km_kirkwood:KM_COGE5UN                                                                                                            Valentin Longchamp <valentin.longchamp@keymile.com>
  Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmnusa                               km_kirkwood:KM_NUSA                                                                                                               Valentin Longchamp <valentin.longchamp@keymile.com>
  Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmsuv31                              km_kirkwood:KM_SUV31                                                                                                              Valentin Longchamp <valentin.longchamp@keymile.com>
@@@ -266,7 -267,7 +267,7 @@@ Active  arm         armv7          am33
  Active  arm         armv7          am33xx      ti              am335x              am335x_evm_uart4                     am335x_evm:SERIAL5,CONS_INDEX=5,NAND                                                                                              Tom Rini <trini@ti.com>
  Active  arm         armv7          am33xx      ti              am335x              am335x_evm_uart5                     am335x_evm:SERIAL6,CONS_INDEX=6,NAND                                                                                              Tom Rini <trini@ti.com>
  Active  arm         armv7          am33xx      ti              am335x              am335x_evm_usbspl                    am335x_evm:SERIAL1,CONS_INDEX=1,NAND,SPL_USBETH_SUPPORT                                                                           Tom Rini <trini@ti.com>
- Active  arm         armv7          am33xx      ti              am43xx              am43xx_evm                           am43xx_evm:SERIAL1,CONS_INDEX=1                                                                                                   -
+ Active  arm         armv7          am33xx      ti              am43xx              am43xx_evm                           am43xx_evm:SERIAL1,CONS_INDEX=1                                                                                                   Lokesh Vutla <lokeshvutla@ti.com>
  Active  arm         armv7          am33xx      ti              ti814x              ti814x_evm                           -                                                                                                                                 Matt Porter <matt.porter@linaro.org>
  Active  arm         armv7          am33xx      ti              ti816x              ti816x_evm                           -                                                                                                                                 -
  Active  arm         armv7          at91        atmel           sama5d3xek          sama5d3xek_mmc                       sama5d3xek:SAMA5D3,SYS_USE_MMC                                                                                                    Bo Shen <voice.shen@atmel.com>
@@@ -276,10 -277,11 +277,11 @@@ Active  arm         armv7          exyn
  Active  arm         armv7          exynos      samsung         origen              origen                               -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>
  Active  arm         armv7          exynos      samsung         smdk5250            smdk5250                             -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>
  Active  arm         armv7          exynos      samsung         smdk5250            snow                                 -                                                                                                                                 Rajeshwari Shinde <rajeshwari.s@samsung.com>
+ Active  arm         armv7          exynos      samsung         smdk5420            smdk5420                                 -                                                                                                                                 Rajeshwari Shinde <rajeshwari.s@samsung.com>
  Active  arm         armv7          exynos      samsung         smdkv310            smdkv310                             -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>
  Active  arm         armv7          exynos      samsung         trats               trats                                -                                                                                                                                 Lukasz Majewski <l.majewski@samsung.com>
  Active  arm         armv7          exynos      samsung         trats2              trats2                               -                                                                                                                                 Piotr Wilczek <p.wilczek@samsung.com>
 -Active  arm         armv7          exynos      samsung         universal_c210      s5pc210_universal                    -                                                                                                                                 Minkyu Kang <mk7.kang@samsung.com>
 +Active  arm         armv7          exynos      samsung         universal_c210      s5pc210_universal                    -                                                                                                                                 Przemyslaw Marczak <p.marczak@samsung.com>
  Active  arm         armv7          highbank    -               highbank            highbank                             -                                                                                                                                 Rob Herring <rob.herring@calxeda.com>
  Active  arm         armv7          mx5         denx            m53evk              m53evk                               m53evk:IMX_CONFIG=board/denx/m53evk/imximage.cfg                                                                                  Marek Vasut <marek.vasut@gmail.com>
  Active  arm         armv7          mx5         esg             ima3-mx53           ima3-mx53                            ima3-mx53:IMX_CONFIG=board/esg/ima3-mx53/imximage.cfg                                                                             -
@@@ -291,7 -293,7 +293,7 @@@ Active  arm         armv7          mx
  Active  arm         armv7          mx5         genesi          mx51_efikamx        mx51_efikamx                         mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg                                -
  Active  arm         armv7          mx5         genesi          mx51_efikamx        mx51_efikasb                         mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_sb.cfg                                -
  Active  arm         armv7          mx5         ttcontrol       vision2             vision2                              vision2:IMX_CONFIG=board/ttcontrol/vision2/imximage_hynix.cfg                                                                     Stefano Babic <sbabic@denx.de>
- Active  arm         armv7          mx6         -               udoo              udoo_quad                            udoo:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q.cfg,MX6Q,DDR_MB=1024          Fabio Estevam <fabio.estevam@freescale.com>
+ Active  arm         armv7          mx6         -               udoo              udoo_quad                            udoo:IMX_CONFIG=board/udoo/udoo.cfg,MX6Q,DDR_MB=1024       Fabio Estevam <fabio.estevam@freescale.com>
  Active  arm         armv7          mx6         -               wandboard           wandboard_dl                         wandboard:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl.cfg,MX6DL,DDR_MB=1024                                                  Fabio Estevam <fabio.estevam@freescale.com>
  Active  arm         armv7          mx6         -               wandboard           wandboard_quad                       wandboard:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q2g.cfg,MX6Q,DDR_MB=2048                                                  Fabio Estevam <fabio.estevam@freescale.com>
  Active  arm         armv7          mx6         -               wandboard           wandboard_solo                       wandboard:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6s.cfg,MX6S,DDR_MB=512                                                     Fabio Estevam <fabio.estevam@freescale.com>
@@@ -308,7 -310,7 +310,7 @@@ Active  arm         armv7          mx
  Active  arm         armv7          mx6         freescale       mx6sabresd          mx6dlsabresd                         mx6sabresd:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl.cfg,MX6DL                                                             Fabio Estevam <fabio.estevam@freescale.com>
  Active  arm         armv7          mx6         freescale       mx6sabresd          mx6qsabresd                          mx6sabresd:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg,MX6Q                                                           Fabio Estevam <fabio.estevam@freescale.com>
  Active  arm         armv7          mx6         freescale       mx6slevk            mx6slevk                             mx6slevk:IMX_CONFIG=board/freescale/mx6slevk/imximage.cfg,MX6SL                                                                   Fabio Estevam <fabio.estevam@freescale.com>
- Active  arm         armv7          mx6         freescale       titanium            titanium                             titanium:IMX_CONFIG=board/freescale/titanium/imximage.cfg                                                                         Stefan Roese <sr@denx.de>
+ Active  arm         armv7          mx6         barco           titanium            titanium                             titanium:IMX_CONFIG=board/barco/titanium/imximage.cfg                                                                         Stefan Roese <sr@denx.de>
  Active  arm         armv7          omap3       -               overo               omap3_overo                          -                                                                                                                                 Steve Sakoman <sakoman@gmail.com>
  Active  arm         armv7          omap3       -               pandora             omap3_pandora                        -                                                                                                                                 Grazvydas Ignotas <notasas@gmail.com>
  Active  arm         armv7          omap3       8dtech          eco5pk              eco5pk                               -                                                                                                                                 Raphael Assenat <raph@8d.com>
@@@ -325,9 -327,10 +327,10 @@@ Active  arm         armv7          omap
  Active  arm         armv7          omap3       logicpd         am3517evm           am3517_evm                           -                                                                                                                                 Vaibhav Hiremath <hvaibhav@ti.com>
  Active  arm         armv7          omap3       logicpd         omap3som            omap3_logic                          -                                                                                                                                 Peter Barada <peter.barada@logicpd.com>
  Active  arm         armv7          omap3       logicpd         zoom1               omap3_zoom1                          -                                                                                                                                 Nishanth Menon <nm@ti.com>
- Active  arm         armv7          omap3       logicpd         zoom2               omap3_zoom2                          -                                                                                                                                 Tom Rix <Tom.Rix@windriver.com>
  Active  arm         armv7          omap3       matrix_vision   mvblx               omap3_mvblx                          -                                                                                                                                 Michael Jones <michael.jones@matrix-vision.de>
  Active  arm         armv7          omap3       nokia           rx51                nokia_rx51                           -                                                                                                                                 Pali Rohár <pali.rohar@gmail.com>
+ Active  arm         armv7          omap3       technexion      tao3530             omap3_ha                             tao3530:SYS_BOARD_OMAP3_HA                                                                                                        Stefan Roese <sr@denx.de>
+ Active  arm         armv7          omap3       technexion      tao3530             tao3530                              -                                                                                                                                 Tapani Utriainen <linuxfae@technexion.com>
  Active  arm         armv7          omap3       technexion      twister             twister                              -                                                                                                                                 Stefano Babic <sbabic@denx.de>
  Active  arm         armv7          omap3       teejet          mt_ventoux          mt_ventoux                           -                                                                                                                                 Stefano Babic <sbabic@denx.de>
  Active  arm         armv7          omap3       ti              am3517crane         am3517_crane                         -                                                                                                                                 Nagendra T S  <nagendra@mistralsolutions.com>
@@@ -348,18 -351,23 +351,23 @@@ Active  arm         armv7          rmob
  Active  arm         armv7          rmobile     renesas         lager               lager_nor                            lager:NORFLASH                                                                                                                    Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
  Active  arm         armv7          rmobile     renesas         koelsch             koelsch                              -                                                                                                                                 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
  Active  arm         armv7          rmobile     renesas         koelsch             koelsch_nor                          koelsch:NORFLASH                                                                                                                  Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
 -Active  arm         armv7          s5pc1xx     samsung         goni                s5p_goni                             -                                                                                                                                 Minkyu Kang <mk7.kang@samsung.com>
 +Active  arm         armv7          s5pc1xx     samsung         goni                s5p_goni                             -                                                                                                                                 Mateusz Zalega <m.zalega@samsung.com>
  Active  arm         armv7          s5pc1xx     samsung         smdkc100            smdkc100                             -                                                                                                                                 Minkyu Kang <mk7.kang@samsung.com>
  Active  arm         armv7          socfpga     altera          socfpga             socfpga_cyclone5                     -                                                                                                                                 -
  Active  arm         armv7          u8500       st-ericsson     snowball            snowball                             -                                                                                                                                 Mathieu Poirier <mathieu.poirier@linaro.org>
  Active  arm         armv7          u8500       st-ericsson     u8500               u8500_href                           -                                                                                                                                 -
  Active  arm         armv7          vf610       freescale       vf610twr            vf610twr                             vf610twr:IMX_CONFIG=board/freescale/vf610twr/imximage.cfg                                                                         Alison Wang <b18965@freescale.com>
- Active  arm         armv7          zynq        xilinx          zynq                zynq                                 -                                                                                                                                 Michal Simek <monstr@monstr.eu>
- Active  arm         armv7          zynq        xilinx          zynq                zynq_dcc                             zynq:ZYNQ_DCC                                                                                                                     Michal Simek <monstr@monstr.eu>
+ Active  arm       armv7          zynq        xilinx          zynq                zynq_zc70x                           -                                                                                                                                 Michal Simek <monstr@monstr.eu>:Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
+ Active  arm       armv7          zynq        xilinx          zynq                zynq_zed                             -                                                                                                                                 Michal Simek <monstr@monstr.eu>:Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
+ Active  arm       armv7          zynq        xilinx          zynq                zynq_microzed                        -                                                                                                                                 Michal Simek <monstr@monstr.eu>:Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
+ Active  arm       armv7          zynq        xilinx          zynq                zynq_zc770_xm010                     zynq_zc770:ZC770_XM010                                                                                                            Michal Simek <monstr@monstr.eu>:Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
+ Active  arm       armv7          zynq        xilinx          zynq                zynq_zc770_xm012                     zynq_zc770:ZC770_XM012                                                                                                            Michal Simek <monstr@monstr.eu>:Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
+ Active  arm       armv7          zynq        xilinx          zynq                zynq_zc770_xm013                     zynq_zc770:ZC770_XM013                                                                                                            Michal Simek <monstr@monstr.eu>:Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
  Active  arm         armv7:arm720t  tegra114    nvidia          dalmore             dalmore                              -                                                                                                                                 Tom Warren <twarren@nvidia.com>
- Active  arm         armv7:arm720t  tegra20     avionic-design  medcom-wide         medcom-wide                          -                                                                                                                                 Thierry Reding <thierry.reding@avionic-design.de>
- Active  arm         armv7:arm720t  tegra20     avionic-design  plutux              plutux                               -                                                                                                                                 Thierry Reding <thierry.reding@avionic-design.de>
- Active  arm         armv7:arm720t  tegra20     avionic-design  tec                 tec                                  -                                                                                                                                 Thierry Reding <thierry.reding@avionic-design.de>
+ Active  arm         armv7:arm720t  tegra20     avionic-design  medcom-wide         medcom-wide                          -                                                                                                                                 Alban Bedel <alban.bedel@avionic-design.de>
+ Active  arm         armv7:arm720t  tegra20     avionic-design  plutux              plutux                               -                                                                                                                                 Alban Bedel <alban.bedel@avionic-design.de>
+ Active  arm         armv7:arm720t  tegra20     avionic-design  tec                 tec                                  -                                                                                                                                 Alban Bedel <alban.bedel@avionic-design.de>
+ Active  arm         armv7:arm720t  tegra30     avionic-design  tec-ng              tec-ng                               -                                                                                                                                 Alban Bedel <alban.bedel@avionic-design.de>
  Active  arm         armv7:arm720t  tegra20     compal          paz00               paz00                                -                                                                                                                                 Tom Warren <twarren@nvidia.com>:Stephen Warren <swarren@nvidia.com>
  Active  arm         armv7:arm720t  tegra20     compulab        trimslice           trimslice                            -                                                                                                                                 Tom Warren <twarren@nvidia.com>:Stephen Warren <swarren@nvidia.com>
  Active  arm         armv7:arm720t  tegra20     nvidia          harmony             harmony                              -                                                                                                                                 Tom Warren <twarren@nvidia.com>
@@@ -393,6 -401,7 +401,7 @@@ Active  arm         pxa            
  Active  arm         pxa            -           icpdas          lp8x4x              lp8x4x                               -                                                                                                                                 Sergey Yanovich <ynvich@gmail.com>
  Active  arm         pxa            -           toradex         -                   colibri_pxa270                       -                                                                                                                                 Marek Vasut <marek.vasut@gmail.com>
  Active  arm         sa1100         -           -               -                   jornada                              -                                                                                                                                 Kristoffer Ericson <kristoffer.ericson@gmail.com>
+ Active  aarch64     armv8          -           armltd          vexpress64          vexpress_aemv8a                      vexpress_aemv8a:ARM64                                                                                                             David Feng <fenghua@phytium.com.cn>
  Active  avr32       at32ap         at32ap700x  atmel           -                   atngw100                             -                                                                                                                                 Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
  Active  avr32       at32ap         at32ap700x  atmel           -                   atngw100mkii                         -                                                                                                                                 Andreas Bießmann <andreas.devel@googlemail.com>
  Active  avr32       at32ap         at32ap700x  atmel           atstk1000           atstk1002                            -                                                                                                                                 Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
@@@ -636,6 -645,7 +645,6 @@@ Active  powerpc     mpc824x        
  Active  powerpc     mpc824x        -           -               cu824               CU824                                -                                                                                                                                 Wolfgang Denk <wd@denx.de>
  Active  powerpc     mpc824x        -           -               eXalion             eXalion                              -                                                                                                                                 Torsten Demke <torsten.demke@fci.com>
  Active  powerpc     mpc824x        -           -               hidden_dragon       HIDDEN_DRAGON                        -                                                                                                                                 Yusdi Santoso <yusdi_santoso@adaptec.com>
 -Active  powerpc     mpc824x        -           -               linkstation         linkstation_HGLAN                    linkstation:HGLAN=1                                                                                                               Guennadi Liakhovetski <g.liakhovetski@gmx.de>
  Active  powerpc     mpc824x        -           -               musenki             MUSENKI                              -                                                                                                                                 Jim Thompson <jim@musenki.com>
  Active  powerpc     mpc824x        -           -               mvblue              MVBLUE                               -                                                                                                                                 -
  Active  powerpc     mpc824x        -           -               sandpoint           Sandpoint8240                        -                                                                                                                                 Wolfgang Denk <wd@denx.de>
@@@ -965,7 -975,6 +974,7 @@@ Active  powerpc     mpc85xx        
  Active  powerpc     mpc85xx        -           freescale       t4qds               T4160QDS_SPIFLASH                    T4240QDS:PPC_T4160,RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000                                                                  -
  Active  powerpc     mpc85xx        -           freescale       t4qds               T4240EMU                             T4240EMU:PPC_T4240                                                                                                                York Sun <yorksun@freescale.com>
  Active  powerpc     mpc85xx        -           freescale       t4qds               T4240QDS                             T4240QDS:PPC_T4240                                                                                                                -
 +Active  powerpc     mpc85xx        -           freescale       t4qds               T4240QDS_NAND                      T4240QDS:PPC_T4240,RAMBOOT_PBL,NAND,SYS_TEXT_BASE=0xFFF80000                                                                      -
  Active  powerpc     mpc85xx        -           freescale       t4qds               T4240QDS_SDCARD                      T4240QDS:PPC_T4240,RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000                                                                    -
  Active  powerpc     mpc85xx        -           freescale       t4qds               T4240QDS_SPIFLASH                    T4240QDS:PPC_T4240,RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000                                                                  -
  Active  powerpc     mpc85xx        -           freescale       t4qds               T4240QDS_SRIO_PCIE_BOOT              T4240QDS:PPC_T4240,SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000                                                                  -
@@@ -1209,7 -1218,6 +1218,7 @@@ Active  sh          sh4            
  Active  sh          sh4            -           renesas         r2dplus             r2dplus                              -                                                                                                                                 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>:Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
  Active  sh          sh4            -           renesas         r7780mp             r7780mp                              -                                                                                                                                 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>:Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
  Active  sh          sh4            -           renesas         sh7752evb           sh7752evb                            -                                                                                                                                 -
 +Active  sh          sh4            -           renesas         sh7753evb           sh7753evb                            -                                                                                                                                 -
  Active  sh          sh4            -           renesas         sh7757lcr           sh7757lcr                            -                                                                                                                                 -
  Active  sh          sh4            -           renesas         sh7763rdp           sh7763rdp                            -                                                                                                                                 Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>:Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
  Active  sh          sh4            -           renesas         sh7785lcr           sh7785lcr                            -                                                                                                                                 -
@@@ -1238,4 -1246,3 +1247,3 @@@ Orphan  powerpc     mpc8xx         
  Orphan  powerpc     mpc8xx         -           -               mbx8xx              MBX                                  -                                                                                                                                 -
  Orphan  powerpc     mpc8xx         -           -               mbx8xx              MBX860T                              -                                                                                                                                 -
  Orphan  powerpc     mpc8xx         -           -               nx823               NX823                                -                                                                                                                                 -
diff --combined common/board_f.c
index c2f47bc18892a2f381d24ea8b114833c0c96484d,d918e4bb16fe39dc8539163e8554c89999f8905e..aa70c3e57de67e5041225abd88b6080fa46ca692
@@@ -347,10 -347,9 +347,10 @@@ done
  #ifdef CONFIG_SANDBOX
  static int setup_ram_buf(void)
  {
 -      gd->arch.ram_buf = os_malloc(CONFIG_SYS_SDRAM_SIZE);
 -      assert(gd->arch.ram_buf);
 -      gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
 +      struct sandbox_state *state = state_get_current();
 +
 +      gd->arch.ram_buf = state->ram_buf;
 +      gd->ram_size = state->ram_size;
  
        return 0;
  }
@@@ -463,7 -462,7 +463,7 @@@ static int reserve_round_4k(void
  static int reserve_mmu(void)
  {
        /* reserve TLB table */
-       gd->arch.tlb_size = 4096 * 4;
+       gd->arch.tlb_size = PGTABLE_SIZE;
        gd->relocaddr -= gd->arch.tlb_size;
  
        /* round down to next 64 kB limit */
@@@ -615,7 -614,7 +615,7 @@@ static int reserve_stacks(void
         * TODO(sjg@chromium.org): Perhaps create arch_reserve_stack()
         * to handle this and put in arch/xxx/lib/stack.c
         */
- # ifdef CONFIG_ARM
+ # if defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
  #  ifdef CONFIG_USE_IRQ
        gd->start_addr_sp -= (CONFIG_STACKSIZE_IRQ + CONFIG_STACKSIZE_FIQ);
        debug("Reserving %zu Bytes for IRQ stack at: %08lx\n",
@@@ -773,7 -772,7 +773,7 @@@ static int setup_reloc(void
  }
  
  /* ARM calls relocate_code from its crt0.S */
 -#if !defined(CONFIG_ARM)
 +#if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX)
  
  static int jump_to_copy(void)
  {
         * (CPU cache)
         */
        board_init_f_r_trampoline(gd->start_addr_sp);
 -#elif defined(CONFIG_SANDBOX)
 -      board_init_r(gd->new_gd, 0);
  #else
        relocate_code(gd->start_addr_sp, gd->new_gd, gd->relocaddr);
  #endif
@@@ -810,11 -811,6 +810,6 @@@ static int mark_bootstage(void
  }
  
  static init_fnc_t init_sequence_f[] = {
- #if !defined(CONFIG_CPM2) && !defined(CONFIG_MPC512X) && \
-               !defined(CONFIG_MPC83xx) && !defined(CONFIG_MPC85xx) && \
-               !defined(CONFIG_MPC86xx) && !defined(CONFIG_X86)
-       zero_global_data,
- #endif
  #ifdef CONFIG_SANDBOX
        setup_ram_buf,
  #endif
        INIT_FUNC_WATCHDOG_RESET
        reloc_fdt,
        setup_reloc,
 -#ifndef CONFIG_ARM
 +#if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX)
        jump_to_copy,
  #endif
        NULL,
@@@ -1008,13 -1004,23 +1003,24 @@@ void board_init_f(ulong boot_flags
        gd = &data;
  #endif
  
+       /*
+        * Clear global data before it is accessed at debug print
+        * in initcall_run_list. Otherwise the debug print probably
+        * get the wrong vaule of gd->have_console.
+        */
+ #if !defined(CONFIG_CPM2) && !defined(CONFIG_MPC512X) && \
+               !defined(CONFIG_MPC83xx) && !defined(CONFIG_MPC85xx) && \
+               !defined(CONFIG_MPC86xx) && !defined(CONFIG_X86)
+       zero_global_data();
+ #endif
        gd->flags = boot_flags;
 +      gd->have_console = 0;
  
        if (initcall_run_list(init_sequence_f))
                hang();
  
 -#ifndef CONFIG_ARM
 +#if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX)
        /* NOTREACHED - jump_to_copy() does not return */
        hang();
  #endif
diff --combined common/fdt_support.c
index 4e32b02aa233118a677a4d0b3d405373b04bf34f,a3f7442c324a3b873bd630144c3afa883059b320..b9dce994624edff4c75a17a14dae6858005caffd
   */
  DECLARE_GLOBAL_DATA_PTR;
  
+ /*
+  * Get cells len in bytes
+  *     if #NNNN-cells property is 2 then len is 8
+  *     otherwise len is 4
+  */
+ static int get_cells_len(void *blob, char *nr_cells_name)
+ {
+       const fdt32_t *cell;
+       cell = fdt_getprop(blob, 0, nr_cells_name, NULL);
+       if (cell && fdt32_to_cpu(*cell) == 2)
+               return 8;
+       return 4;
+ }
+ /*
+  * Write a 4 or 8 byte big endian cell
+  */
+ static void write_cell(u8 *addr, u64 val, int size)
+ {
+       int shift = (size - 1) * 8;
+       while (size-- > 0) {
+               *addr++ = (val >> shift) & 0xff;
+               shift -= 8;
+       }
+ }
  /**
   * fdt_getprop_u32_default - Find a node and return it's property or a default
   *
@@@ -131,9 -159,9 +159,9 @@@ static int fdt_fixup_stdout(void *fdt, 
  
  int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int force)
  {
-       int   nodeoffset;
+       int   nodeoffset, addr_cell_len;
        int   err, j, total;
-       fdt32_t  tmp;
+       fdt64_t  tmp;
        const char *path;
        uint64_t addr, size;
  
                return err;
        }
  
+       addr_cell_len = get_cells_len(fdt, "#address-cells");
        path = fdt_getprop(fdt, nodeoffset, "linux,initrd-start", NULL);
        if ((path == NULL) || force) {
-               tmp = cpu_to_fdt32(initrd_start);
+               write_cell((u8 *)&tmp, initrd_start, addr_cell_len);
                err = fdt_setprop(fdt, nodeoffset,
                        "linux,initrd-start", &tmp, sizeof(tmp));
                if (err < 0) {
                                fdt_strerror(err));
                        return err;
                }
-               tmp = cpu_to_fdt32(initrd_end);
+               write_cell((u8 *)&tmp, initrd_end, addr_cell_len);
                err = fdt_setprop(fdt, nodeoffset,
                        "linux,initrd-end", &tmp, sizeof(tmp));
                if (err < 0) {
@@@ -343,34 -373,6 +373,6 @@@ void do_fixup_by_compat_u32(void *fdt, 
        do_fixup_by_compat(fdt, compat, prop, &tmp, 4, create);
  }
  
- /*
-  * Get cells len in bytes
-  *     if #NNNN-cells property is 2 then len is 8
-  *     otherwise len is 4
-  */
- static int get_cells_len(void *blob, char *nr_cells_name)
- {
-       const fdt32_t *cell;
-       cell = fdt_getprop(blob, 0, nr_cells_name, NULL);
-       if (cell && fdt32_to_cpu(*cell) == 2)
-               return 8;
-       return 4;
- }
- /*
-  * Write a 4 or 8 byte big endian cell
-  */
- static void write_cell(u8 *addr, u64 val, int size)
- {
-       int shift = (size - 1) * 8;
-       while (size-- > 0) {
-               *addr++ = (val >> shift) & 0xff;
-               shift -= 8;
-       }
- }
  #ifdef CONFIG_NR_DRAM_BANKS
  #define MEMORY_BANKS_MAX CONFIG_NR_DRAM_BANKS
  #else
@@@ -400,11 -402,10 +402,11 @@@ int fdt_fixup_memory_banks(void *blob, 
        nodeoffset = fdt_path_offset(blob, "/memory");
        if (nodeoffset < 0) {
                nodeoffset = fdt_add_subnode(blob, 0, "memory");
 -              if (nodeoffset < 0)
 +              if (nodeoffset < 0) {
                        printf("WARNING: could not create /memory: %s.\n",
                                        fdt_strerror(nodeoffset));
 -              return nodeoffset;
 +                      return nodeoffset;
 +              }
        }
        err = fdt_setprop(blob, nodeoffset, "device_type", "memory",
                        sizeof("memory"));
index 3d29caf4c5e31d72ebe9a72467efc19a7be59e1a,b7fb29ea720022d029cc90fa592803702f41eb9b..7e367f39b27297ad984381b98cc20535c54f216f
@@@ -85,7 -85,6 +85,7 @@@
  #define CONFIG_DWMMC
  #define CONFIG_EXYNOS_DWMMC
  #define CONFIG_SUPPORT_EMMC_BOOT
 +#define CONFIG_BOUNCE_BUFFER
  
  
  #define CONFIG_BOARD_EARLY_INIT_F
  #define CONFIG_USB_STORAGE
  
  /* MMC SPL */
+ #define CONFIG_EXYNOS_SPL
  #define CONFIG_SPL
  #define COPY_BL2_FNPTR_ADDR   0x02020030
  
index 8b2a6cf11d6d307ebf9947106cdc6fffbd4e9a6b,d3d62744fa04a827492890f3a5252137d41cc27d..b41a823600d74348a5260bb3d255467ad0ea1e22
@@@ -61,6 -61,7 +61,6 @@@
   */
  #ifdef        CONFIG_CMD_KGDB
  #define       CONFIG_KGDB_BAUDRATE            230400  /* kgdb serial port speed */
 -#define       CONFIG_KGDB_SER_INDEX           2       /* which serial port to use */
  #endif
  
  /*
@@@ -84,7 -85,7 +84,7 @@@
   * Clock Configuration
   */
  #undef        CONFIG_SYS_CLKS_IN_HZ
- #define       CONFIG_SYS_HZ                   3250000         /* Timer @ 3250000 Hz */
+ #define       CONFIG_SYS_HZ                   1000
  #define       CONFIG_SYS_CPUSPEED             0x290           /* 520MHz */
  
  /*
  
  #define       CONFIG_SYS_FLASH_USE_BUFFER_WRITE       1
  
- #define       CONFIG_SYS_FLASH_ERASE_TOUT     (2*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_WRITE_TOUT     (2*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_LOCK_TOUT      (2*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_UNLOCK_TOUT    (2*CONFIG_SYS_HZ)
+ #define       CONFIG_SYS_FLASH_ERASE_TOUT     240000
+ #define       CONFIG_SYS_FLASH_WRITE_TOUT     240000
+ #define       CONFIG_SYS_FLASH_LOCK_TOUT      240000
+ #define       CONFIG_SYS_FLASH_UNLOCK_TOUT    240000
  #define       CONFIG_SYS_FLASH_PROTECTION
  #define       CONFIG_ENV_IS_IN_FLASH
  #else
index 0000000000000000000000000000000000000000,d684790f8e501be8d388cd59aef52bb68a504308..414db420dc30684ebc8d42614198a951fe195a52
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,290 +1,291 @@@
+ /*
+  * Copyright (C) 2013 Samsung Electronics
+  *
+  * Configuration settings for the SAMSUNG EXYNOS5 board.
+  *
+  * SPDX-License-Identifier:   GPL-2.0+
+  */
+ #ifndef __CONFIG_H
+ #define __CONFIG_H
+ /* High Level Configuration Options */
+ #define CONFIG_SAMSUNG                        /* in a SAMSUNG core */
+ #define CONFIG_S5P                    /* S5P Family */
+ #define CONFIG_EXYNOS5                        /* which is in a Exynos5 Family */
+ #include <asm/arch/cpu.h>             /* get chip and board defs */
+ #define CONFIG_SYS_GENERIC_BOARD
+ #define CONFIG_ARCH_CPU_INIT
+ #define CONFIG_DISPLAY_CPUINFO
+ #define CONFIG_DISPLAY_BOARDINFO
+ #define CONFIG_BOARD_COMMON
+ #define CONFIG_ARCH_EARLY_INIT_R
+ #define CONFIG_EXYNOS_SPL
+ /* Enable fdt support for Exynos5250 */
+ #define CONFIG_OF_CONTROL
+ #define CONFIG_OF_SEPARATE
+ /* Allow tracing to be enabled */
+ #define CONFIG_TRACE
+ #define CONFIG_CMD_TRACE
+ #define CONFIG_TRACE_BUFFER_SIZE      (16 << 20)
+ #define CONFIG_TRACE_EARLY_SIZE               (8 << 20)
+ #define CONFIG_TRACE_EARLY
+ #define CONFIG_TRACE_EARLY_ADDR               0x50000000
+ /* Keep L2 Cache Disabled */
+ #define CONFIG_SYS_DCACHE_OFF
+ #define CONFIG_SYS_CACHELINE_SIZE     64
+ /* Enable ACE acceleration for SHA1 and SHA256 */
+ #define CONFIG_EXYNOS_ACE_SHA
+ #define CONFIG_SHA_HW_ACCEL
+ /* input clock of PLL: SMDK5250 has 24MHz input clock */
+ #define CONFIG_SYS_CLK_FREQ           24000000
+ #define CONFIG_SETUP_MEMORY_TAGS
+ #define CONFIG_CMDLINE_TAG
+ #define CONFIG_INITRD_TAG
+ #define CONFIG_CMDLINE_EDITING
+ /* Power Down Modes */
+ #define S5P_CHECK_SLEEP                       0x00000BAD
+ #define S5P_CHECK_DIDLE                       0xBAD00000
+ #define S5P_CHECK_LPA                 0xABAD0000
+ /* Offset for inform registers */
+ #define INFORM0_OFFSET                        0x800
+ #define INFORM1_OFFSET                        0x804
+ #define INFORM2_OFFSET                        0x808
+ #define INFORM3_OFFSET                        0x80c
+ /* Size of malloc() pool */
+ #define CONFIG_SYS_MALLOC_LEN         (CONFIG_ENV_SIZE + (4 << 20))
+ /* select serial console configuration */
+ #define CONFIG_BAUDRATE                       115200
+ #define EXYNOS5_DEFAULT_UART_OFFSET   0x010000
+ #define CONFIG_SILENT_CONSOLE
+ /* Enable keyboard */
+ #define CONFIG_CROS_EC                /* CROS_EC protocol */
+ #define CONFIG_CROS_EC_SPI            /* Support CROS_EC over SPI */
+ #define CONFIG_CROS_EC_I2C            /* Support CROS_EC over I2C */
+ #define CONFIG_CROS_EC_KEYB   /* CROS_EC keyboard input */
+ #define CONFIG_CMD_CROS_EC
+ #define CONFIG_KEYBOARD
+ /* Console configuration */
+ #define CONFIG_CONSOLE_MUX
+ #define CONFIG_SYS_CONSOLE_IS_IN_ENV
+ #define EXYNOS_DEVICE_SETTINGS \
+               "stdin=serial,cros-ec-keyb\0" \
+               "stdout=serial,lcd\0" \
+               "stderr=serial,lcd\0"
+ #define CONFIG_EXTRA_ENV_SETTINGS \
+       EXYNOS_DEVICE_SETTINGS
+ /* SD/MMC configuration */
+ #define CONFIG_GENERIC_MMC
+ #define CONFIG_MMC
+ #define CONFIG_SDHCI
+ #define CONFIG_S5P_SDHCI
+ #define CONFIG_DWMMC
+ #define CONFIG_EXYNOS_DWMMC
+ #define CONFIG_SUPPORT_EMMC_BOOT
++#define CONFIG_BOUNCE_BUFFER
+ #define CONFIG_BOARD_EARLY_INIT_F
+ #define CONFIG_SKIP_LOWLEVEL_INIT
+ /* PWM */
+ #define CONFIG_PWM
+ /* allow to overwrite serial and ethaddr */
+ #define CONFIG_ENV_OVERWRITE
+ /* Command definition*/
+ #include <config_cmd_default.h>
+ #define CONFIG_CMD_PING
+ #define CONFIG_CMD_ELF
+ #define CONFIG_CMD_MMC
+ #define CONFIG_CMD_EXT2
+ #define CONFIG_CMD_FAT
+ #define CONFIG_CMD_NET
+ #define CONFIG_CMD_HASH
+ #define CONFIG_BOOTDELAY              3
+ #define CONFIG_ZERO_BOOTDELAY_CHECK
+ /* Thermal Management Unit */
+ #define CONFIG_EXYNOS_TMU
+ #define CONFIG_CMD_DTT
+ #define CONFIG_TMU_CMD_DTT
+ /* TPM */
+ #define CONFIG_TPM
+ #define CONFIG_CMD_TPM
+ #define CONFIG_TPM_TIS_I2C
+ #define CONFIG_TPM_TIS_I2C_BUS_NUMBER 3
+ #define CONFIG_TPM_TIS_I2C_SLAVE_ADDR 0x20
+ /* MMC SPL */
+ #define CONFIG_SPL
+ #define COPY_BL2_FNPTR_ADDR   0x02020030
+ #define CONFIG_SPL_LIBCOMMON_SUPPORT
+ #define CONFIG_SPL_GPIO_SUPPORT
+ /* specific .lds file */
+ #define CONFIG_SPL_LDSCRIPT   "board/samsung/common/exynos-uboot-spl.lds"
+ #define CONFIG_SPL_MAX_FOOTPRINT      (14 * 1024)
+ /* Miscellaneous configurable options */
+ #define CONFIG_SYS_LONGHELP           /* undef to save memory */
+ #define CONFIG_SYS_HUSH_PARSER                /* use "hush" command parser    */
+ #define CONFIG_SYS_CBSIZE             256     /* Console I/O Buffer Size */
+ #define CONFIG_SYS_PBSIZE             384     /* Print Buffer Size */
+ #define CONFIG_SYS_MAXARGS            16      /* max number of command args */
+ #define CONFIG_DEFAULT_CONSOLE                "console=ttySAC1,115200n8\0"
+ /* Boot Argument Buffer Size */
+ #define CONFIG_SYS_BARGSIZE           CONFIG_SYS_CBSIZE
+ /* memtest works on */
+ #define CONFIG_SYS_MEMTEST_START      CONFIG_SYS_SDRAM_BASE
+ #define CONFIG_SYS_MEMTEST_END                (CONFIG_SYS_SDRAM_BASE + 0x5E00000)
+ #define CONFIG_SYS_LOAD_ADDR          (CONFIG_SYS_SDRAM_BASE + 0x3E00000)
+ #define CONFIG_RD_LVL
+ #define CONFIG_NR_DRAM_BANKS  8
+ #define SDRAM_BANK_SIZE               (256UL << 20UL) /* 256 MB */
+ #define PHYS_SDRAM_1          CONFIG_SYS_SDRAM_BASE
+ #define PHYS_SDRAM_1_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_2          (CONFIG_SYS_SDRAM_BASE + SDRAM_BANK_SIZE)
+ #define PHYS_SDRAM_2_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_3          (CONFIG_SYS_SDRAM_BASE + (2 * SDRAM_BANK_SIZE))
+ #define PHYS_SDRAM_3_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_4          (CONFIG_SYS_SDRAM_BASE + (3 * SDRAM_BANK_SIZE))
+ #define PHYS_SDRAM_4_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_5          (CONFIG_SYS_SDRAM_BASE + (4 * SDRAM_BANK_SIZE))
+ #define PHYS_SDRAM_5_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_6          (CONFIG_SYS_SDRAM_BASE + (5 * SDRAM_BANK_SIZE))
+ #define PHYS_SDRAM_6_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_7          (CONFIG_SYS_SDRAM_BASE + (6 * SDRAM_BANK_SIZE))
+ #define PHYS_SDRAM_7_SIZE     SDRAM_BANK_SIZE
+ #define PHYS_SDRAM_8          (CONFIG_SYS_SDRAM_BASE + (7 * SDRAM_BANK_SIZE))
+ #define PHYS_SDRAM_8_SIZE     SDRAM_BANK_SIZE
+ #define CONFIG_SYS_MONITOR_BASE       0x00000000
+ /* FLASH and environment organization */
+ #define CONFIG_SYS_NO_FLASH
+ #undef CONFIG_CMD_IMLS
+ #define CONFIG_SYS_MMC_ENV_DEV                0
+ #define CONFIG_SECURE_BL1_ONLY
+ /* Secure FW size configuration */
+ #ifdef CONFIG_SECURE_BL1_ONLY
+ #define CONFIG_SEC_FW_SIZE (8 << 10) /* 8KB */
+ #else
+ #define CONFIG_SEC_FW_SIZE 0
+ #endif
+ /* Configuration of BL1, BL2, ENV Blocks on mmc */
+ #define CONFIG_RES_BLOCK_SIZE (512)
+ #define CONFIG_BL1_SIZE       (16 << 10) /*16 K reserved for BL1*/
+ #define CONFIG_BL2_SIZE       (512UL << 10UL) /* 512 KB */
+ #define CONFIG_ENV_SIZE       (16 << 10) /* 16 KB */
+ #define CONFIG_BL1_OFFSET     (CONFIG_RES_BLOCK_SIZE + CONFIG_SEC_FW_SIZE)
+ #define CONFIG_BL2_OFFSET     (CONFIG_BL1_OFFSET + CONFIG_BL1_SIZE)
+ #define CONFIG_ENV_OFFSET     (CONFIG_BL2_OFFSET + CONFIG_BL2_SIZE)
+ /* U-boot copy size from boot Media to DRAM.*/
+ #define BL2_START_OFFSET      (CONFIG_BL2_OFFSET/512)
+ #define BL2_SIZE_BLOC_COUNT   (CONFIG_BL2_SIZE/512)
+ #define CONFIG_SPI_BOOTING
+ #define EXYNOS_COPY_SPI_FNPTR_ADDR    0x02020058
+ #define SPI_FLASH_UBOOT_POS   (CONFIG_SEC_FW_SIZE + CONFIG_BL1_SIZE)
+ #define CONFIG_DOS_PARTITION
+ #define CONFIG_EFI_PARTITION
+ #define CONFIG_CMD_PART
+ #define CONFIG_PARTITION_UUIDS
+ /* I2C */
+ #define CONFIG_SYS_I2C_INIT_BOARD
+ #define CONFIG_SYS_I2C
+ #define CONFIG_CMD_I2C
+ #define CONFIG_SYS_I2C_S3C24X0_SPEED  100000          /* 100 Kbps */
+ #define CONFIG_SYS_I2C_S3C24X0
+ #define CONFIG_I2C_MULTI_BUS
+ #define CONFIG_SYS_I2C_S3C24X0_SLAVE    0x0
+ #define CONFIG_I2C_EDID
+ /* SPI */
+ #define CONFIG_ENV_IS_IN_SPI_FLASH
+ #define CONFIG_SPI_FLASH
+ #define CONFIG_ENV_SPI_BASE   0x12D30000
+ #ifdef CONFIG_SPI_FLASH
+ #define CONFIG_EXYNOS_SPI
+ #define CONFIG_CMD_SF
+ #define CONFIG_CMD_SPI
+ #define CONFIG_SPI_FLASH_WINBOND
+ #define CONFIG_SPI_FLASH_GIGADEVICE
+ #define CONFIG_SF_DEFAULT_MODE                SPI_MODE_0
+ #define CONFIG_SF_DEFAULT_SPEED               50000000
+ #define EXYNOS5_SPI_NUM_CONTROLLERS   5
+ #define CONFIG_OF_SPI
+ #endif
+ #ifdef CONFIG_ENV_IS_IN_SPI_FLASH
+ #define CONFIG_ENV_SPI_MODE   SPI_MODE_0
+ #define CONFIG_ENV_SECT_SIZE  CONFIG_ENV_SIZE
+ #define CONFIG_ENV_SPI_BUS    1
+ #define CONFIG_ENV_SPI_MAX_HZ 50000000
+ #endif
+ /* PMIC */
+ #define CONFIG_POWER
+ #define CONFIG_POWER_I2C
+ /* Ethernet Controllor Driver */
+ #ifdef CONFIG_CMD_NET
+ #define CONFIG_SMC911X
+ #define CONFIG_SMC911X_BASE           0x5000000
+ #define CONFIG_SMC911X_16_BIT
+ #define CONFIG_ENV_SROM_BANK          1
+ #endif /*CONFIG_CMD_NET*/
+ /* Enable PXE Support */
+ #ifdef CONFIG_CMD_NET
+ #define CONFIG_CMD_PXE
+ #define CONFIG_MENU
+ #endif
+ /* Enable devicetree support */
+ #define CONFIG_OF_LIBFDT
+ /* SHA hashing */
+ #define CONFIG_CMD_HASH
+ #define CONFIG_HASH_VERIFY
+ #define CONFIG_SHA1
+ #define CONFIG_SHA256
+ /* Enable Time Command */
+ #define CONFIG_CMD_TIME
+ #define CONFIG_CMD_BOOTZ
+ #endif        /* __CONFIG_H */
diff --combined include/configs/lp8x4x.h
index 379c786bc420baaba19b8aed578620ec266736ec,8e58fea3b378980637f7ea37324cfcc31db9550b..a26937265a55a44ab81f2c2305704c4550858280
  #define       CONFIG_SYS_MALLOC_LEN           (128*1024)
  #define       CONFIG_ARCH_CPU_INIT
  #define       CONFIG_BOOTCOMMAND              \
-       "bootm 80000;"
+       "bootm 80000 - 240000;"
  
  #define       CONFIG_BOOTARGS                 \
-       "console=ttySA0,115200 mem=128M root=/dev/mmcblk0p1 rw" \
-       "init=/sbin/init rootfstype=ext3"
+       "console=ttyS0,115200 mem=128M root=/dev/mmcblk0p1 rw" \
+       "init=/sbin/init rootfstype=ext4 rootwait"
  
  #define       CONFIG_TIMESTAMP
  #define       CONFIG_BOOTDELAY                2       /* Autoboot delay */
  #define       CONFIG_CMDLINE_TAG
  #define       CONFIG_SETUP_MEMORY_TAGS
  #define       CONFIG_LZMA                     /* LZMA compression support */
- #undef        CONFIG_OF_LIBFDT
+ #define       CONFIG_OF_LIBFDT
  
  /*
   * Serial Console Configuration
@@@ -93,6 -93,7 +93,6 @@@
   */
  #ifdef        CONFIG_CMD_KGDB
  #define       CONFIG_KGDB_BAUDRATE            230400  /* kgdb serial port speed */
 -#define       CONFIG_KGDB_SER_INDEX           2       /* which serial port to use */
  #endif
  
  /*
   */
  #define       CONFIG_SYS_HUSH_PARSER          1
  
- #undef        CONFIG_SYS_LONGHELP
+ #define       CONFIG_SYS_LONGHELP
  #ifdef        CONFIG_SYS_HUSH_PARSER
  #define       CONFIG_SYS_PROMPT               "$ "
  #else
  #define       CONFIG_ENV_SECT_SIZE            0x40000
  
  #define       PHYS_FLASH_1                    0x00000000      /* Flash Bank #1 */
- #define       PHYS_FLASH_2                    0x02000000      /* Flash Bank #2 */
+ #define       PHYS_FLASH_2                    0x04000000      /* Flash Bank #2 */
  
  #define       CONFIG_SYS_FLASH_CFI
  #define       CONFIG_FLASH_CFI_DRIVER         1
  #define       CONFIG_SYS_GAFR1_L_VAL  0x999a955a
  #define       CONFIG_SYS_GAFR1_U_VAL  0xaaa5a00a
  #define       CONFIG_SYS_GAFR2_L_VAL  0xaaaaaaaa
- #define       CONFIG_SYS_GAFR2_U_VAL  0x55f0a402
+ #define       CONFIG_SYS_GAFR2_U_VAL  0x55f9a402
  #define       CONFIG_SYS_GAFR3_L_VAL  0x540a950c
  #define       CONFIG_SYS_GAFR3_U_VAL  0x00001599
  
   */
  #ifdef        CONFIG_CMD_USB
  #define       CONFIG_USB_OHCI_NEW
- #define       CONFIG_SYS_USB_OHCI_CPU_INIT
  #define       CONFIG_SYS_USB_OHCI_BOARD_INIT
  #define       CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS      2
  #define       CONFIG_SYS_USB_OHCI_REGS_BASE   0x4C000000
diff --combined include/configs/palmld.h
index ae4dd7549936c9e670b02eacb137e2f2024f582c,a5b6e3aa95db5bb4c24ad959afc90949901da628..2a9fd22dd6b901b6a09955045b6438ae5f654117
@@@ -93,6 -93,7 +93,6 @@@
   */
  #ifdef        CONFIG_CMD_KGDB
  #define       CONFIG_KGDB_BAUDRATE            230400  /* kgdb serial port speed */
 -#define       CONFIG_KGDB_SER_INDEX           2       /* which serial port to use */
  #endif
  
  /*
   * Clock Configuration
   */
  #undef        CONFIG_SYS_CLKS_IN_HZ
- #define       CONFIG_SYS_HZ                   3250000         /* Timer @ 3250000 Hz */
+ #define       CONFIG_SYS_HZ                   1000
  #define       CONFIG_SYS_CPUSPEED             0x210           /* 416MHz ; N=2,L=16 */
  
  /*
  
  #define       CONFIG_SYS_FLASH_USE_BUFFER_WRITE       1
  
- #define       CONFIG_SYS_FLASH_ERASE_TOUT     (25*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_WRITE_TOUT     (25*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_LOCK_TOUT      (25*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_UNLOCK_TOUT    (25*CONFIG_SYS_HZ)
+ #define       CONFIG_SYS_FLASH_ERASE_TOUT     240000
+ #define       CONFIG_SYS_FLASH_WRITE_TOUT     240000
+ #define       CONFIG_SYS_FLASH_LOCK_TOUT      240000
+ #define       CONFIG_SYS_FLASH_UNLOCK_TOUT    240000
  #define       CONFIG_SYS_FLASH_PROTECTION
  
  #define       CONFIG_ENV_IS_IN_FLASH          1
diff --combined include/configs/palmtc.h
index 1f94f0c0d60985ff8873a7bf4cb501f9e535291f,7303e1c31f0a837c746e58b8ec8683d8f5c4599a..de254076f23c3c82c54c1929a412a6d73e0802c4
@@@ -95,6 -95,7 +95,6 @@@
   */
  #ifdef        CONFIG_CMD_KGDB
  #define       CONFIG_KGDB_BAUDRATE            230400  /* kgdb serial port speed */
 -#define       CONFIG_KGDB_SER_INDEX           2       /* which serial port to use */
  #endif
  
  /*
   * Clock Configuration
   */
  #undef        CONFIG_SYS_CLKS_IN_HZ
- #define       CONFIG_SYS_HZ                   3686400         /* Timer @ 3686400 Hz */
+ #define       CONFIG_SYS_HZ                   1000
  #define       CONFIG_SYS_CPUSPEED             0x161           /* 400MHz;L=1 M=3 T=1 */
  
  /*
  
  #define       CONFIG_SYS_FLASH_USE_BUFFER_WRITE       1
  
- #define       CONFIG_SYS_FLASH_ERASE_TOUT     (2*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_WRITE_TOUT     (2*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_LOCK_TOUT      (2*CONFIG_SYS_HZ)
- #define       CONFIG_SYS_FLASH_UNLOCK_TOUT    (2*CONFIG_SYS_HZ)
+ #define       CONFIG_SYS_FLASH_ERASE_TOUT     240000
+ #define       CONFIG_SYS_FLASH_WRITE_TOUT     240000
+ #define       CONFIG_SYS_FLASH_LOCK_TOUT      240000
+ #define       CONFIG_SYS_FLASH_UNLOCK_TOUT    240000
  #define       CONFIG_SYS_FLASH_PROTECTION
  
  #define       CONFIG_ENV_IS_IN_FLASH          1
index f9ccca75d611710941072e434984a5f1d24fcac3,904f3b0fb15ea425f9d4dd733cc61ac2039ac099..e38fa89fdac504972f3e245d42ad1a31cd3f1ae1
@@@ -117,6 -117,7 +117,6 @@@ unsigned char zipitz2_spi_read(void)
   */
  #ifdef        CONFIG_CMD_KGDB
  #define       CONFIG_KGDB_BAUDRATE            230400          /* speed to run kgdb serial port */
 -#define       CONFIG_KGDB_SER_INDEX           2               /* which serial port to use */
  #endif
  
  /*
   * Clock Configuration
   */
  #undef        CONFIG_SYS_CLKS_IN_HZ
- #define       CONFIG_SYS_HZ                   3250000         /* Timer @ 3250000 Hz */
+ #define       CONFIG_SYS_HZ                   1000
  #define CONFIG_SYS_CPUSPEED           0x190           /* standard setting for 312MHz; L=16, N=1.5, A=0, SDCLK!=SystemBus */
  
  /*
  
  #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE     1
  
- #define CONFIG_SYS_FLASH_ERASE_TOUT   (2*CONFIG_SYS_HZ)
- #define CONFIG_SYS_FLASH_WRITE_TOUT   (2*CONFIG_SYS_HZ)
- #define CONFIG_SYS_FLASH_LOCK_TOUT    (2*CONFIG_SYS_HZ)
- #define CONFIG_SYS_FLASH_UNLOCK_TOUT  (2*CONFIG_SYS_HZ)
+ #define CONFIG_SYS_FLASH_ERASE_TOUT   240000
+ #define CONFIG_SYS_FLASH_WRITE_TOUT   240000
+ #define CONFIG_SYS_FLASH_LOCK_TOUT    240000
+ #define CONFIG_SYS_FLASH_UNLOCK_TOUT  240000
  #define CONFIG_SYS_FLASH_PROTECTION
  
  /*
diff --combined spl/Makefile
index 1e88d7469f40e12fabaffd1166ef8d021f334140,0caa982470bc5e6d5c28d9c08afdaec5d7c7a813..003956ebb34b980ffab28562603fe953c5c9beff
@@@ -37,15 -37,22 +37,15 @@@ endi
  HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(SRCTREE)/board/$(VENDOR)/common/Makefile),y,n)
  
  ifdef CONFIG_SPL_START_S_PATH
 -START_PATH := $(subst ",,$(CONFIG_SPL_START_S_PATH))
 +START_PATH := $(CONFIG_SPL_START_S_PATH:"%"=%)
  else
  START_PATH := $(CPUDIR)
  endif
  
 -START := $(START_PATH)/start.o
 -ifeq ($(CPU),x86)
 -START += $(START_PATH)/start16.o
 -START += $(START_PATH)/resetvec.o
 -endif
 -ifeq ($(CPU),ppc4xx)
 -START += $(START_PATH)/resetvec.o
 -endif
 -ifeq ($(CPU),mpc85xx)
 -START += $(START_PATH)/resetvec.o
 -endif
 +head-y := $(START_PATH)/start.o
 +head-$(CONFIG_X86) += $(START_PATH)/start16.o $(START_PATH)/resetvec.o
 +head-$(CONFIG_4xx) += $(START_PATH)/resetvec.o
 +head-$(CONFIG_MPC85xx) += $(START_PATH)/resetvec.o
  
  LIBS-y += arch/$(ARCH)/lib/
  
@@@ -71,7 -78,7 +71,7 @@@ LIBS-y += fs
  LIBS-$(CONFIG_SPL_LIBGENERIC_SUPPORT) += lib/
  LIBS-$(CONFIG_SPL_POWER_SUPPORT) += drivers/power/ \
        drivers/power/pmic/
 -LIBS-$(CONFIG_SPL_NAND_SUPPORT) += drivers/mtd/nand/
 +LIBS-$(if $(CONFIG_CMD_NAND),$(CONFIG_SPL_NAND_SUPPORT)) += drivers/mtd/nand/
  LIBS-$(CONFIG_SPL_ONENAND_SUPPORT) += drivers/mtd/onenand/
  LIBS-$(CONFIG_SPL_DMA_SUPPORT) += drivers/dma/
  LIBS-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/
@@@ -83,13 -90,17 +83,13 @@@ LIBS-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += 
  LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/usb/gadget/
  LIBS-$(CONFIG_SPL_WATCHDOG_SUPPORT) += drivers/watchdog/
  
 -ifneq (,$(CONFIG_MX23)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35))
 +ifneq (,$(CONFIG_MX23)$(CONFIG_MX35)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35))
  LIBS-y += arch/$(ARCH)/imx-common/
  endif
  
  LIBS-$(CONFIG_ARM) += arch/arm/cpu/
  LIBS-$(CONFIG_PPC) += arch/powerpc/cpu/
  
 -ifneq ($(CONFIG_MX23)$(CONFIG_MX35),)
 -LIBS-y += arch/$(ARCH)/imx-common/
 -endif
 -
  LIBS-y := $(patsubst %/, %/built-in.o, $(LIBS-y))
  
  # Add GCC lib
@@@ -98,7 -109,7 +98,7 @@@ PLATFORM_LIBGCC = $(SPLTREE)/arch/$(ARC
  PLATFORM_LIBS := $(filter-out %/libgcc.o, $(filter-out -lgcc, $(PLATFORM_LIBS))) $(PLATFORM_LIBGCC)
  endif
  
 -START := $(addprefix $(SPLTREE)/,$(START))
 +START := $(addprefix $(SPLTREE)/,$(head-y))
  LIBS := $(addprefix $(SPLTREE)/,$(sort $(LIBS-y)))
  
  __START := $(subst $(obj),,$(START))
@@@ -107,7 -118,7 +107,7 @@@ __LIBS := $(subst $(obj),,$(LIBS)
  # Linker Script
  ifdef CONFIG_SPL_LDSCRIPT
  # need to strip off double quotes
 -LDSCRIPT := $(addprefix $(SRCTREE)/,$(subst ",,$(CONFIG_SPL_LDSCRIPT)))
 +LDSCRIPT := $(addprefix $(SRCTREE)/,$(CONFIG_SPL_LDSCRIPT:"%"=%))
  endif
  
  ifeq ($(wildcard $(LDSCRIPT)),)
@@@ -155,8 -166,13 +155,13 @@@ endi
  all:  $(ALL-y)
  
  ifdef CONFIG_SAMSUNG
+ ifdef CONFIG_VAR_SIZE_SPL
+ VAR_SIZE_PARAM = --vs
+ else
+ VAR_SIZE_PARAM =
+ endif
  $(obj)$(BOARD)-spl.bin: $(obj)u-boot-spl.bin
-       $(OBJTREE)/tools/mk$(BOARD)spl $< $@
+       $(OBJTREE)/tools/mk$(BOARD)spl $(VAR_SIZE_PARAM) $< $@
  endif
  
  $(obj)$(SPL_BIN).bin: $(obj)$(SPL_BIN)
diff --combined tools/Makefile
index e1264fd38b2f9063bcdf012d43ad6b8e4b24225c,4a7e7e572888ecef8be9f0bf453758b4bb86b77e..328cea319ed7fffb32c047de17b2e6d66732ff81
@@@ -50,16 -50,17 +50,18 @@@ BIN_FILES-$(CONFIG_BUILD_ENVCRC) += env
  BIN_FILES-$(CONFIG_CMD_NET) += gen_eth_addr$(SFX)
  BIN_FILES-$(CONFIG_CMD_LOADS) += img2srec$(SFX)
  BIN_FILES-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes$(SFX)
 +BIN_FILES-y += dumpimage$(SFX)
  BIN_FILES-y += mkenvimage$(SFX)
  BIN_FILES-y += mkimage$(SFX)
  BIN_FILES-$(CONFIG_EXYNOS5250) += mk$(BOARD)spl$(SFX)
+ BIN_FILES-$(CONFIG_EXYNOS5420) += mk$(BOARD)spl$(SFX)
  BIN_FILES-$(CONFIG_MX23) += mxsboot$(SFX)
  BIN_FILES-$(CONFIG_MX28) += mxsboot$(SFX)
  BIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX)
  BIN_FILES-$(CONFIG_SHA1_CHECK_UB_IMG) += ubsha1$(SFX)
  BIN_FILES-$(CONFIG_KIRKWOOD) += kwboot$(SFX)
  BIN_FILES-y += proftool(SFX)
+ BIN_FILES-$(CONFIG_STATIC_RELA) += relocate-rela$(SFX)
  
  # Source files which exist outside the tools directory
  EXT_OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += common/env_embedded.o
@@@ -73,12 -74,10 +75,12 @@@ EXT_OBJ_FILES-y += lib/sha1.
  # Source files located in the tools directory
  NOPED_OBJ_FILES-y += aisimage.o
  NOPED_OBJ_FILES-y += default_image.o
 +NOPED_OBJ_FILES-y += dumpimage.o
  NOPED_OBJ_FILES-y += fit_image.o
  NOPED_OBJ_FILES-y += image-host.o
  NOPED_OBJ_FILES-y += imximage.o
  NOPED_OBJ_FILES-y += kwbimage.o
 +NOPED_OBJ_FILES-y += imagetool.o
  NOPED_OBJ_FILES-y += mkenvimage.o
  NOPED_OBJ_FILES-y += mkimage.o
  NOPED_OBJ_FILES-y += mxsimage.o
@@@ -87,10 -86,11 +89,11 @@@ NOPED_OBJ_FILES-y += os_support.
  NOPED_OBJ_FILES-y += pblimage.o
  NOPED_OBJ_FILES-y += proftool.o
  NOPED_OBJ_FILES-y += ublimage.o
+ NOPED_OBJ_FILES-y += relocate-rela.o
  OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc.o
  OBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o
  OBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o
- OBJ_FILES-$(CONFIG_EXYNOS5250) += mkexynosspl.o
+ OBJ_FILES-$(CONFIG_EXYNOS_SPL) += mkexynosspl.o
  OBJ_FILES-$(CONFIG_KIRKWOOD) += kwboot.o
  OBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o
  OBJ_FILES-$(CONFIG_MX23) += mxsboot.o
@@@ -202,30 -202,6 +205,30 @@@ $(obj)xway-swap-bytes$(SFX):     $(obj)xway
        $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
        $(HOSTSTRIP) $@
  
 +$(obj)dumpimage$(SFX):        $(obj)aisimage.o \
 +                      $(FIT_SIG_OBJS) \
 +                      $(obj)crc32.o \
 +                      $(obj)default_image.o \
 +                      $(obj)fit_image.o \
 +                      $(obj)image-fit.o \
 +                      $(obj)image.o \
 +                      $(obj)image-host.o \
 +                      $(obj)imagetool.o \
 +                      $(obj)imximage.o \
 +                      $(obj)kwbimage.o \
 +                      $(obj)dumpimage.o \
 +                      $(obj)md5.o \
 +                      $(obj)mxsimage.o \
 +                      $(obj)omapimage.o \
 +                      $(obj)os_support.o \
 +                      $(obj)pblimage.o \
 +                      $(obj)sha1.o \
 +                      $(obj)ublimage.o \
 +                      $(LIBFDT_OBJS) \
 +                      $(RSA_OBJS)
 +      $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ $(HOSTLIBS)
 +      $(HOSTSTRIP) $@
 +
  $(obj)mkenvimage$(SFX):       $(obj)crc32.o $(obj)mkenvimage.o \
        $(obj)os_support.o
        $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
@@@ -239,7 -215,6 +242,7 @@@ $(obj)mkimage$(SFX):       $(obj)aisimage.o 
                        $(obj)image-fit.o \
                        $(obj)image-host.o \
                        $(obj)image.o \
 +                      $(obj)imagetool.o \
                        $(obj)imximage.o \
                        $(obj)kwbimage.o \
                        $(obj)md5.o \
@@@ -276,6 -251,10 +279,10 @@@ $(obj)ubsha1$(SFX):      $(obj)os_support.o 
  
  $(obj)kwboot$(SFX): $(obj)kwboot.o
        $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
+       $(HOSTSTRIP) $@
+ $(obj)relocate-rela$(SFX): $(obj)relocate-rela.o
+       $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
        $(HOSTSTRIP) $@
  
  # Some of the tool objects need to be accessed from outside the tools directory
diff --combined tools/mxsimage.c
index b214050debc6f0a5513fec83e6b18ea4c178f08a,7bd9deef5f0cca908ea775e9e741647faf90d07f..045b35a39b380c3e5cc5c754b894d035ed541080
@@@ -17,7 -17,7 +17,7 @@@
  
  #include <openssl/evp.h>
  
 -#include "mkimage.h"
 +#include "imagetool.h"
  #include "mxsimage.h"
  #include <image.h>
  
@@@ -502,6 -502,7 +502,7 @@@ static int sb_token_to_long(char *tok, 
  
        tok += 2;
  
+       errno = 0;
        id = strtoul(tok, &endptr, 16);
        if ((errno == ERANGE && id == ULONG_MAX) || (errno != 0 && id == 0)) {
                fprintf(stderr, "ERR: Value can't be decoded!\n");
@@@ -2148,11 -2149,11 +2149,11 @@@ static int mxsimage_check_image_types(u
  }
  
  static void mxsimage_set_header(void *ptr, struct stat *sbuf, int ifd,
 -                              struct mkimage_params *params)
 +                              struct image_tool_params *params)
  {
  }
  
 -int mxsimage_check_params(struct mkimage_params *params)
 +int mxsimage_check_params(struct image_tool_params *params)
  {
        if (!params)
                return -1;
@@@ -2193,7 -2194,7 +2194,7 @@@ static int mxsimage_verify_print_header
  
  char *imagefile;
  static int mxsimage_verify_header(unsigned char *ptr, int image_size,
 -                      struct mkimage_params *params)
 +                      struct image_tool_params *params)
  {
        struct sb_boot_image_header *hdr;
  
@@@ -2291,7 -2292,7 +2292,7 @@@ static int sb_build_image(struct sb_ima
        return 0;
  }
  
 -static int mxsimage_generate(struct mkimage_params *params,
 +static int mxsimage_generate(struct image_tool_params *params,
        struct image_type_params *tparams)
  {
        int ret;
@@@ -2337,7 -2338,7 +2338,7 @@@ static struct image_type_params mxsimag
  
  void init_mxs_image_type(void)
  {
 -      mkimage_register(&mxsimage_params);
 +      register_image_type(&mxsimage_params);
  }
  
  #else