]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'u-boot/master' into 'u-boot-arm/master'
authorAlbert ARIBAUD <albert.u.boot@aribaud.net>
Tue, 8 Apr 2014 07:25:08 +0000 (09:25 +0200)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Tue, 8 Apr 2014 07:25:08 +0000 (09:25 +0200)
Conflicts:
arch/arm/cpu/arm926ejs/mxs/Makefile
include/configs/trats.h
include/configs/trats2.h
include/mmc.h

1  2 
Makefile
README
arch/arm/cpu/arm926ejs/mxs/Makefile
arch/arm/imx-common/Makefile
drivers/dfu/dfu.c
include/configs/am335x_evm.h
include/configs/trats.h
include/configs/trats2.h
include/mmc.h
include/sdhci.h

diff --combined Makefile
index 46cb6f1afa4db23df0f3735d1ace12360b7cf4d6,25cbc95c2d48b3117622b1154e4ab2a0dc39a479..b807e5cd5c80351e6f5704904a29cdd49192f20a
+++ b/Makefile
@@@ -8,7 -8,7 +8,7 @@@
  VERSION = 2014
  PATCHLEVEL = 04
  SUBLEVEL =
- EXTRAVERSION = -rc2
+ EXTRAVERSION = -rc3
  NAME =
  
  # *DOCUMENTATION*
@@@ -124,7 -124,8 +124,8 @@@ ifneq ($(KBUILD_OUTPUT),
  # Invoke a second make in the output directory, passing relevant variables
  # check that the output directory actually exists
  saved-output := $(KBUILD_OUTPUT)
- KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
+ KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
+                                                               && /bin/pwd)
  $(if $(KBUILD_OUTPUT),, \
       $(error output directory "$(saved-output)" does not exist))
  
@@@ -408,7 -409,7 +409,7 @@@ timestamp_h := include/generated/timest
  
  no-dot-config-targets := clean clobber mrproper distclean \
                         help %docs check% coccicheck \
-                        ubootversion backup
+                        ubootversion backup tools-only
  
  config-targets := 0
  mixed-targets  := 0
@@@ -728,7 -729,7 +729,7 @@@ endi
  quiet_cmd_objcopy = OBJCOPY $@
  cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
  
- quiet_cmd_mkimage = UIMAGE  $@
+ quiet_cmd_mkimage = MKIMAGE $@
  cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
        $(if $(KBUILD_VERBOSE:1=), >/dev/null)
  
@@@ -749,9 -750,6 +750,9 @@@ dtbs dts/dt.dtb: checkdtc u-boo
  u-boot-dtb.bin: u-boot.bin dts/dt.dtb FORCE
        $(call if_changed,cat)
  
 +%.imx: %.bin
 +      $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
 +
  quiet_cmd_copy = COPY    $@
        cmd_copy = cp $< $@
  
@@@ -805,6 -803,9 +806,6 @@@ MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)
  u-boot.img u-boot.kwb u-boot.pbl: u-boot.bin FORCE
        $(call if_changed,mkimage)
  
 -u-boot.imx: u-boot.bin
 -      $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
 -
  u-boot.sha1:  u-boot.bin
                tools/ubsha1 u-boot.bin
  
@@@ -848,8 -849,6 +849,8 @@@ OBJCOPYFLAGS_u-boot.ais = -I binary -O 
  u-boot.ais: spl/u-boot-spl.ais u-boot.img FORCE
        $(call if_changed,pad_cat)
  
 +u-boot-signed.sb: u-boot.bin spl/u-boot-spl.bin
 +      $(Q)$(MAKE) $(build)=arch/arm/cpu/arm926ejs/mxs u-boot-signed.sb
  u-boot.sb: u-boot.bin spl/u-boot-spl.bin
        $(Q)$(MAKE) $(build)=arch/arm/cpu/arm926ejs/mxs u-boot.sb
  
@@@ -1129,6 -1128,9 +1130,9 @@@ checkarmreloc: u-boo
  env: scripts_basic
        $(Q)$(MAKE) $(build)=tools/$@
  
+ tools-only: scripts_basic $(version_h) $(timestamp_h)
+       $(Q)$(MAKE) $(build)=tools
  tools-all: export HOST_TOOLS_ALL=y
  tools-all: env tools ;
  
@@@ -1174,7 -1176,7 +1178,7 @@@ MRPROPER_FILES += .config .config.old 
  clean: rm-dirs  := $(CLEAN_DIRS)
  clean: rm-files := $(CLEAN_FILES)
  
- clean-dirs    := $(foreach f,$(u-boot-alldirs),$(if $(wildcard $f/Makefile),$f))
+ clean-dirs    := $(foreach f,$(u-boot-alldirs),$(if $(wildcard $(srctree)/$f/Makefile),$f))
  
  clean-dirs      := $(addprefix _clean_, $(clean-dirs) doc/DocBook)
  
diff --combined README
index da85c8995c5fd18a4b48f55301a9fe6018c9577e,025386f52ce136a5fa04deaf818de3f99ddd4d7f..39e05d333c672b5183908a4016ad223641ca023a
--- 1/README
--- 2/README
+++ b/README
@@@ -566,8 -566,6 +566,8 @@@ The following options need to be config
                CONFIG_ARM_ERRATA_742230
                CONFIG_ARM_ERRATA_743622
                CONFIG_ARM_ERRATA_751472
 +              CONFIG_ARM_ERRATA_794072
 +              CONFIG_ARM_ERRATA_761320
  
                If set, the workarounds for these ARM errata are applied early
                during U-Boot startup. Note that these options force the
                CONFIG_CMD_CDP          * Cisco Discover Protocol support
                CONFIG_CMD_MFSL         * Microblaze FSL support
                CONFIG_CMD_XIMG           Load part of Multi Image
+               CONFIG_CMD_UUID         * Generate random UUID or GUID string
  
                EXAMPLE: If you want all functions except of network
                support you can write:
                this to the maximum filesize (in bytes) for the buffer.
                Default is 4 MiB if undefined.
  
+               DFU_DEFAULT_POLL_TIMEOUT
+               Poll timeout [ms], is the timeout a device can send to the
+               host. The host must wait for this timeout before sending
+               a subsequent DFU_GET_STATUS request to the device.
+               DFU_MANIFEST_POLL_TIMEOUT
+               Poll timeout [ms], which the device sends to the host when
+               entering dfuMANIFEST state. Host waits this timeout, before
+               sending again an USB request to the device.
  - Journaling Flash filesystem support:
                CONFIG_JFFS2_NAND, CONFIG_JFFS2_NAND_OFF, CONFIG_JFFS2_NAND_SIZE,
                CONFIG_JFFS2_NAND_DEV
index 20e1e4083c5b20e2826a1ddc082ade99f42238d8,209c73cd2b2388301f78792b92c9afec7ba53dd5..6c594945582bbdd3a6a1538f7b2492f3d6a857a2
@@@ -17,69 -17,9 +17,69 @@@ endi
  MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage.mx23.cfg
  MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage.mx28.cfg
  
- quiet_cmd_mkimage_mxs = UIMAGE  $@
 +# Generate HAB-capable IVT
 +#
 +# Note on computing the post-IVT size field value for the U-Boot binary.
 +# The value is the result of adding the following:
 +#  -> The size of U-Boot binary aligned to 64B (u-boot.bin)
 +#  -> The size of IVT block aligned to 64B (u-boot.ivt)
 +#  -> The size of U-Boot signature (u-boot.sig), 3904 B
 +#  -> The 64B hole in front of U-Boot binary for 'struct mxs_spl_data' passing
 +#
 +quiet_cmd_mkivt_mxs = MXSIVT  $@
 +cmd_mkivt_mxs =                                                               \
 +      sz=`expr \`stat -c "%s" $^\` + 64 + 3904 + 128` ;               \
 +      echo -n "0x402000d1 $2 0 0 0 $3 $4 0 $$sz 0 0 0 0 0 0 0" |      \
 +      tr -s " " | xargs -d " " -i printf "%08x\n" "{}" | rev |        \
 +      sed "s/\(.\)\(.\)/\\\\\\\\x\2\1\n/g" | xargs -i printf "{}" >$@
 +
 +# Align binary to 64B
 +quiet_cmd_mkalign_mxs = MXSALGN $@
 +cmd_mkalign_mxs =                                                     \
 +      dd if=$^ of=$@ ibs=64 conv=sync 2>/dev/null &&                  \
 +      mv $@ $^
 +
 +# Assemble the CSF file
 +quiet_cmd_mkcsfreq_mxs = MXSCSFR $@
 +cmd_mkcsfreq_mxs =                                                    \
 +      ivt=$(word 1,$^) ;                                              \
 +      bin=$(word 2,$^) ;                                              \
 +      csf=$(word 3,$^) ;                                              \
 +      sed "s@VENDOR@$(VENDOR)@g;s@BOARD@$(BOARD)@g" "$$csf" |         \
 +              sed '/^\#\#Blocks/ d' > $@ ;                            \
 +      echo "  Blocks = $2 0x0 `stat -c '%s' $$bin` \"$$bin\" , \\" >> $@ ; \
 +      echo "           $3 0x0 0x40 \"$$ivt\"" >> $@
 +
 +# Sign files
 +quiet_cmd_mkcst_mxs = MXSCST  $@
 +cmd_mkcst_mxs = cst -o $@ < $^                                                \
 +      $(if $(KBUILD_VERBOSE:1=), >/dev/null)
 +
 +spl/u-boot-spl.ivt: spl/u-boot-spl.bin
 +      $(call if_changed,mkalign_mxs)
 +      $(call if_changed,mkivt_mxs,$(CONFIG_SPL_TEXT_BASE),\
 +              0x00008000,0x00008040)
 +
 +u-boot.ivt: u-boot.bin
 +      $(call if_changed,mkalign_mxs)
 +      $(call if_changed,mkivt_mxs,$(CONFIG_SYS_TEXT_BASE),\
 +              0x40001000,0x40001040)
 +
 +spl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf
 +      $(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000)
 +
 +u-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf
 +      $(call if_changed,mkcsfreq_mxs,$(CONFIG_SYS_TEXT_BASE),0x40001000)
 +
 +%.sig: %.csf
 +      $(call if_changed,mkcst_mxs)
 +
+ quiet_cmd_mkimage_mxs = MKIMAGE $@
  cmd_mkimage_mxs = $(objtree)/tools/mkimage -n $< -T mxsimage $@ \
        $(if $(KBUILD_VERBOSE:1=), >/dev/null)
  
  u-boot.sb: $(src)/$(MKIMAGE_TARGET-y) u-boot.bin spl/u-boot-spl.bin FORCE
        $(call if_changed,mkimage_mxs)
 +
 +u-boot-signed.sb: $(src)/mxsimage-signed.cfg u-boot.ivt u-boot.sig spl/u-boot-spl.ivt spl/u-boot-spl.sig FORCE
 +      $(call if_changed,mkimage_mxs)
index 025cfed84afad67e97594b975c525ffc76f9c63f,7334e05b5b4c21e4a0a9d5ff9db9323d46f39ead..b04dfbbcb9594153440ed090cc8f5d469f7a8b19
@@@ -32,7 -32,7 +32,7 @@@ $(IMX_CONFIG): %.cfgtmp: % FORC
        $(Q)mkdir -p $(dir $@)
        $(call if_changed_dep,cpp_cfg)
  
- quiet_cmd_mkimage = UIMAGE  $@
+ quiet_cmd_mkimage = MKIMAGE $@
  cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
        $(if $(KBUILD_VERBOSE:1=), >/dev/null)
  
@@@ -42,14 -42,6 +42,14 @@@ MKIMAGEFLAGS_u-boot.imx = -n $(filter-o
  u-boot.imx: u-boot.bin $(IMX_CONFIG) FORCE
        $(call if_changed,mkimage)
  
 +ifeq ($(CONFIG_OF_SEPARATE),y)
 +MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $< $(PHONY),$^) -T imximage \
 +      -e $(CONFIG_SYS_TEXT_BASE)
 +
 +u-boot-dtb.imx: u-boot-dtb.bin $(IMX_CONFIG) FORCE
 +      $(call if_changed,mkimage)
 +endif
 +
  MKIMAGEFLAGS_SPL = -n $(filter-out $< $(PHONY),$^) -T imximage \
        -e $(CONFIG_SPL_TEXT_BASE)
  
