Revert "Terminate multi-block SD card transfers using auto-CMD12"

This reverts commit 5cafeaed680f438821ee460252b176cd0cd345f0.
Revert "add init_completed variable to struct mmc"

This reverts commit c35642cd5e7b05f0af7fb4dab115714172942e90.
ENGR00133579 Uboot ESDHCv3 Remove workaround for DLL

On MX50 TO 1.0, DLL did not work in slave mode, so
slave override mode was used instead. Removed this
workaround, except for TO 1.0. Starting with TO 1.1,
the DLL in slave mode is working as expected.

Signed-off-by: Anish Trivedi <anish@freescale.com>
Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00136038: Remove config CONFIG_EMMC_DDR_MODE

1. As we can check DDR dynamically,
remove CONFIG_EMMC_DDR_MODE in mmc.c.
2. Add config CONFIG_EMMC_DDR_PORT_DETECT
config for some boards that only some board support DDR.

Signed-off-by: Terry Lv <r65388@freescale.com>

Conflicts:

	include/configs/mx53_arm2.h
	include/configs/mx53_arm2_ddr3.h
ENGR00136863-1: Change mmc framework architecture.

Change mmc framework architecture.
Mainly for code clean and restructure.

Mainly merge our code with community code.
Based on commit 17b4c8e9eb30e3eb305baef98eb23325e61db592.

Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00136863-2: Fix mx53 CMD12 issue.

As in mx53 and lster socs, when using CMD12, cmdtype need to be set
to ABORT, otherwise, next read command will hang.

This is a software Software Restrictions in spec 29.7.8.

  For pre-defined multi-block read operation,
  i.e.,
  The number of blocks to read has been defined by previous
CMD23 for MMC, or pre-defined number of blocks in CMD53
for SDIO/SDCombo, or whatever multi-block read without abort
command at card side, an abort command, either automatic
or manual CMD12/CMD52, is still required by ESDHCV2 after the
pre-defined number of blocks are done, to drive the internal
state machine to idle mode.

  In this case, the card may not respond to this extra
abort command and ESDHCV2 gets Response Timeout.

  It is recommended to manually send an abort command with
RSPTYP[1:0] both bits cleared.

Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00140873: MMC may wrongly regconize 2GB eMMC as high capacity

MMC driver may wrongly regconize some 2GB eMMC as high capacity card.

This patch is picked from community.

A non-zero value of SEC_COUNT does not indicate that the card is sector
addressed. According to the MMC specification, cards
with a densitygreater than 2GiB are sector addressed.

Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00141556: Fix copyright issue

We're following the following rules:
1. FSL copyright should be added for freescale added and modified files.
2. FSL copyright should go after existing copyrights.
3. For Duplicate FSL copyright, Our copyright will go after that also.
4. FSL copyright should not include personal names as part.
5. For only FSL copyright, "All rights reserved" is not mattered.

Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00141335-1: Use bypass way to set ddr dll in mx53

Usually dll setup for eMMC4.4 DDR is required to polling SLV_LOCK status
bit. However the system hangs when polling for SLV_LOCK bit.
The temporary workaround is to force slave override mode to bypass it.

Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00142995 MX50: Enable uSDHC instead of eSDHC for SDR mode

On SD3 on MX50, there is an option to choose eSDHC or uSDHC controller.
By default eSDHC is selected. However, eSDHC shows some borderline timing
in SDR mode at 50 MHz, whereas uSDHC shows borderline timing in DDR mode
at 50 MHz. Therefore, add a compile time option to uboot for MX50 to
select uSDHC in SDR mode or eSDHC in DDR mode on SD3 port.

By default the compile time option, CONFIG_MX50_ENABLE_USDHC_SDR,
is commented out in the include/configs/mx50_<board>.h file to
select eSDHC with DDR mode enabled. Uncomment the define to select
uSDHC with only SDR mode enabled.

Also increased max frequency supported by ESDHC to 52 MHz instead
of 50 MHz.

Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00144424 MX6: enable uboot for ARM2(SABREAUTO) CPU board

Use 528M DDR script
Disable L2 cache because rom enable L2 cache when use plug-in
Fix usdhc pad settings
Remove mac address hardcode

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Richard Zhu <r65037@freescale.com>
Signed-off-by: Terry Lv <r65388@freescale.com>
Signed-off-by: Anish Trivedi <anish@freescale.com>
Signed-off-by: Jason Liu <r64343@freescale.com>

