]> git.sur5r.net Git - u-boot/commitdiff
Merge u-boot/master into u-boot-ti/master
authorTom Rini <trini@ti.com>
Mon, 11 Mar 2013 16:02:40 +0000 (12:02 -0400)
committerTom Rini <trini@ti.com>
Mon, 11 Mar 2013 16:16:13 +0000 (12:16 -0400)
In master we had already taken a patch to fix the davinci GPIO code for
CONFIG_SOC_DM646X and in u-boot-ti we have additional patches to support
DA830 (which is CONFIG_SOC_DA8XX && !CONFIG_SOC_DA850).  Resolve these
conflicts manually and comment the #else/#endif lines for clarity.

Conflicts:
arch/arm/include/asm/arch-davinci/gpio.h
drivers/gpio/da8xx_gpio.c

Signed-off-by: Tom Rini <trini@ti.com>
1  2 
MAINTAINERS
README
arch/arm/include/asm/arch-davinci/gpio.h
board/technexion/twister/twister.c
board/timll/devkit8000/devkit8000.c
boards.cfg
drivers/gpio/da8xx_gpio.c
drivers/mmc/bfin_sdh.c
include/configs/ea20.h

diff --combined MAINTAINERS
index 175bbe26669c38096240483e9c072d2b99c06206,8603085f3042db4075f6c9e27ebb888096a42a66..e792a8b4f6557ffcc9595d2e215199b1775161f8
@@@ -607,7 -607,6 +607,7 @@@ Enric Balletbo i Serra <eballetbo@iseeb
  
        igep0020        ARM ARMV7 (OMAP3xx SoC)
        igep0030        ARM ARMV7 (OMAP3xx SoC)
 +      igep0032        ARM ARMV7 (OMAP3xx SoC)
  
  Eric Benard <eric@eukrea.com>
  
@@@ -1227,7 -1226,7 +1227,7 @@@ Yoshihiro Shimoda <yoshihiro.shimoda.uh
  #     Board           CPU                                             #
  #########################################################################
  
Mike Frysinger <vapier@gentoo.org>
Sonic Zhang <sonic.adi@gmail.com>
  Blackfin Team <u-boot-devel@blackfin.uclinux.org>
  
        BF506F-EZKIT    BF506
        BF538F-EZKIT    BF538
        BF548-EZKIT     BF548
        BF561-EZKIT     BF561
+       BF609-EZKIT     BF609
  
  M.Hasewinkel (MHA) <info@ssv-embedded.de>
  
diff --combined README
index 398d70d67c2ff6b24e7d927b84b80202a7e13743,42544cead64ef8d45dbd8834de1c36d5f292ed5a..d51ece946c309a37fa3fcf5c1d91f0174e2b016f
--- 1/README
--- 2/README
+++ b/README
@@@ -842,7 -842,8 +842,8 @@@ The following options need to be config
                CONFIG_CMD_I2C          * I2C serial bus support
                CONFIG_CMD_IDE          * IDE harddisk support
                CONFIG_CMD_IMI            iminfo
-               CONFIG_CMD_IMLS           List all found images
+               CONFIG_CMD_IMLS           List all images found in NOR flash
+               CONFIG_CMD_IMLS_NAND      List all images found in NAND flash
                CONFIG_CMD_IMMAP        * IMMR dump support
                CONFIG_CMD_IMPORTENV    * import an environment
                CONFIG_CMD_INI          * import data from an ini file into the env
                CONFIG_CMD_READ         * Read raw data from partition
                CONFIG_CMD_REGINFO      * Register dump
                CONFIG_CMD_RUN            run command in env variable
+               CONFIG_CMD_SANDBOX      * sb command to access sandbox features
                CONFIG_CMD_SAVES        * save S record dump
                CONFIG_CMD_SCSI         * SCSI Support
                CONFIG_CMD_SDRAM        * print SDRAM configuration information