diff --combined drivers/dfu/dfu.c
index 56e69fd231551a2d8320dbc1036e7a15c24c37fa,f94c412aa982a65b1a528464bed1832b17defa59..8a09aafbf246b5059b6d6d7ec0d3bcc16448b66d
@@@ -19,7 -19,6 +19,7 @@@
  static bool dfu_reset_request;
  static LIST_HEAD(dfu_list);
  static int dfu_alt_num;
 +static int alt_num_cnt;
  
  bool dfu_reset(void)
  {
@@@ -127,6 -126,28 +127,28 @@@ static int dfu_write_buffer_drain(struc
        return ret;
  }
  
+ int dfu_flush(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num)
+ {
+       int ret = 0;
+       if (dfu->flush_medium)
+               ret = dfu->flush_medium(dfu);
+       printf("\nDFU complete CRC32: 0x%08x\n", dfu->crc);
+       /* clear everything */
+       dfu_free_buf();
+       dfu->crc = 0;
+       dfu->offset = 0;
+       dfu->i_blk_seq_num = 0;
+       dfu->i_buf_start = dfu_buf;
+       dfu->i_buf_end = dfu_buf;
+       dfu->i_buf = dfu->i_buf_start;
+       dfu->inited = 0;
+       return ret;
+ }
  int dfu_write(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num)
  {
        int ret = 0;
                        ret = tret;
        }
  
-       /* end? */
-       if (size == 0) {
-               /* Now try and flush to the medium if needed. */
-               if (dfu->flush_medium)
-                       ret = dfu->flush_medium(dfu);
-               printf("\nDFU complete CRC32: 0x%08x\n", dfu->crc);
-               /* clear everything */
-               dfu_free_buf();
-               dfu->crc = 0;
-               dfu->offset = 0;
-               dfu->i_blk_seq_num = 0;
-               dfu->i_buf_start = dfu_buf;
-               dfu->i_buf_end = dfu_buf;
-               dfu->i_buf = dfu->i_buf_start;
-               dfu->inited = 0;
-       }
        return ret = 0 ? size : ret;
  }
  
@@@ -378,8 -379,6 +380,8 @@@ void dfu_free_entities(void
        if (t)
                free(t);
        INIT_LIST_HEAD(&dfu_list);
 +
 +      alt_num_cnt = 0;
  }
  
  int dfu_config_entities(char *env, char *interface, int num)
        for (i = 0; i < dfu_alt_num; i++) {
  
                s = strsep(&env, ";");
 -              ret = dfu_fill_entity(&dfu[i], s, i, interface, num);
 +              ret = dfu_fill_entity(&dfu[i], s, alt_num_cnt, interface, num);
                if (ret)
                        return -1;
  
                list_add_tail(&dfu[i].list, &dfu_list);
 +              alt_num_cnt++;
        }
  
        return 0;
index fd6f52c6b105f381a68a28bb37bf2493211a9dbe,884a42b65691dd154888cfdc2cc18e1868eb590f..ea9e758a6966faaa5476e7ee5e2ec1b47d68fbe5
  #define CONFIG_BOOTCOUNT_LIMIT
  #define CONFIG_BOOTCOUNT_AM33XX
  
- /* CPSW support */
- #define CONFIG_SPL_ETH_SUPPORT
  /* USB gadget RNDIS */
  #define CONFIG_SPL_MUSB_NEW_SUPPORT
  
  #define CONFIG_SYS_FLASH_BASE         (0x08000000)
  #define CONFIG_SYS_FLASH_CFI_WIDTH    FLASH_CFI_16BIT
  #define CONFIG_SYS_MONITOR_BASE               CONFIG_SYS_FLASH_BASE
 +/* Reduce SPL size by removing unlikey targets */
 +#undef CONFIG_SPL_SPI_SUPPORT
  #ifdef CONFIG_NOR_BOOT
  #define CONFIG_ENV_IS_IN_FLASH
  #define CONFIG_ENV_SECT_SIZE          (128 << 10)     /* 128 KiB */
