I am currently testing the board with a DDR PLL set at 400Mhz, slower that the EVM settings. So we modified the u-boot and we are getting the mmc_send_cmd: timedout waiting for cmddis! error. The 1st stage of the u-boot (MLO) is loaded successfuly and run. But looks like the ...
由于ACMD41命令为扩展命令.故需要在该命令前面发送MMC_APP_CMD(CMD55)命伽知卡后面紧跟的命令为扩展命令。 若卡不响应CMD8.则有可能是MMC卡或V2.00以下的SD卡。由于SD卡支持ACMD命令.而MMC卡不支持该命令。故当卡能正确响应时.则可判断为SD卡。判断语句如下: SdmmcSendCmd(MMC_APP_CMD,SdmmcCardRca); Sd...
U-Boot# fatls mmc 1 mmc_send_cmd : timeout: No status update Card did not respond to voltage select! ** Bad device mmc 1 ** 估计应该是时间引起的,在有打印信息时的了某种延时。去了调试信息时,时间不够造成的问题,我尝试把hsmmc.c文件中的延时加一倍后,仍然报错 /* If we fail after 1 se...
channel);7sprintf(mmc->name,"S3C_HSMMC%d", channel);8mmc->priv = &mmc_host[channel];9mmc->send_cmd =s3c_hsmmc_send_command;10mmc->set_ios =s3c_hsmmc_set_ios;11mmc->init =s3c_hsmmc_init;12//yan13mmc->voltages = MMC_VDD_32_33 |MMC_...
With some digging i found the function esdhc_send_cmd_common in drivers/mmc/fsl_esdhc.c . I looked into the IMX6 refrence manual and printed the CMD codes. I noticed that it failed on CMD 12. For this CMD i noticed there is a ifdef block in the code, with ...
define MMC_READ_SINGLE_BLOCK 17 //CMD17: READ_SINGLE_BLOCK if defined(MMC_SEND_STATUS) Copy STORAGE_PROTOCOL_COMMAND *pStorProtCmd = (STORAGE_PROTOCOL_COMMAND *)calloc(sizeof(STORAGE_PROTOCOL_COMMAND) + 100 * MIB, sizeof(unsigned char)); //STORAGE_PROTOCOL_COMMAND *pStorProtCmd = (...
mmc->send_cmd = s3c_hsmmc_send_command; //通过core层传递过来的参数,配置host寄存器(时钟,总线宽度等) mmc->set_ios = s3c_hsmmc_set_ios; //---> mmc->init = s3c_hsmmc_init; //---> //mmc工作电压范围 mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; //mmc总线4bit模式...
a. 发送CMD1指令mmc_send_op_cond() b. 设置mmc卡的总线操作集mmc_attach_bus(),传入struct mmc_bus_ops类型的实现mmc_ops。 c. 选择一个card和host都支持的最低工作电压mmc_select_voltage() d. 初始化card使其进入工作状态mmc_init_card()
在初始化时候尽量降低SPI速度.我的卡(kingston 128MB)如果没有降低速度在发CMD0正常,发CMD1时候总出错...
static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) { struct mmc_host *host = (struct mmc_host *)mmc->priv; int flags, i; unsigned int timeout; unsigned int mask; unsigned int retry = 0x100000;...