Hi Fabio, On 12/02/2015 11:52 AM, Fabio Estevam wrote: > Hi Eric, > > On Wed, Dec 2, 2015 at 4:47 PM, Eric Nelson <e...@nelint.com> wrote: >> Sure. It's a hack, but shows where we're hitting the problem >> (with the stop command). >> >> We haven't been using the "mmc erase" command, but see this when >> using ums to program eMMC. > > Ok, applied your patch, but still get: > > => mmc erase 4000 1000 > > MMC erase: dev # 2, block # 16384, count 4096 ... Timeout waiting for DAT0 to > go > high! > mmc erase failed > 0 blocks erased: ERROR > => >
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? http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/mmc/fsl_esdhc.c;h=c5054d66bdcda029f0485958c87bd5154ccee591;hb=HEAD#l390 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 http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/mmc/mmc_write.c;h=7aea7e943b9e05c8aa537653f4ae8878ecb1b04b;hb=HEAD#l17 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; } _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot