[U-Boot] [v2] mmc: send CMD0 before CMD1 for some MMC cards

When the MMC framework was added in u-boot, the mmc_go_idle was added before mmc_send_op_cond_iter in function mmc_send_op_cond annotating that some cards seemed to need this. Actually, we still need to do this in function mmc_complete_op_cond for those cards. This has been verified on Micron MTFC4GACAECN eMMC chip.
Signed-off-by: Yangbo Lu yangbo.lu@nxp.com --- drivers/mmc/mmc.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f8e5f7a..d4e96bc 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
mmc->op_cond_pending = 0; if (!(mmc->ocr & OCR_BUSY)) { + /* Some cards seem to need this */ + mmc_go_idle(mmc); + start = get_timer(0); while (1) { err = mmc_send_op_cond_iter(mmc, 1);

Hi Yangbo,
On 08/02/2016 04:33 PM, Yangbo Lu wrote:
When the MMC framework was added in u-boot, the mmc_go_idle was added before mmc_send_op_cond_iter in function mmc_send_op_cond annotating that some cards seemed to need this. Actually, we still need to do this in function mmc_complete_op_cond for those cards. This has been verified on Micron MTFC4GACAECN eMMC chip.
This patch is not bad.. but i need to verify more about entire sequence. Could you wait a bit?
Best Regards, Jaehoon Chung
Signed-off-by: Yangbo Lu yangbo.lu@nxp.com
drivers/mmc/mmc.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f8e5f7a..d4e96bc 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
mmc->op_cond_pending = 0; if (!(mmc->ocr & OCR_BUSY)) {
/* Some cards seem to need this */
mmc_go_idle(mmc);
- start = get_timer(0); while (1) { err = mmc_send_op_cond_iter(mmc, 1);

Hi Jaehoon,
Sure. And appreciate your good help :)
Best regards, Yangbo Lu
-----Original Message----- From: Jaehoon Chung [mailto:jh80.chung@samsung.com] Sent: Tuesday, August 09, 2016 7:06 AM To: Yangbo Lu; u-boot@lists.denx.de Subject: Re: [v2] mmc: send CMD0 before CMD1 for some MMC cards
Hi Yangbo,
On 08/02/2016 04:33 PM, Yangbo Lu wrote:
When the MMC framework was added in u-boot, the mmc_go_idle was added before mmc_send_op_cond_iter in function mmc_send_op_cond annotating that some cards seemed to need this. Actually, we still need to do this in function mmc_complete_op_cond for those cards. This has been verified on Micron MTFC4GACAECN eMMC chip.
This patch is not bad.. but i need to verify more about entire sequence. Could you wait a bit?
Best Regards, Jaehoon Chung
Signed-off-by: Yangbo Lu yangbo.lu@nxp.com
drivers/mmc/mmc.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f8e5f7a..d4e96bc 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
mmc->op_cond_pending = 0; if (!(mmc->ocr & OCR_BUSY)) {
/* Some cards seem to need this */
mmc_go_idle(mmc);
- start = get_timer(0); while (1) { err = mmc_send_op_cond_iter(mmc, 1);

Hi Yangbo,
On 08/09/2016 08:06 AM, Jaehoon Chung wrote:
Hi Yangbo,
On 08/02/2016 04:33 PM, Yangbo Lu wrote:
When the MMC framework was added in u-boot, the mmc_go_idle was added before mmc_send_op_cond_iter in function mmc_send_op_cond annotating that some cards seemed to need this. Actually, we still need to do this in function mmc_complete_op_cond for those cards. This has been verified on Micron MTFC4GACAECN eMMC chip.
This patch is not bad.. but i need to verify more about entire sequence. Could you wait a bit?
Applied on u-boot-mmc. Thanks!
Best Regards, Jaehoon Chung
Best Regards, Jaehoon Chung
Signed-off-by: Yangbo Lu yangbo.lu@nxp.com
drivers/mmc/mmc.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f8e5f7a..d4e96bc 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
mmc->op_cond_pending = 0; if (!(mmc->ocr & OCR_BUSY)) {
/* Some cards seem to need this */
mmc_go_idle(mmc);
- start = get_timer(0); while (1) { err = mmc_send_op_cond_iter(mmc, 1);
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
participants (2)
-
Jaehoon Chung
-
Yangbo Lu