Conflicts:

	include/asm-arm/mach-types.h
ENGR00139206 MX6 USDHC eMMC 4.4 support

New bit definitions in USDHC.
Added is_usdhc variable to fsl_esdhc_cfg to distinguish between ESDHC
and USDHC.
Enabled DDR mode support in USDHC.
Created a config to customize target delay for DDR mode.
Modified USDHC pad settings to make DDR mode work for all emmcs at 50 MHz.

Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00152755 MX6 Switch DRAM init script from plugin to DCD for emmc fastboot

ROM requires DCD table instead of plugin to initialize DRAM if emmc fastboot
mode is to be used. Therefore, switched the DRAM script from plugin to
DCD table. The DCD table created is based on the following RVD script:
Arik_init_DDR3_528MHz_002.inc found at
http://compass.freescale.net/livelink/livelink?func=ll&objId=222928845

When fastboot mode is used by ROM, the MMC_BOOT register of USDHC does not
get reset when RSTA bit is set by uboot driver. Therefore, need to write 0
to it manually during driver init. This brings USDHC out of fastboot mode,
allowing normal communication with emmc to proceed in uboot.

Changed comments for DLL delay to be more accurate.

Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00154666-3: Align u-boot mmc command with community

This patch will enhance mmc command.
1. Add erase command.
2. Abandon dev_no in mmc command. User need to switch slot with "mmc
dev" command.
3. Add mmc part switch command. Enhance partition switch support.
4. Add mmc bootpart. Boot partition support is more flexible.

Signed-off-by: Terry Lv <r65388@freescale.com>
ENGR00156304 eMMC: Need to update partition config after changing boot partition

After enabling boot partition on an eMMC using "mmc bootpart" command, the
partition configuration variable that is supposed to track this value on the
eMMC is not updated. This leads to stale and possibly inaccurate boot partition
number being printed when "mmcinfo" command is used, thereby confusing the user.

The fix is to update the part_config variable of mmc struct with the new value
that was just written to the eMMC.

Also removed condition that restricted boot_bus_width programming (for fastboot)
to eMMC with DDR support only. Now, even non-DDR capable eMMCs can be programmed
for fastboot (in SDR mode).

Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00156405 ESDHC: Add workaround for auto-clock gate errata ENGcm03648

The errata, not applicable to USDHC, causes ESDHC to shut off clock to
the card when auto-clock gating is enabled for commands with busy
signalling and no data phase. The card might require the clock to exit
the busy state, so the workaround is to disable the auto-clock gate
bits in SYSCTL register for such commands. The workaround also entails
polling on DAT0 bit in the PRSSTAT register to learn when busy state is
complete. Auto-clock gating is re-enabled at the end of busy state.

Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00156670-1 ESDHC/USDHC: Remove delay before each cmd and some bug fixes

Removed delay of 10 ms before each command. There should not be
a need to have this delay after the ENGR00156405 patch that polls
until card is not busy anymore before proceeding to next cmd.

Added poll on reset bits of controller after the bits are set to
wait until they clear before proceeding further.

Signed-off-by: Tony Lin <tony.lin@freescale.com>
Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00156670-2 MMC: Fixed some bugs in common code

Need to send RCA when sending CMD13.

Cannot use print_size function when displaying card capacity
because it expects a 32 bit integer as input, while mmc->capacity
is a 64 bit integer. There is loss of information leading to incorrect
capacities being displayed for "mmcinfo" cmd. Changed it to simply
print the entire 64 bit integer, which is the number of bytes.

Signed-off-by: Tony Lin <tony.lin@freescale.com>
Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00139221 USDHC Add SDXC UHS-I support

Modified MMC library for UHS-I command sequence
Added support to USDHC driver for UHS-I

Signed-off-by: Anish Trivedi <anish@freescale.com>
ENGR00161852: remove u-boot build warnings for mx6q

Remove u-boot build warnings for mx6q.

Signed-off-by: Terry Lv <r65388@freescale.com>

Conflicts:

	board/freescale/mx6q_sabrelite/mx6q_sabrelite.c
	drivers/mtd/spi/imx_spi_nor_m25pxx.c
	drivers/net/mxc_fec.c