diff --combined include/configs/trats.h
index 84c71ced46662176b567e4b8eb7c5f9d516cbd14,1ed4b9f252477ed1f3bc2145a97dc525bb263ad4..5d8bd605836be277cc1a0f2e8068fb29dfb3279d
@@@ -7,19 -7,25 +7,19 @@@
   * SPDX-License-Identifier:   GPL-2.0+
   */
  
 -#ifndef __CONFIG_H
 -#define __CONFIG_H
 +#ifndef __CONFIG_TRATS_H
 +#define __CONFIG_TRATS_H
  
 -/*
 - * High Level Configuration Options
 - * (easy to change)
 - */
 -#define CONFIG_SAMSUNG                /* in a SAMSUNG core */
 -#define CONFIG_S5P            /* which is in a S5P Family */
 -#define CONFIG_EXYNOS4                /* which is in a EXYNOS4XXX */
 -#define CONFIG_EXYNOS4210     /* which is in a EXYNOS4210 */
 -#define CONFIG_TRATS          /* working with TRATS */
 -#define CONFIG_TIZEN          /* TIZEN lib */
 +#include <configs/exynos4-dt.h>
 +
 +#define CONFIG_SYS_PROMPT     "Trats # "      /* Monitor Command Prompt */
 +
 +#define CONFIG_TRATS
  
 -#include <asm/arch/cpu.h>     /* get chip and board defs */
 +#undef CONFIG_DEFAULT_DEVICE_TREE
 +#define CONFIG_DEFAULT_DEVICE_TREE    exynos4210-trats
  
 -#define CONFIG_ARCH_CPU_INIT
 -#define CONFIG_DISPLAY_CPUINFO
 -#define CONFIG_DISPLAY_BOARDINFO
 +#define CONFIG_TIZEN                  /* TIZEN lib */
  
  #define CONFIG_SYS_L2CACHE_OFF
  #ifndef CONFIG_SYS_L2CACHE_OFF
  #define CONFIG_SYS_PL310_BASE 0x10502000
  #endif
  
 +/* TRATS has 4 banks of DRAM */
 +#define CONFIG_NR_DRAM_BANKS          4
  #define CONFIG_SYS_SDRAM_BASE         0x40000000
 +#define PHYS_SDRAM_1                  CONFIG_SYS_SDRAM_BASE
  #define CONFIG_SYS_TEXT_BASE          0x63300000
 +#define SDRAM_BANK_SIZE                       (256 << 20)     /* 256 MB */
  
 -/* input clock of PLL: TRATS has 24MHz input clock at EXYNOS4210 */
 -#define CONFIG_SYS_CLK_FREQ_C210      24000000
 -#define CONFIG_SYS_CLK_FREQ           CONFIG_SYS_CLK_FREQ_C210
 -
 -#define CONFIG_SETUP_MEMORY_TAGS
 -#define CONFIG_CMDLINE_TAG
 -#define CONFIG_REVISION_TAG
 -#define CONFIG_CMDLINE_EDITING
 -#define CONFIG_SKIP_LOWLEVEL_INIT
 -#define CONFIG_BOARD_EARLY_INIT_F
 +/* memtest works on */
 +#define CONFIG_SYS_MEMTEST_START      CONFIG_SYS_SDRAM_BASE
 +#define CONFIG_SYS_MEMTEST_END                (CONFIG_SYS_SDRAM_BASE + 0x5000000)
 +#define CONFIG_SYS_LOAD_ADDR          (CONFIG_SYS_SDRAM_BASE + 0x4800000)
  
 -/* MACH_TYPE_TRATS macro will be removed once added to mach-types */
 -#define MACH_TYPE_TRATS                       3928
 -#define CONFIG_MACH_TYPE              MACH_TYPE_TRATS
 +#define CONFIG_SYS_TEXT_BASE          0x63300000
  
  #include <linux/sizes.h>
  /* Size of malloc() pool */
  #define CONFIG_SYS_MALLOC_LEN         (CONFIG_ENV_SIZE + (80 * SZ_1M))
  
  /* select serial console configuration */
 -#define CONFIG_SERIAL2                        /* use SERIAL 2 */
 +#define CONFIG_SERIAL2
  #define CONFIG_BAUDRATE                       115200
  
 -/* MMC */
 -#define CONFIG_GENERIC_MMC
 -#define CONFIG_MMC
 -#define CONFIG_S5P_SDHCI
 -#define CONFIG_SDHCI
 -#define CONFIG_MMC_SDMA
 -
 -/* PWM */
 -#define CONFIG_PWM
 -
 -/* It should define before config_cmd_default.h */
 -#define CONFIG_SYS_NO_FLASH
 -
 -/* Command definition */
 -#include <config_cmd_default.h>
 -
 -#undef CONFIG_CMD_FPGA
 -#undef CONFIG_CMD_MISC
 -#undef CONFIG_CMD_NET
 -#undef CONFIG_CMD_NFS
 -#undef CONFIG_CMD_XIMG
 -#undef CONFIG_CMD_CACHE
 -#undef CONFIG_CMD_ONENAND
 -#undef CONFIG_CMD_MTDPARTS
 -#define CONFIG_CMD_MMC
 -#define CONFIG_CMD_DFU
 -#define CONFIG_CMD_GPT
 -#define CONFIG_CMD_SETEXPR
 -
 -/* FAT */
 -#define CONFIG_CMD_FAT
 -#define CONFIG_FAT_WRITE
 -
 -/* USB Composite download gadget - g_dnl */
 -#define CONFIG_USBDOWNLOAD_GADGET
 -
 -/* TIZEN THOR downloader support */
 -#define CONFIG_CMD_THOR_DOWNLOAD
 -#define CONFIG_THOR_FUNCTION
 -
 -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
 -#define DFU_DEFAULT_POLL_TIMEOUT 300
 -#define CONFIG_DFU_FUNCTION
 -#define CONFIG_DFU_MMC
 -
 -/* USB Samsung's IDs */
 -#define CONFIG_G_DNL_VENDOR_NUM 0x04E8
 -#define CONFIG_G_DNL_PRODUCT_NUM 0x6601
 -#define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM
 -#define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D
 -#define CONFIG_G_DNL_MANUFACTURER "Samsung"
 -
 -#define CONFIG_BOOTDELAY              1
 -#define CONFIG_ZERO_BOOTDELAY_CHECK
 +/* Console configuration */
 +#define CONFIG_SYS_CONSOLE_INFO_QUIET
 +#define CONFIG_SYS_CONSOLE_IS_IN_ENV
 +
 +/* MACH_TYPE_TRATS macro will be removed once added to mach-types */
 +#define MACH_TYPE_TRATS                       3928
 +#define CONFIG_MACH_TYPE              MACH_TYPE_TRATS
 +
  #define CONFIG_BOOTARGS                       "Please use defined boot"
  #define CONFIG_BOOTCOMMAND            "run mmcboot"
 +#define CONFIG_DEFAULT_CONSOLE                "console=ttySAC1,115200n8\0"
 +
 +#define CONFIG_SYS_INIT_SP_ADDR       (CONFIG_SYS_LOAD_ADDR \
 +                                      - GENERATED_GBL_DATA_SIZE)
 +
 +#define CONFIG_SYS_MEM_TOP_HIDE       (1 << 20)       /* ram console */
 +
 +#define CONFIG_SYS_MONITOR_BASE       0x00000000
  
 -#define CONFIG_DEFAULT_CONSOLE                "console=ttySAC2,115200n8\0"
  #define CONFIG_BOOTBLOCK              "10"
  #define CONFIG_ENV_COMMON_BOOT                "${console} ${meminfo}"
  
 +#define CONFIG_ENV_IS_IN_MMC
 +#define CONFIG_SYS_MMC_ENV_DEV                CONFIG_MMC_DEFAULT_DEV
 +#define CONFIG_ENV_SIZE                       4096
 +#define CONFIG_ENV_OFFSET             ((32 - 4) << 10) /* 32KiB - 4KiB */
 +
 +#define CONFIG_ENV_OVERWRITE
 +
 +#define CONFIG_ENV_VARS_UBOOT_CONFIG
 +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 +
  /* Tizen - partitions definitions */
  #define PARTS_CSA             "csa-mmc"
 -#define PARTS_BOOTLOADER      "u-boot"
  #define PARTS_BOOT            "boot"
 +#define PARTS_QBOOT           "qboot"
 +#define PARTS_CSC             "csc"
  #define PARTS_ROOT            "platform"
  #define PARTS_DATA            "data"
 -#define PARTS_CSC             "csc"
  #define PARTS_UMS             "ums"
  
  #define PARTS_DEFAULT \
        "uuid_disk=${uuid_gpt_disk};" \
 -      "name="PARTS_CSA",size=8MiB,uuid=${uuid_gpt_"PARTS_CSA"};" \
 -      "name="PARTS_BOOTLOADER",size=60MiB," \
 -              "uuid=${uuid_gpt_"PARTS_BOOTLOADER"};" \
 -      "name="PARTS_BOOT",size=100MiB,uuid=${uuid_gpt_"PARTS_BOOT"};" \
 -      "name="PARTS_ROOT",size=1GiB,uuid=${uuid_gpt_"PARTS_ROOT"};" \
 -      "name="PARTS_DATA",size=3GiB,uuid=${uuid_gpt_"PARTS_DATA"};" \
 +      "name="PARTS_CSA",start=5MiB,size=8MiB,uuid=${uuid_gpt_"PARTS_CSA"};" \
 +      "name="PARTS_BOOT",size=60MiB,uuid=${uuid_gpt_"PARTS_BOOT"};" \
 +      "name="PARTS_QBOOT",size=100MiB,uuid=${uuid_gpt_"PARTS_QBOOT"};" \
        "name="PARTS_CSC",size=150MiB,uuid=${uuid_gpt_"PARTS_CSC"};" \
 +      "name="PARTS_ROOT",size=1536MiB,uuid=${uuid_gpt_"PARTS_ROOT"};" \
 +      "name="PARTS_DATA",size=3000MiB,uuid=${uuid_gpt_"PARTS_DATA"};" \
        "name="PARTS_UMS",size=-,uuid=${uuid_gpt_"PARTS_UMS"}\0" \
  
  #define CONFIG_DFU_ALT \
        "u-boot mmc 80 400;" \
        "uImage ext4 0 2;" \
 +      "modem.bin ext4 0 2;" \
        "exynos4210-trats.dtb ext4 0 2;" \
 +      ""PARTS_CSA" part 0 1;" \
        ""PARTS_BOOT" part 0 2;" \
 +      ""PARTS_QBOOT" part 0 3;" \
 +      ""PARTS_CSC" part 0 4;" \
        ""PARTS_ROOT" part 0 5;" \
        ""PARTS_DATA" part 0 6;" \
        ""PARTS_UMS" part 0 7;" \
        "params.bin mmc 0x38 0x8\0"
  
 -#define CONFIG_ENV_OVERWRITE
 -#define CONFIG_SYS_CONSOLE_INFO_QUIET
 -#define CONFIG_SYS_CONSOLE_IS_IN_ENV
 -
 -#define CONFIG_ENV_VARS_UBOOT_CONFIG
 -#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 -
  #define CONFIG_EXTRA_ENV_SETTINGS \
        "bootk=" \
                "run loaduimage;" \
                   "setenv spl_addr_tmp;\0" \
        "fdtaddr=40800000\0" \
  
 -
 -/* Miscellaneous configurable options */
 -#define CONFIG_SYS_LONGHELP           /* undef to save memory */
 -#define CONFIG_SYS_HUSH_PARSER                /* use "hush" command parser */
 -#define CONFIG_SYS_PROMPT             "TRATS # "
 -#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 */
 -/* 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 + 0x5000000)
 -#define CONFIG_SYS_LOAD_ADDR          (CONFIG_SYS_SDRAM_BASE + 0x4800000)
 -
 -/* TRATS has 4 banks of DRAM */
 -#define CONFIG_NR_DRAM_BANKS  4
 -#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 CONFIG_SYS_MEM_TOP_HIDE               (1 << 20)       /* ram console */
 -
 -#define CONFIG_SYS_MONITOR_BASE               0x00000000
 -#define CONFIG_SYS_MONITOR_LEN                (256 << 10)     /* Reserve 2 sectors */
 -
 -#define CONFIG_ENV_IS_IN_MMC
 -#define CONFIG_SYS_MMC_ENV_DEV                0
 -#define CONFIG_ENV_SIZE                       4096
 -#define CONFIG_ENV_OFFSET             ((32 - 4) << 10) /* 32KiB - 4KiB */
 -
 -#define CONFIG_DOS_PARTITION
 -#define CONFIG_EFI_PARTITION
 -
 -/* EXT4 */
 -#define CONFIG_CMD_EXT4
 -#define CONFIG_CMD_EXT4_WRITE
  /* Falcon mode definitions */
  #define CONFIG_CMD_SPL
 -#define CONFIG_SYS_SPL_ARGS_ADDR        PHYS_SDRAM_1 + 0x100
 +#define CONFIG_SYS_SPL_ARGS_ADDR        CONFIG_SYS_SDRAM_BASE + 0x100
  
 -#define CONFIG_EFI_PARTITION
 -#define CONFIG_PARTITION_UUIDS
