[U-Boot] [bug report] sunxi: booting from eMMC
Alexandr Bochkarev
aneox.inbox at gmail.com
Fri Nov 4 23:57:21 CET 2016
I have found problem place, this patch with hotfix allows to boot Allwinner A20 from eMMC.
Dont know how to full fix it.
commit 9fa5bf30e95ead17eb0c50375b305fb8615427a9
Author: root <aneox.inbox at gmail.com>
Date: Sat Nov 5 04:41:30 2016 +0600
allow to boot A20 from eMMC, fix
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index 6953acc..87cf964 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -293,11 +293,17 @@ static int mmc_trans_data_by_cpu(struct mmc *mmc, struct mmc_data *data)
}
static int mmc_rint_wait(struct mmc *mmc, unsigned int timeout_msecs,
- unsigned int done_bit, const char *what)
+ unsigned int done_bit, const char *what, struct mmc_cmd *cmd)
{
struct sunxi_mmc_host *mmchost = mmc->priv;
unsigned int status;
+ if (cmd->cmdidx == MMC_CMD_SWITCH)
+ {
+ printf("mmc_rint_wait: fix me\n");
+ return 0;
+ }
+
do {
status = readl(&mmchost->reg->rint);
if (!timeout_msecs-- ||
@@ -380,7 +386,7 @@ static int sunxi_mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
}
}
- error = mmc_rint_wait(mmc, 1000, SUNXI_MMC_RINT_COMMAND_DONE, "cmd");
+ error = mmc_rint_wait(mmc, 1000, SUNXI_MMC_RINT_COMMAND_DONE, "cmd", cmd);
if (error)
goto out;
@@ -391,7 +397,7 @@ static int sunxi_mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
data->blocks > 1 ?
SUNXI_MMC_RINT_AUTO_COMMAND_DONE :
SUNXI_MMC_RINT_DATA_OVER,
- "data");
+ "data", cmd);
if (error)
goto out;
}
More information about the U-Boot
mailing list