mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 20:18:54 -04:00
SD/MMC: check the card status during erase operation
Use the function 'mmc_send_status' to check the card status. only when the card is ready, driver can send the next erase command to the card, otherwise, the erase will failed: => mmc erase 0 1 MMC erase: dev # 0, block # 0, count 1 ... 1 blocks erase: OK => mmc erase 0 2 MMC erase: dev # 0, block # 0, count 2 ... mmc erase failed 1 blocks erase: ERROR => mmc erase 0 4 MMC erase: dev # 0, block # 0, count 4 ... mmc erase failed 1 blocks erase: ERROR Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com> CC: Andy Fleming <afleming@gmail.com> CC: Marek Vasut <marex@denx.de> Signed-off-by: Andy Fleming <afleming@freescale.com>
This commit is contained in:
parent
40242bc394
commit
d2d8afae33
@ -333,6 +333,7 @@ mmc_berase(int dev_num, unsigned long start, lbaint_t blkcnt)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
struct mmc *mmc = find_mmc_device(dev_num);
|
struct mmc *mmc = find_mmc_device(dev_num);
|
||||||
lbaint_t blk = 0, blk_r = 0;
|
lbaint_t blk = 0, blk_r = 0;
|
||||||
|
int timeout = 1000;
|
||||||
|
|
||||||
if (!mmc)
|
if (!mmc)
|
||||||
return -1;
|
return -1;
|
||||||
@ -352,6 +353,10 @@ mmc_berase(int dev_num, unsigned long start, lbaint_t blkcnt)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
blk += blk_r;
|
blk += blk_r;
|
||||||
|
|
||||||
|
/* Waiting for the ready status */
|
||||||
|
if (mmc_send_status(mmc, timeout))
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return blk;
|
return blk;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user