+ /* GPT */
 -#define CONFIG_SYS_INIT_SP_ADDR       (CONFIG_SYS_LOAD_ADDR - GENERATED_GBL_DATA_SIZE)
 -#define CONFIG_SYS_CACHELINE_SIZE       32
+ #define CONFIG_RANDOM_UUID
 +/* I2C */
 +#include <asm/arch/gpio.h>
 +
 +#define CONFIG_CMD_I2C
  
  #define CONFIG_SYS_I2C
  #define CONFIG_SYS_I2C_S3C24X0
  #define CONFIG_SOFT_I2C_READ_REPEATED_START
  #define CONFIG_SYS_I2C_INIT_BOARD
  
 -#include <asm/arch/gpio.h>
 -
  /* I2C FG */
  #define CONFIG_SOFT_I2C_GPIO_SCL exynos4_gpio_get(2, y4, 1)
  #define CONFIG_SOFT_I2C_GPIO_SDA exynos4_gpio_get(2, y4, 0)
  
 +/* POWER */
  #define CONFIG_POWER
  #define CONFIG_POWER_I2C
  #define CONFIG_POWER_MAX8997
  #define CONFIG_POWER_MUIC_MAX8997
  #define CONFIG_POWER_BATTERY
  #define CONFIG_POWER_BATTERY_TRATS
 -#define CONFIG_USB_GADGET
 -#define CONFIG_USB_GADGET_S3C_UDC_OTG
 -#define CONFIG_USB_GADGET_DUALSPEED
 -#define CONFIG_USB_GADGET_VBUS_DRAW   2
 -#define CONFIG_USB_CABLE_CHECK
  
+ /* Security subsystem - enable hw_rand() */
+ #define CONFIG_EXYNOS_ACE_SHA
+ #define CONFIG_LIB_HW_RAND
  /* Common misc for Samsung */
  #define CONFIG_MISC_COMMON
  
  #define CONFIG_VIDEO_BMP_GZIP
  #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE  ((500 * 160 * 4) + 54)
  
 -#define CONFIG_CMD_USB_MASS_STORAGE
 -#define CONFIG_USB_GADGET_MASS_STORAGE
 -
 -/* Pass open firmware flat tree */
 -#define CONFIG_OF_LIBFDT    1
 +#define LCD_XRES      720
 +#define LCD_YRES      1280
  
  #endif        /* __CONFIG_H */
