
Hi Eric,
On Wed, Dec 2, 2015 at 5:28 PM, Eric Nelson eric@nelint.com wrote:
You're hitting the block from a different path than we are and it will be tomorrow before I can get an offending board on my desk.
What happens if you "#if 0" around this block?
Then the error changes to:
=> mmc erase 4000 1000
MMC erase: dev # 2, block # 16384, count 4096 ... Timeout waiting card ready 0 blocks erased: ERROR
http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/mmc/fsl_esdhc.c;h=c5054d66...
Do you know which command is failing? It should be one of these: MMC_CMD_ERASE_GROUP_START MMC_CMD_ERASE_GROUP_END MMC_CMD_ERASE
It is MMC_CMD_ERASE as shown below.
http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/mmc/mmc_write.c;h=7aea7e94...
I think you can instrument and find out using this:
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 53084a7..8f5d9e1 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -105,6 +105,9 @@ int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) #else ret = mmc->cfg->ops->send_cmd(mmc, cmd, data); #endif
if (ret)
printf("error %d from CMD_SEND:%d\n", ret, cmd->cmdidx);
return ret;
Applying this change on top of head I get:
=> mmc erase 4000 1000
MMC erase: dev # 2, block # 16384, count 4096 ... Timeout waiting for DAT0 to go high! error -19 from CMD_SEND:38 mmc erase failed 0 blocks erased: ERROR =>
Thanks