
From: Konstantin Porotchkin kostap@marvell.com
Update the MMC block device access code in bubt command implementation according to the latest MMC driver changes
Change-Id: Ie852ceefa0b040ffe1362bdb7815fcea9b2d923b Signed-off-by: Konstantin Porotchkin kostap@marvell.com Cc: Stefan Roese sr@denx.de Cc: Nadav Haklai nadavh@marvell.com Cc: Neta Zur Hershkovits neta@marvell.com Cc: Omri Itach omrii@marvell.com Cc: Igal Liberman igall@marvell.com Cc: Haim Boot hayim@marvell.com Cc: Hanna Hawa hannah@marvell.com --- cmd/mvebu/bubt.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c index 1cbfcf0..0ac2e63 100644 --- a/cmd/mvebu/bubt.c +++ b/cmd/mvebu/bubt.c @@ -18,6 +18,7 @@ #include <usb.h> #include <fs.h> #include <mmc.h> +#include <blk.h> #include <u-boot/sha1.h> #include <u-boot/sha256.h>
@@ -111,6 +112,7 @@ static ulong get_load_addr(void) static int mmc_burn_image(size_t image_size) { struct mmc *mmc; + struct blk_desc *blk_desc; lbaint_t start_lba; lbaint_t blk_count; ulong blk_written; @@ -144,13 +146,18 @@ static int mmc_burn_image(size_t image_size) * MMC/eMMC boots from LBA-0 */ start_lba = IS_SD(mmc) ? 1 : 0; - blk_count = image_size / mmc->block_dev.blksz; - if (image_size % mmc->block_dev.blksz) + blk_count = image_size / mmc->write_bl_len; + if (image_size % mmc->write_bl_len) blk_count += 1;
- blk_written = mmc->block_dev.block_write(mmc_dev_num, - start_lba, blk_count, - (void *)get_load_addr()); + blk_desc = mmc_get_blk_desc(mmc); + if (!blk_desc) { + printf("Error - failed to obtain block descriptor\n"); + return -ENODEV; + } + blk_written = blk_dwrite(blk_desc, start_lba, blk_count, + (void *)get_load_addr()); + if (blk_written != blk_count) { printf("Error - written %#lx blocks\n", blk_written); return -ENOSPC;