diff --combined include/configs/trats2.h
index 85cf4aadc5475078dd0f7cb2e19cbbed3a14b8d9,6d89ca93f2b4335bad964c4058396e6d8694a590..53d449c291a05d4c105387d6a54b6645438365bf
@@@ -8,17 -8,27 +8,17 @@@
   * SPDX-License-Identifier:   GPL-2.0+
   */
  
 -#ifndef __CONFIG_H
 -#define __CONFIG_H
 +#ifndef __CONFIG_TRATS2_H
 +#define __CONFIG_TRATS2_H
  
 -/*
 - * High Level Configuration Options
 - * (easy to change)
 - */
 -#define CONFIG_SAMSUNG                /* in a SAMSUNG core */
 -#define CONFIG_S5P            /* which is in a S5P Family */
 -#define CONFIG_EXYNOS4                /* which is in a EXYNOS4XXX */
 -#define CONFIG_TIZEN          /* TIZEN lib */
 -
 -#include <asm/arch/cpu.h>             /* get chip and board defs */
 +#include <configs/exynos4-dt.h>
  
 -#define CONFIG_ARCH_CPU_INIT
 -#define CONFIG_DISPLAY_CPUINFO
 -#define CONFIG_DISPLAY_BOARDINFO
 +#define CONFIG_SYS_PROMPT     "Trats2 # "     /* Monitor Command Prompt */
  
 -#define CONFIG_SKIP_LOWLEVEL_INIT
 +#undef CONFIG_DEFAULT_DEVICE_TREE
 +#define CONFIG_DEFAULT_DEVICE_TREE    exynos4412-trats2
  
 -#define CONFIG_SYS_CACHELINE_SIZE     32
 +#define CONFIG_TIZEN                  /* TIZEN lib */
  
  #define CONFIG_SYS_L2CACHE_OFF
  #ifndef CONFIG_SYS_L2CACHE_OFF
  #define CONFIG_SYS_PL310_BASE 0x10502000
  #endif
  
 -#define CONFIG_NR_DRAM_BANKS  4
 -#define PHYS_SDRAM_1          0x40000000      /* LDDDR2 DMC 0 */
 -#define PHYS_SDRAM_1_SIZE     (256 << 20)     /* 256 MB in CS 0 */
 -#define PHYS_SDRAM_2          0x50000000      /* LPDDR2 DMC 1 */
 -#define PHYS_SDRAM_2_SIZE     (256 << 20)     /* 256 MB in CS 0 */
 -#define PHYS_SDRAM_3          0x60000000      /* LPDDR2 DMC 1 */
 -#define PHYS_SDRAM_3_SIZE     (256 << 20)     /* 256 MB in CS 0 */
 -#define PHYS_SDRAM_4          0x70000000      /* LPDDR2 DMC 1 */
 -#define PHYS_SDRAM_4_SIZE     (256 << 20)     /* 256 MB in CS 0 */
 -#define PHYS_SDRAM_END                0x80000000
 -
 -#define CONFIG_SYS_MEM_TOP_HIDE               (1 << 20)       /* ram console */
 -
 -#define CONFIG_SYS_SDRAM_BASE         (PHYS_SDRAM_1)
 -#define CONFIG_SYS_TEXT_BASE          0x78100000
 -
 -#define CONFIG_SYS_CLK_FREQ           24000000
 -
 -#define CONFIG_SETUP_MEMORY_TAGS
 -#define CONFIG_CMDLINE_TAG
 -#define CONFIG_REVISION_TAG
 -
 -/* MACH_TYPE_TRATS2 */
 -#define MACH_TYPE_TRATS2              3765
 -#define CONFIG_MACH_TYPE              MACH_TYPE_TRATS2
 +/* TRATS2 has 4 banks of DRAM */
 +#define CONFIG_NR_DRAM_BANKS          4
 +#define CONFIG_SYS_SDRAM_BASE         0x40000000
 +#define PHYS_SDRAM_1                  CONFIG_SYS_SDRAM_BASE
 +#define SDRAM_BANK_SIZE                       (256 << 20)     /* 256 MB */
 +/* 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_DISPLAY_CPUINFO
 +#define CONFIG_SYS_TEXT_BASE          0x43e00000
  
  #include <linux/sizes.h>
  /* Size of malloc() pool */
  
  /* select serial console configuration */
  #define CONFIG_SERIAL2
 +#define CONFIG_BAUDRATE                       115200
  
 -#define CONFIG_SYS_HUSH_PARSER                /* use "hush" command parser    */
 -#define CONFIG_SYS_PROMPT_HUSH_PS2    "> "
 +/* Console configuration */
 +#define CONFIG_SYS_CONSOLE_INFO_QUIET
 +#define CONFIG_SYS_CONSOLE_IS_IN_ENV
  
 -#define CONFIG_CMDLINE_EDITING
 +#define CONFIG_BOOTARGS                       "Please use defined boot"
 +#define CONFIG_BOOTCOMMAND            "run mmcboot"
 +#define CONFIG_DEFAULT_CONSOLE                "console=ttySAC1,115200n8\0"
  
 -#define CONFIG_BAUDRATE                       115200
 +#define CONFIG_SYS_INIT_SP_ADDR       (CONFIG_SYS_LOAD_ADDR \
 +                                      - GENERATED_GBL_DATA_SIZE)
  
 -/* It should define before config_cmd_default.h */
 -#define CONFIG_SYS_NO_FLASH
 -
 -/***********************************************************
 - * Command definition
 - ***********************************************************/
 -#include <config_cmd_default.h>
 -
 -#undef CONFIG_CMD_ECHO
 -#undef CONFIG_CMD_FPGA
 -#undef CONFIG_CMD_FLASH
 -#undef CONFIG_CMD_IMLS
 -#undef CONFIG_CMD_NAND
 -#undef CONFIG_CMD_MISC
 -#undef CONFIG_CMD_NFS
 -#undef CONFIG_CMD_SOURCE
 -#undef CONFIG_CMD_XIMG
 -#define CONFIG_CMD_CACHE
 -#define CONFIG_CMD_I2C
 -#define CONFIG_CMD_MMC
 -#define CONFIG_CMD_DFU
 -#define CONFIG_CMD_GPT
 -#define CONFIG_CMD_PMIC
 -
 -#define CONFIG_BOOTDELAY      3
 -#define CONFIG_ZERO_BOOTDELAY_CHECK
 -
 -#define CONFIG_CMD_FAT
 -#define CONFIG_FAT_WRITE
 -
 -/* EXT4 */
 -#define CONFIG_CMD_EXT4
 -#define CONFIG_CMD_EXT4_WRITE
 -
 -/* USB Composite download gadget - g_dnl */
 -#define CONFIG_USBDOWNLOAD_GADGET
 -#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
 -#define DFU_DEFAULT_POLL_TIMEOUT 300
 -#define CONFIG_DFU_FUNCTION
 -#define CONFIG_DFU_MMC
 -
 -/* TIZEN THOR downloader support */
 -#define CONFIG_CMD_THOR_DOWNLOAD
 -#define CONFIG_THOR_FUNCTION
 -
 -/* USB Samsung's IDs */
 -#define CONFIG_G_DNL_VENDOR_NUM 0x04E8
 -#define CONFIG_G_DNL_PRODUCT_NUM 0x6601
 -#define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM
 -#define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D
 -#define CONFIG_G_DNL_MANUFACTURER "Samsung"
 -
 -/* To use the TFTPBOOT over USB, Please enable the CONFIG_CMD_NET */
 -#undef CONFIG_CMD_NET
 -
 -/* MMC */
 -#define CONFIG_GENERIC_MMC
 -#define CONFIG_MMC
 -#define CONFIG_S5P_SDHCI
 -#define CONFIG_SDHCI
 -#define CONFIG_MMC_SDMA
 -#define CONFIG_MMC_DEFAULT_DEV        0
 -
 -/* PWM */
 -#define CONFIG_PWM
 -
 -#define CONFIG_BOOTARGS               "Please use defined boot"
 -#define CONFIG_BOOTCOMMAND    "run mmcboot"
 -#define CONFIG_DEFAULT_CONSOLE        "console=ttySAC2,115200n8\0"
 +#define CONFIG_SYS_MEM_TOP_HIDE       (1 << 20)       /* ram console */
 +
 +#define CONFIG_SYS_MONITOR_BASE       0x00000000
 +
 +#define CONFIG_ENV_IS_IN_MMC
 +#define CONFIG_SYS_MMC_ENV_DEV                CONFIG_MMC_DEFAULT_DEV
 +#define CONFIG_ENV_SIZE                       4096
 +#define CONFIG_ENV_OFFSET             ((32 - 4) << 10) /* 32KiB - 4KiB */
  
  #define CONFIG_ENV_OVERWRITE
 -#define CONFIG_SYS_CONSOLE_INFO_QUIET
 -#define CONFIG_SYS_CONSOLE_IS_IN_ENV
  
  #define CONFIG_ENV_VARS_UBOOT_CONFIG
  #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
  
  /* Tizen - partitions definitions */
 -#define PARTS_CSA             "csa"
 +#define PARTS_CSA             "csa-mmc"
  #define PARTS_BOOT            "boot"
 -#define PARTS_MODEM           "modem"
 +#define PARTS_QBOOT           "qboot"
  #define PARTS_CSC             "csc"
  #define PARTS_ROOT            "platform"
  #define PARTS_DATA            "data"
  #define PARTS_DEFAULT \
        "uuid_disk=${uuid_gpt_disk};" \
        "name="PARTS_CSA",start=5MiB,size=8MiB,uuid=${uuid_gpt_"PARTS_CSA"};" \
 -      "name="PARTS_BOOT",size=64MiB,uuid=${uuid_gpt_"PARTS_BOOT"};" \
 -      "name="PARTS_MODEM",size=100MiB,uuid=${uuid_gpt_"PARTS_MODEM"};" \
 +      "name="PARTS_BOOT",size=60MiB,uuid=${uuid_gpt_"PARTS_BOOT"};" \
 +      "name="PARTS_QBOOT",size=100MiB,uuid=${uuid_gpt_"PARTS_QBOOT"};" \
        "name="PARTS_CSC",size=150MiB,uuid=${uuid_gpt_"PARTS_CSC"};" \
        "name="PARTS_ROOT",size=1536MiB,uuid=${uuid_gpt_"PARTS_ROOT"};" \
 -      "name="PARTS_DATA",size=512MiB,uuid=${uuid_gpt_"PARTS_DATA"};" \
 +      "name="PARTS_DATA",size=3000MiB,uuid=${uuid_gpt_"PARTS_DATA"};" \
        "name="PARTS_UMS",size=-,uuid=${uuid_gpt_"PARTS_UMS"}\0" \
  
  #define CONFIG_DFU_ALT \
        "u-boot mmc 80 800;" \
        "uImage ext4 0 2;" \
 +      "modem.bin ext4 0 2;" \
        "exynos4412-trats2.dtb ext4 0 2;" \
 +      ""PARTS_CSA" part 0 1;" \
        ""PARTS_BOOT" part 0 2;" \
 +      ""PARTS_QBOOT" part 0 3;" \
 +      ""PARTS_CSC" part 0 4;" \
        ""PARTS_ROOT" part 0 5;" \
        ""PARTS_DATA" part 0 6;" \
        ""PARTS_UMS" part 0 7;" \
                   "setenv spl_addr_tmp;\0" \
        "fdtaddr=40800000\0" \
  
 -/*
 - * Miscellaneous configurable options
 - */
 -#define CONFIG_SYS_LONGHELP                   /* undef to save memory */
 -#define CONFIG_SYS_PROMPT     "Trats2 # "     /* Monitor Command Prompt */
 -#define CONFIG_SYS_CBSIZE     256             /* Console I/O Buffer Size */
 -#define CONFIG_SYS_PBSIZE     384             /* Print Buffer Size */
 -#define CONFIG_SYS_MAXARGS    32              /* max number of command args */
 -
 -/* 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 + 0x5000000)
 -#define CONFIG_SYS_LOAD_ADDR          (CONFIG_SYS_SDRAM_BASE + 0x4800000)
 -
 -#define CONFIG_SYS_INIT_SP_ADDR               (CONFIG_SYS_LOAD_ADDR \
 -                                      - GENERATED_GBL_DATA_SIZE)
 -
 -/* valid baudrates */
 -#define CONFIG_SYS_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }
 -
 -#define CONFIG_SYS_MONITOR_BASE               0x00000000
 -
 -/*-----------------------------------------------------------------------
 - * FLASH and environment organization
 - */
 -
 -#define CONFIG_SYS_MONITOR_LEN                (256 << 10)     /* Reserve 2 sectors */
 -
 -#define CONFIG_ENV_IS_IN_MMC
 -#define CONFIG_SYS_MMC_ENV_DEV                CONFIG_MMC_DEFAULT_DEV
 -#define CONFIG_ENV_SIZE                       4096
 -#define CONFIG_ENV_OFFSET             ((32 - 4) << 10) /* 32KiB - 4KiB */
 -#define CONFIG_EFI_PARTITION
 -#define CONFIG_PARTITION_UUIDS