@@@ -1530,17 -1532,6 +1532,17 @@@ CBFS (Coreboot Filesystem) suppor
                allows for a "silent" boot where a splash screen is
                loaded very quickly after power-on.
  
 +              CONFIG_SPLASHIMAGE_GUARD
 +
 +              If this option is set, then U-Boot will prevent the environment
 +              variable "splashimage" from being set to a problematic address
 +              (see README.displaying-bmps and README.arm-unaligned-accesses).
 +              This option is useful for targets where, due to alignment
 +              restrictions, an improperly aligned BMP image will cause a data
 +              abort. If you think you will not have problems with unaligned
 +              accesses (for example because your toolchain prevents them)
 +              there is no need to set this option.
 +
                CONFIG_SPLASH_SCREEN_ALIGN
  
                If this option is set the splash image can be freely positioned
                        => vertically centered image
                           at x = dspWidth - bmpWidth - 9
  
 +              CONFIG_SPLASH_SCREEN_PREPARE
 +
 +              If this option is set then the board_splash_screen_prepare()
 +              function, which must be defined in your code, is called as part
 +              of the splash screen display sequence. It gives the board an
 +              opportunity to prepare the splash image data before it is
 +              processed and sent to the frame buffer by U-Boot.
 +
  - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
  
                If this option is set, additionally to standard BMP
@@@ -3829,6 -3812,15 +3831,15 @@@ Low Level (hardware related) configurat
                that is executed before the actual U-Boot. E.g. when
                compiling a NAND SPL.
  
+ - CONFIG_ARCH_MAP_SYSMEM
+               Generally U-Boot (and in particular the md command) uses
+               effective address. It is therefore not necessary to regard
+               U-Boot address as virtual addresses that need to be translated
+               to physical addresses. However, sandbox requires this, since
+               it maintains its own little RAM buffer which contains all
+               addressable memory. This option causes some memory accesses
+               to be mapped through map_sysmem() / unmap_sysmem().
  - CONFIG_USE_ARCH_MEMCPY
    CONFIG_USE_ARCH_MEMSET
                If these options are used a optimized version of memcpy/memset will
index fbbb1f33c3c9427b9710ad6aa1142e70261476d7,5206b122114e1eeb02f22d4cc855355fd8624ef1..06390c85e1092de192bf0b049927d5cebab76f77
@@@ -65,13 -65,15 +65,16 @@@ struct davinci_gpio_bank 
  #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
  #define davinci_gpio_bank8 ((struct davinci_gpio *)DAVINCI_GPIO_BANK8)
  
- #if defined(CONFIG_SOC_DA8XX) && !defined(CONFIG_SOC_DA850)
 +#define gpio_status()         gpio_info()
 +#define GPIO_NAME_SIZE                20
+ #if defined(CONFIG_SOC_DM644X)
+ /* GPIO0 to GPIO53, omit the V3.3 volts one */
+ #define MAX_NUM_GPIOS         70
++#elif defined(CONFIG_SOC_DA8XX) && !defined(CONFIG_SOC_DA850)
 +#define MAX_NUM_GPIOS         128
  #else
  #define MAX_NUM_GPIOS         144
  #endif
 -
 -#define gpio_status()         gpio_info()
 -#define GPIO_NAME_SIZE                20
  #define GPIO_BANK(gp)         (davinci_gpio_bank01 + ((gp) >> 5))
  #define GPIO_BIT(gp)          ((gp) & 0x1F)
  
