mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-25 06:19:56 +00:00
drivers/mmc: send CMD8 only for SD card in initialization
Sending CMD8 before CMD1 just causes to fetch data failure in eMMC. Check whether it's eMMC first. If it's eMMC, send CMD1 command instead. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
This commit is contained in:
parent
8ae41aec32
commit
e74dc940c6
1 changed files with 9 additions and 9 deletions
|
@ -363,8 +363,6 @@ static int mmc_reset_to_idle(void)
|
|||
{
|
||||
int ret;
|
||||
|
||||
mdelay(1);
|
||||
|
||||
/* CMD0: reset to IDLE */
|
||||
ret = mmc_send_cmd(MMC_CMD(0), 0, 0, NULL);
|
||||
if (ret != 0) {
|
||||
|
@ -413,14 +411,16 @@ static int mmc_enumerate(unsigned int clk, unsigned int bus_width)
|
|||
|
||||
mmc_reset_to_idle();
|
||||
|
||||
/* CMD8: Send Interface Condition Command */
|
||||
ret = mmc_send_cmd(MMC_CMD(8), VHS_2_7_3_6_V | CMD8_CHECK_PATTERN,
|
||||
MMC_RESPONSE_R(7), &resp_data[0]);
|
||||
|
||||
if ((ret == 0) && ((resp_data[0] & 0xffU) == CMD8_CHECK_PATTERN)) {
|
||||
ret = sd_send_op_cond();
|
||||
} else {
|
||||
if (mmc_dev_info->mmc_dev_type == MMC_IS_EMMC) {
|
||||
ret = mmc_send_op_cond();
|
||||
} else {
|
||||
/* CMD8: Send Interface Condition Command */
|
||||
ret = mmc_send_cmd(MMC_CMD(8), VHS_2_7_3_6_V | CMD8_CHECK_PATTERN,
|
||||
MMC_RESPONSE_R(7), &resp_data[0]);
|
||||
|
||||
if ((ret == 0) && ((resp_data[0] & 0xffU) == CMD8_CHECK_PATTERN)) {
|
||||
ret = sd_send_op_cond();
|
||||
}
|
||||
}
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
|
|
Loading…
Add table
Reference in a new issue