++/* GPT */
+ #define CONFIG_RANDOM_UUID
 -#define CONFIG_BOARD_EARLY_INIT_F
 -
  /* I2C */
  #include <asm/arch/gpio.h>
  
 +#define CONFIG_CMD_I2C
 +
  #define CONFIG_SYS_I2C
  #define CONFIG_SYS_I2C_S3C24X0
  #define CONFIG_SYS_I2C_S3C24X0_SPEED  100000
@@@ -200,7 -319,16 +203,11 @@@ int get_soft_i2c_sda_pin(void)
  #define CONFIG_POWER_MUIC_MAX77693
  #define CONFIG_POWER_FG_MAX77693
  #define CONFIG_POWER_BATTERY_TRATS2
 -#define CONFIG_USB_GADGET
 -#define CONFIG_USB_GADGET_S3C_UDC_OTG
 -#define CONFIG_USB_GADGET_DUALSPEED
 -#define CONFIG_USB_GADGET_VBUS_DRAW   2
 -#define CONFIG_USB_CABLE_CHECK
  
+ /* Security subsystem - enable hw_rand() */
+ #define CONFIG_EXYNOS_ACE_SHA
+ #define CONFIG_LIB_HW_RAND
  /* Common misc for Samsung */
  #define CONFIG_MISC_COMMON
  
  #define CONFIG_VIDEO_BMP_GZIP
  #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 160 * 4) + 54)
  
 -#define CONFIG_CMD_USB_MASS_STORAGE
 -#define CONFIG_USB_GADGET_MASS_STORAGE
 -
 -/* Pass open firmware flat tree */
 -#define CONFIG_OF_LIBFDT    1
 +#define LCD_XRES      720
 +#define LCD_YRES      1280
  
  #endif        /* __CONFIG_H */