index 5f197a746af851403e1d775c191ab398c80e1da3,fa0ace019ae9051af82c6ca13059852cfc563364..a28c7043f926b429c7a78cc4c8c55ecaa02e57b2
@@@ -147,7 -147,7 +147,7 @@@ int board_eth_init(bd_t *bis
        !defined(CONFIG_SPL_BUILD)
  int board_mmc_init(bd_t *bis)
  {
 -      return omap_mmc_init(0, 0, 0);
 +      return omap_mmc_init(0, 0, 0, -1, -1);
  }
  #endif
  
@@@ -165,10 -165,10 +165,10 @@@ void spl_board_prepare_for_linux(void
  int spl_start_uboot(void)
  {
        int val = 0;
-       if (!gpio_request(CONFIG_SPL_OS_BOOT_KEY, "U-Boot key")) {
-               gpio_direction_input(CONFIG_SPL_OS_BOOT_KEY);
-               val = gpio_get_value(CONFIG_SPL_OS_BOOT_KEY);
-               gpio_free(CONFIG_SPL_OS_BOOT_KEY);
+       if (!gpio_request(SPL_OS_BOOT_KEY, "U-Boot key")) {
+               gpio_direction_input(SPL_OS_BOOT_KEY);
+               val = gpio_get_value(SPL_OS_BOOT_KEY);
+               gpio_free(SPL_OS_BOOT_KEY);
        }
        return val;
  }
index 22b3fac398433d292f560e53f641bc5a1f0028d0,b88d9783cb627b91fcc52739588e3a0ecdfeecbd..ebff59e70b38b3d7cc595d98ab31100bd7061238
@@@ -136,7 -136,8 +136,7 @@@ void set_muxconf_regs(void
  #if defined(CONFIG_GENERIC_MMC) && !defined(CONFIG_SPL_BUILD)
  int board_mmc_init(bd_t *bis)
  {
 -      omap_mmc_init(0, 0, 0);
 -      return 0;
 +      return omap_mmc_init(0, 0, 0, -1, -1);
  }
  #endif
  
@@@ -171,10 -172,10 +171,10 @@@ void spl_board_prepare_for_linux(void
  int spl_start_uboot(void)
  {
        int val = 0;
-       if (!gpio_request(CONFIG_SPL_OS_BOOT_KEY, "U-Boot key")) {
-               gpio_direction_input(CONFIG_SPL_OS_BOOT_KEY);
-               val = gpio_get_value(CONFIG_SPL_OS_BOOT_KEY);
-               gpio_free(CONFIG_SPL_OS_BOOT_KEY);
+       if (!gpio_request(SPL_OS_BOOT_KEY, "U-Boot key")) {
+               gpio_direction_input(SPL_OS_BOOT_KEY);
+               val = gpio_get_value(SPL_OS_BOOT_KEY);
+               gpio_free(SPL_OS_BOOT_KEY);
        }
        return !val;
  }
diff --combined boards.cfg
index efe137d8b0758930770fe37a93e96f528c3b1e8e,136ea0ae293736929153c2191371701f74569b8e..198cc5ce8483ea33e3a1712a301516e815472de4
@@@ -233,13 -233,11 +233,13 @@@ integratorap_cm946es         ar
  integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp:CM946ES
  ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
  am335x_evm                   arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1
 +am335x_evm_spiboot           arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1,SPI_BOOT
  am335x_evm_uart1             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL2,CONS_INDEX=2
  am335x_evm_uart2             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL3,CONS_INDEX=3
  am335x_evm_uart3             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL4,CONS_INDEX=4
  am335x_evm_uart4             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL5,CONS_INDEX=5
  am335x_evm_uart5             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL6,CONS_INDEX=6
 +am335x_evm_usbspl            arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1,SPL_USBETH_SUPPORT
  pcm051                       arm         armv7       pcm051              phytec         am33xx      pcm051
  highbank                     arm         armv7       highbank            -              highbank
  mx51_efikamx                 arm         armv7       mx51_efikamx        genesi         mx5           mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg
@@@ -264,7 -262,6 +264,7 @@@ igep0020                     ar
  igep0020_nand                arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0020,BOOT_NAND
  igep0030                     arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0030,BOOT_ONENAND
  igep0030_nand                arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0030,BOOT_NAND
 +igep0032                     arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0032,BOOT_ONENAND
  am3517_evm                   arm         armv7       am3517evm           logicpd        omap3
  mt_ventoux                   arm         armv7       mt_ventoux          teejet         omap3
  omap3_zoom1                  arm         armv7       zoom1               logicpd        omap3
@@@ -285,7 -282,6 +285,7 @@@ nokia_rx51                   ar
  omap4_panda                  arm         armv7       panda               ti             omap4
  omap4_sdp4430                arm         armv7       sdp4430             ti             omap4
  omap5_evm                    arm         armv7       omap5_evm           ti           omap5
 +dra7xx_evm                 arm         armv7       dra7xx              ti             omap5
  s5p_goni                     arm         armv7       goni                samsung        s5pc1xx
  smdkc100                     arm         armv7       smdkc100            samsung        s5pc1xx
  origen                             arm         armv7       origen              samsung        exynos
@@@ -305,7 -301,6 +305,7 @@@ snowball                     ar
  kzm9g                        arm         armv7       kzm9g               kmc            rmobile
  armadillo-800eva             arm         armv7       armadillo-800eva    atmark-techno  rmobile
  zynq                         arm         armv7       zynq                xilinx         zynq
 +zynq_dcc                     arm         armv7       zynq                xilinx         zynq        zynq:ZYNQ_DCC
  socfpga_cyclone5                arm         armv7          socfpga_cyclone5    altera             socfpga
  actux1_4_16                  arm         ixp         actux1              -              -           actux1:FLASH2X2
  actux1_4_32                  arm         ixp         actux1              -              -           actux1:FLASH2X2,RAM_32MB
@@@ -366,6 -361,7 +366,7 @@@ bf538f-ezkit                 blackfi
  bf548-ezkit                  blackfin    blackfin
  bf561-acvilon                blackfin    blackfin
  bf561-ezkit                  blackfin    blackfin
+ bf609-ezkit                  blackfin    blackfin
  blackstamp                   blackfin    blackfin
  blackvme                     blackfin    blackfin
  br4                          blackfin    blackfin
@@@ -710,9 -706,10 +711,10 @@@ SIMPC8313_SP                 powerp
  TQM834x                      powerpc     mpc83xx     tqm834x             tqc
  suvd3                        powerpc     mpc83xx     km83xx              keymile        -           suvd3:SUVD3
  kmvect1                      powerpc     mpc83xx     km83xx              keymile        -           suvd3:KMVECT1
- tuge1                        powerpc     mpc83xx     km83xx              keymile        -           tuxx1:KM_DISABLE_APP2,TUGE1
- tuxx1                        powerpc     mpc83xx     km83xx              keymile
- kmsupx5                      powerpc     mpc83xx     km83xx              keymile        -           tuxx1:KM_DISABLE_APP2,KMSUPX5
+ tuge1                        powerpc     mpc83xx     km83xx              keymile        -           tuxx1:TUGE1
+ tuxx1                        powerpc     mpc83xx     km83xx              keymile        -           tuxx1:TUXX1
+ kmopti2                      powerpc     mpc83xx     km83xx              keymile        -           tuxx1:KMOPTI2
+ kmsupx5                      powerpc     mpc83xx     km83xx              keymile        -           tuxx1:KMSUPX5
  sbc8548                      powerpc     mpc85xx     sbc8548             -              -           sbc8548
  sbc8548_PCI_33               powerpc     mpc85xx     sbc8548             -              -           sbc8548:PCI,33
  sbc8548_PCI_33_PCIE          powerpc     mpc85xx     sbc8548             -              -           sbc8548:PCI,33,PCIE
index 271b8d93f4352b1471e938169e00940ef84884c1,ed6a1180d469b0c6387653056fbccf8164c2a0ef..76648d27d426bc9e644378312e010d10629e329d
@@@ -31,140 -31,9 +31,141 @@@ static struct gpio_registry 
        char name[GPIO_NAME_SIZE];
  } gpio_registry[MAX_NUM_GPIOS];
  
+ #if defined(CONFIG_SOC_DA8XX)
  #define pinmux(x)       (&davinci_syscfg_regs->pinmux[x])
  
- #else
 +#if defined(CONFIG_SOC_DA8XX) && !defined(CONFIG_SOC_DA850)
 +static const struct pinmux_config gpio_pinmux[] = {
 +      { pinmux(13), 8, 6 },   /* GP0[0] */
 +      { pinmux(13), 8, 7 },
 +      { pinmux(14), 8, 0 },
 +      { pinmux(14), 8, 1 },
 +      { pinmux(14), 8, 2 },
 +      { pinmux(14), 8, 3 },
 +      { pinmux(14), 8, 4 },
 +      { pinmux(14), 8, 5 },
 +      { pinmux(14), 8, 6 },
 +      { pinmux(14), 8, 7 },
 +      { pinmux(15), 8, 0 },
 +      { pinmux(15), 8, 1 },
 +      { pinmux(15), 8, 2 },
 +      { pinmux(15), 8, 3 },
 +      { pinmux(15), 8, 4 },
 +      { pinmux(15), 8, 5 },
 +      { pinmux(15), 8, 6 },   /* GP1[0] */
 +      { pinmux(15), 8, 7 },
 +      { pinmux(16), 8, 0 },
 +      { pinmux(16), 8, 1 },
 +      { pinmux(16), 8, 2 },
 +      { pinmux(16), 8, 3 },
 +      { pinmux(16), 8, 4 },
 +      { pinmux(16), 8, 5 },
 +      { pinmux(16), 8, 6 },
 +      { pinmux(16), 8, 7 },
 +      { pinmux(17), 8, 0 },
 +      { pinmux(17), 8, 1 },
 +      { pinmux(17), 8, 2 },
 +      { pinmux(17), 8, 3 },
 +      { pinmux(17), 8, 4 },
 +      { pinmux(17), 8, 5 },
 +      { pinmux(17), 8, 6 },   /* GP2[0] */
 +      { pinmux(17), 8, 7 },
 +      { pinmux(18), 8, 0 },
 +      { pinmux(18), 8, 1 },
 +      { pinmux(18), 8, 2 },
 +      { pinmux(18), 8, 3 },
 +      { pinmux(18), 8, 4 },
 +      { pinmux(18), 8, 5 },
 +      { pinmux(18), 8, 6 },
 +      { pinmux(18), 8, 7 },
 +      { pinmux(19), 8, 0 },
 +      { pinmux(9), 8, 2 },
 +      { pinmux(9), 8, 3 },
 +      { pinmux(9), 8, 4 },
 +      { pinmux(9), 8, 5 },
 +      { pinmux(9), 8, 6 },
 +      { pinmux(10), 8, 1 },   /* GP3[0] */
 +      { pinmux(10), 8, 2 },
 +      { pinmux(10), 8, 3 },
 +      { pinmux(10), 8, 4 },
 +      { pinmux(10), 8, 5 },
 +      { pinmux(10), 8, 6 },
 +      { pinmux(10), 8, 7 },
 +      { pinmux(11), 8, 0 },
 +      { pinmux(11), 8, 1 },
 +      { pinmux(11), 8, 2 },
 +      { pinmux(11), 8, 3 },
 +      { pinmux(11), 8, 4 },
 +      { pinmux(9), 8, 7 },
 +      { pinmux(2), 8, 6 },
 +      { pinmux(11), 8, 5 },
 +      { pinmux(11), 8, 6 },
 +      { pinmux(12), 8, 4 },   /* GP4[0] */
 +      { pinmux(12), 8, 5 },
 +      { pinmux(12), 8, 6 },
 +      { pinmux(12), 8, 7 },
 +      { pinmux(13), 8, 0 },
 +      { pinmux(13), 8, 1 },
 +      { pinmux(13), 8, 2 },
 +      { pinmux(13), 8, 3 },
 +      { pinmux(13), 8, 4 },
 +      { pinmux(13), 8, 5 },
 +      { pinmux(11), 8, 7 },
 +      { pinmux(12), 8, 0 },
 +      { pinmux(12), 8, 1 },
 +      { pinmux(12), 8, 2 },
 +      { pinmux(12), 8, 3 },
 +      { pinmux(9), 8, 1 },
 +      { pinmux(7), 8, 3 },    /* GP5[0] */
 +      { pinmux(7), 8, 4 },
 +      { pinmux(7), 8, 5 },
 +      { pinmux(7), 8, 6 },
 +      { pinmux(7), 8, 7 },
 +      { pinmux(8), 8, 0 },
 +      { pinmux(8), 8, 1 },
 +      { pinmux(8), 8, 2 },
 +      { pinmux(8), 8, 3 },
 +      { pinmux(8), 8, 4 },
 +      { pinmux(8), 8, 5 },
 +      { pinmux(8), 8, 6 },
 +      { pinmux(8), 8, 7 },
 +      { pinmux(9), 8, 0 },
 +      { pinmux(7), 8, 1 },
 +      { pinmux(7), 8, 2 },
 +      { pinmux(5), 8, 1 },    /* GP6[0] */
 +      { pinmux(5), 8, 2 },
 +      { pinmux(5), 8, 3 },
 +      { pinmux(5), 8, 4 },
 +      { pinmux(5), 8, 5 },
 +      { pinmux(5), 8, 6 },
 +      { pinmux(5), 8, 7 },
 +      { pinmux(6), 8, 0 },
 +      { pinmux(6), 8, 1 },
 +      { pinmux(6), 8, 2 },
 +      { pinmux(6), 8, 3 },
 +      { pinmux(6), 8, 4 },
 +      { pinmux(6), 8, 5 },
 +      { pinmux(6), 8, 6 },
 +      { pinmux(6), 8, 7 },
 +      { pinmux(7), 8, 0 },
 +      { pinmux(1), 8, 0 },    /* GP7[0] */
 +      { pinmux(1), 8, 1 },
 +      { pinmux(1), 8, 2 },
 +      { pinmux(1), 8, 3 },
 +      { pinmux(1), 8, 4 },
 +      { pinmux(1), 8, 5 },
 +      { pinmux(1), 8, 6 },
 +      { pinmux(1), 8, 7 },
 +      { pinmux(2), 8, 0 },
 +      { pinmux(2), 8, 1 },
 +      { pinmux(2), 8, 2 },
 +      { pinmux(2), 8, 3 },
 +      { pinmux(2), 8, 4 },
 +      { pinmux(2), 8, 5 },
 +      { pinmux(0), 1, 0 },
 +      { pinmux(0), 1, 1 },
 +};
++#else /* CONFIG_SOC_DA8XX && CONFIG_SOC_DA850 */
  static const struct pinmux_config gpio_pinmux[] = {
        { pinmux(1), 8, 7 },    /* GP0[0] */
        { pinmux(1), 8, 6 },
        { pinmux(18), 8, 3 },
        { pinmux(18), 8, 2 },
  };
- #endif
 -#else
++#endif /* CONFIG_SOC_DA8XX && !CONFIG_SOC_DA850 */
++#else /* !CONFIG_SOC_DA8XX */
+ #define davinci_configure_pin_mux(a, b)
 -#endif
++#endif /* CONFIG_SOC_DA8XX */
  
  int gpio_request(unsigned gpio, const char *label)
  {
diff --combined drivers/mmc/bfin_sdh.c
index 81d8e5432f941f94d7eea769bb09f4309d9fd8eb,0f98b961fd4418b5ac676473a8ee9d0d0bd4671c..26311741f5fa8b83bb51a9b1a1811571508b5c00
@@@ -19,9 -19,7 +19,7 @@@
  #include <asm/mach-common/bits/sdh.h>
  #include <asm/mach-common/bits/dma.h>
  
- #if defined(__ADSPBF50x__) || defined(__ADSPBF51x__)
- # define bfin_read_SDH_PWR_CTL                bfin_read_RSI_PWR_CONTROL
- # define bfin_write_SDH_PWR_CTL               bfin_write_RSI_PWR_CONTROL
+ #if defined(__ADSPBF50x__) || defined(__ADSPBF51x__) || defined(__ADSPBF60x__)
  # define bfin_read_SDH_CLK_CTL                bfin_read_RSI_CLK_CONTROL
  # define bfin_write_SDH_CLK_CTL               bfin_write_RSI_CLK_CONTROL
  # define bfin_write_SDH_ARGUMENT      bfin_write_RSI_ARGUMENT
  # define bfin_write_SDH_STATUS_CLR    bfin_write_RSI_STATUSCL
  # define bfin_read_SDH_CFG            bfin_read_RSI_CONFIG
  # define bfin_write_SDH_CFG           bfin_write_RSI_CONFIG
+ # if defined(__ADSPBF60x__)
+ # define bfin_read_SDH_BLK_SIZE               bfin_read_RSI_BLKSZ
+ # define bfin_write_SDH_BLK_SIZE      bfin_write_RSI_BLKSZ
+ # define bfin_write_DMA_START_ADDR    bfin_write_DMA10_START_ADDR
+ # define bfin_write_DMA_X_COUNT               bfin_write_DMA10_X_COUNT
+ # define bfin_write_DMA_X_MODIFY      bfin_write_DMA10_X_MODIFY
+ # define bfin_write_DMA_CONFIG                bfin_write_DMA10_CONFIG
+ # else
+ # define bfin_read_SDH_PWR_CTL                bfin_read_RSI_PWR_CONTROL
+ # define bfin_write_SDH_PWR_CTL               bfin_write_RSI_PWR_CONTROL
  # define bfin_write_DMA_START_ADDR    bfin_write_DMA4_START_ADDR
  # define bfin_write_DMA_X_COUNT               bfin_write_DMA4_X_COUNT
  # define bfin_write_DMA_X_MODIFY      bfin_write_DMA4_X_MODIFY
  # define bfin_write_DMA_CONFIG                bfin_write_DMA4_CONFIG
+ # endif
  # define PORTMUX_PINS \
        { P_RSI_DATA0, P_RSI_DATA1, P_RSI_DATA2, P_RSI_DATA3, P_RSI_CMD, P_RSI_CLK, 0 }
  #elif defined(__ADSPBF54x__)
@@@ -70,6 -79,9 +79,9 @@@ sdh_send_cmd(struct mmc *mmc, struct mm
                sdh_cmd |= CMD_RSP;
        if (flags & MMC_RSP_136)
                sdh_cmd |= CMD_L_RSP;
+ #ifdef RSI_BLKSZ
+       sdh_cmd |= CMD_DATA0_BUSY;
+ #endif
  
        bfin_write_SDH_ARGUMENT(arg);
        bfin_write_SDH_COMMAND(sdh_cmd);
  
        bfin_write_SDH_STATUS_CLR(CMD_SENT_STAT | CMD_RESP_END_STAT |
                                CMD_TIMEOUT_STAT | CMD_CRC_FAIL_STAT);
+ #ifdef RSI_BLKSZ
+       /* wait till card ready */
+       while (!(bfin_read_RSI_ESTAT() & SD_CARD_READY))
+               continue;
+       bfin_write_RSI_ESTAT(SD_CARD_READY);
+ #endif
  
        return ret;
  }
@@@ -113,16 -131,19 +131,19 @@@ static int sdh_setup_data(struct mmc *m
  {
        u16 data_ctl = 0;
        u16 dma_cfg = 0;
-       int ret = 0;
        unsigned long data_size = data->blocksize * data->blocks;
  
        /* Don't support write yet. */
        if (data->flags & MMC_DATA_WRITE)
                return UNUSABLE_ERR;
+ #ifndef RSI_BLKSZ
        data_ctl |= ((ffs(data_size) - 1) << 4);
+ #else
+       bfin_write_SDH_BLK_SIZE(data_size);
+ #endif
        data_ctl |= DTX_DIR;
        bfin_write_SDH_DATA_CTL(data_ctl);
-       dma_cfg = WDSIZE_32 | RESTART | WNR | DMAEN;
+       dma_cfg = WDSIZE_32 | PSIZE_32 | RESTART | WNR | DMAEN;
  
        bfin_write_SDH_DATA_TIMER(-1);
  
        /* kick off transfer */
        bfin_write_SDH_DATA_CTL(bfin_read_SDH_DATA_CTL() | DTX_DMA_E | DTX_E);
  
-       return ret;
+       return 0;
  }
  
  
@@@ -147,13 -168,23 +168,23 @@@ static int bfin_sdh_request(struct mmc 
        u32 status;
        int ret = 0;
  
+       if (data) {
+               ret = sdh_setup_data(mmc, data);
+               if (ret)
+                       return ret;
+       }
        ret = sdh_send_cmd(mmc, cmd);
        if (ret) {
+               bfin_write_SDH_COMMAND(0);
+               bfin_write_DMA_CONFIG(0);
+               bfin_write_SDH_DATA_CTL(0);
+               SSYNC();
                printf("sending CMD%d failed\n", cmd->cmdidx);
                return ret;
        }
        if (data) {
-               ret = sdh_setup_data(mmc, data);
                do {
                        udelay(1);
                        status = bfin_read_SDH_STATUS();
@@@ -208,10 -239,12 +239,12 @@@ static void bfin_sdh_set_ios(struct mm
  
        if (mmc->bus_width == 4) {
                cfg = bfin_read_SDH_CFG();
-               cfg &= ~0x80;
-               cfg |= 0x40;
+ #ifndef RSI_BLKSZ
+               cfg &= ~PD_SDDAT3;
+ #endif
+               cfg |= PUP_SDDAT3;
                bfin_write_SDH_CFG(cfg);
-               clk_ctl |= WIDE_BUS;
+               clk_ctl |= WIDE_BUS_4;
        }
        bfin_write_SDH_CLK_CTL(clk_ctl);
        sdh_set_clk(mmc->clock);
  static int bfin_sdh_init(struct mmc *mmc)
  {
        const unsigned short pins[] = PORTMUX_PINS;
-       u16 pwr_ctl = 0;
+       int ret;
  
        /* Initialize sdh controller */
-       peripheral_request_list(pins, "bfin_sdh");
+       ret = peripheral_request_list(pins, "bfin_sdh");
+       if (ret < 0)
+               return ret;
  #if defined(__ADSPBF54x__)
        bfin_write_DMAC1_PERIMUX(bfin_read_DMAC1_PERIMUX() | 0x1);
  #endif
        bfin_write_SDH_CFG(bfin_read_SDH_CFG() | CLKS_EN);
        /* Disable card detect pin */
        bfin_write_SDH_CFG((bfin_read_SDH_CFG() & 0x1F) | 0x60);
-       pwr_ctl |= ROD_CTL;
-       pwr_ctl |= PWR_ON;
-       bfin_write_SDH_PWR_CTL(pwr_ctl);
+ #ifndef RSI_BLKSZ
+       bfin_write_SDH_PWR_CTL(PWR_ON | ROD_CTL);
+ #else
+       bfin_write_SDH_CFG(bfin_read_SDH_CFG() | PWR_ON);
+ #endif
        return 0;
  }
  
@@@ -251,7 -287,6 +287,7 @@@ int bfin_mmc_init(bd_t *bis
        mmc->set_ios = bfin_sdh_set_ios;
        mmc->init = bfin_sdh_init;
        mmc->getcd = NULL;
 +      mmc->getwp = NULL;
        mmc->host_caps = MMC_MODE_4BIT;
  
        mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34;
diff --combined include/configs/ea20.h
index 03dfe0af2d02c3fd2943d423b16d50c1e7335a72,a8c08e8d95d15b19f94b7da8669018632adf41f3..90fc7c58d2053dad22377f3ffd112fef9d839fb4
@@@ -42,7 -42,6 +42,7 @@@
  #define CONFIG_MACH_DAVINCI_DA850_EVM
  #define CONFIG_ARM926EJS              /* arm926ejs CPU core */
  #define CONFIG_SOC_DA8XX              /* TI DA8xx SoC */
 +#define CONFIG_SOC_DA850              /* TI DA850 SoC */
  #define CONFIG_SYS_CLK_FREQ           clk_get(DAVINCI_ARM_CLKID)
  #define CONFIG_SYS_OSCIN_FREQ         24000000
  #define CONFIG_SYS_TIMERBASE          DAVINCI_TIMER0_BASE
                "bootm ${kernel_addr_r}\0"                              \
        "net_self_load=tftp ${kernel_addr_r} ${bootfile};"              \
                "tftp ${ramdisk_addr_r} ${ramdisk_file};\0"             \
-       "nand_nand=ubi part nand0,${as};ubifsmount rootfs;"             \
+       "nand_nand=ubi part nand0,${as};ubifsmount ubi:rootfs;"         \
                "ubifsload ${kernel_addr_r} /boot/uImage;"              \
                "ubifsumount; run nandargs addip addtty "               \
                "addmtd addmisc addmem;clrlogo;"                        \
                "bootm ${kernel_addr_r}\0"                              \
-       "nand_nandrw=ubi part nand0,${as};ubifsmount rootfs;"           \
+       "nand_nandrw=ubi part nand0,${as};ubifsmount ubi:rootfs;"       \
                "ubifsload ${kernel_addr_r} /boot/uImage;"              \
                "ubifsumount; run nandrwargs addip addtty "             \
                "addmtd addmisc addmem;clrlogo;"                        \
        "u-boot=" __stringify(CONFIG_HOSTNAME) "/u-boot.bin\0"          \
        "load_magic=if sf probe 0;then sf "                             \
                "read c0000000 0x10000 0x60000;fi\0"                    \
-       "load_nand=ubi part nand0,${as};ubifsmount rootfs;"             \
+       "load_nand=ubi part nand0,${as};ubifsmount ubi:rootfs;"         \
                "if ubifsload c0000014 /boot/u-boot.bin;"               \
                "then mw c0000008 ${filesize};else echo Error reading"  \
                " u-boot from nand!;fi\0"                               \