diff --combined include/mmc.h
index b65ad9e41e95e11f0bbfbb58f615d21b6599f098,c0a1d9e0221fad2d19b430bc0ac5f4acf1096516..42d01251b59bc8d5316e829d931b15d3eb66b11a
  #define EXT_CSD_GP_SIZE_MULT          143     /* R/W */
  #define EXT_CSD_PARTITIONS_ATTRIBUTE  156     /* R/W */
  #define EXT_CSD_PARTITIONING_SUPPORT  160     /* RO */
+ #define EXT_CSD_RST_N_FUNCTION                162     /* R/W */
  #define EXT_CSD_RPMB_MULT             168     /* RO */
  #define EXT_CSD_ERASE_GROUP_DEF               175     /* R/W */
  #define EXT_CSD_BOOT_BUS_WIDTH                177
@@@ -250,20 -251,40 +251,40 @@@ struct mmc_data 
        uint blocksize;
  };
  
+ /* forward decl. */
+ struct mmc;
+ struct mmc_ops {
+       int (*send_cmd)(struct mmc *mmc,
+                       struct mmc_cmd *cmd, struct mmc_data *data);
+       void (*set_ios)(struct mmc *mmc);
+       int (*init)(struct mmc *mmc);
+       int (*getcd)(struct mmc *mmc);
+       int (*getwp)(struct mmc *mmc);
+ };
+ struct mmc_config {
+       const char *name;
+       const struct mmc_ops *ops;
+       uint host_caps;
+       uint voltages;
+       uint f_min;
+       uint f_max;
+       uint b_max;
+       unsigned char part_type;
+ };
+ /* TODO struct mmc should be in mmc_private but it's hard to fix right now */
  struct mmc {
        struct list_head link;
-       char name[32];
-       void *priv;
-       uint voltages;
+       const struct mmc_config *cfg;   /* provided configuration */
        uint version;
+       void *priv;
        uint has_init;
-       uint f_min;
-       uint f_max;
        int high_capacity;
        uint bus_width;
        uint clock;
        uint card_caps;
-       uint host_caps;
        uint ocr;
        uint dsr;
        uint dsr_imp;
        u64 capacity_rpmb;
        u64 capacity_gp[4];
        block_dev_desc_t block_dev;
-       int (*send_cmd)(struct mmc *mmc,
-                       struct mmc_cmd *cmd, struct mmc_data *data);
-       void (*set_ios)(struct mmc *mmc);
-       int (*init)(struct mmc *mmc);
-       int (*getcd)(struct mmc *mmc);
-       int (*getwp)(struct mmc *mmc);
-       uint b_max;
        char op_cond_pending;   /* 1 if we are waiting on an op_cond command */
        char init_in_progress;  /* 1 if we have done mmc_start_init() */
        char preinit;           /* start init as early as possible */
  };
  
  int mmc_register(struct mmc *mmc);
+ struct mmc *mmc_create(const struct mmc_config *cfg, void *priv);
+ void mmc_destroy(struct mmc *mmc);
  int mmc_initialize(bd_t *bis);
  int mmc_init(struct mmc *mmc);
  int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size);
@@@ -317,6 -333,8 +333,8 @@@ int mmc_boot_partition_size_change(stru
  int mmc_set_part_conf(struct mmc *mmc, u8 ack, u8 part_num, u8 access);
  /* Function to modify the BOOT_BUS_WIDTH field of EXT_CSD */
  int mmc_set_boot_bus_width(struct mmc *mmc, u8 width, u8 reset, u8 mode);
+ /* Function to modify the RST_n_FUNCTION field of EXT_CSD */
+ int mmc_set_rst_n_function(struct mmc *mmc, u8 enable);
  
  /**
   * Start device initialization and return immediately; it does not block on
@@@ -345,7 -363,7 +363,7 @@@ void mmc_set_preinit(struct mmc *mmc, i
  
  #ifdef CONFIG_GENERIC_MMC
  #ifdef CONFIG_MMC_SPI
- #define mmc_host_is_spi(mmc)  ((mmc)->host_caps & MMC_MODE_SPI)
+ #define mmc_host_is_spi(mmc)  ((mmc)->cfg->host_caps & MMC_MODE_SPI)
  #else
  #define mmc_host_is_spi(mmc)  0
  #endif
@@@ -354,6 -372,9 +372,11 @@@ struct mmc *mmc_spi_init(uint bus, uin
  int mmc_legacy_init(int verbose);
  #endif
  
 +int board_mmc_init(bd_t *bis);
 +
+ /* Set block count limit because of 16 bit register limit on some hardware*/
+ #ifndef CONFIG_SYS_MMC_MAX_BLK_COUNT
+ #define CONFIG_SYS_MMC_MAX_BLK_COUNT 65535
+ #endif
  #endif /* _MMC_H_ */
diff --combined include/sdhci.h
index 32e04f53b54780a21f0a0b42197a6a04552562c9,2c480d07bfe438f89de75703bd5b71393f6e43ee..aa4a0e9654dd6262839aec65df1d8fab08e16076
@@@ -12,7 -12,6 +12,7 @@@
  
  #include <asm/io.h>
  #include <mmc.h>
 +#include <fdtdec.h>
  
  /*
   * Controller registers
@@@ -245,13 -244,11 +245,15 @@@ struct sdhci_host 
        const struct sdhci_ops *ops;
        int index;
  
 +      int bus_width;
 +      struct fdt_gpio_state pwr_gpio; /* Power GPIO */
 +      struct fdt_gpio_state cd_gpio;          /* Card Detect GPIO */
 +
        void (*set_control_reg)(struct sdhci_host *host);
        void (*set_clock)(int dev_index, unsigned int div);
        uint    voltages;
+       struct mmc_config cfg;
  };
  
  #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS