From: Konstantin Porotchkin <[email protected]>

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 <[email protected]>
Cc: Stefan Roese <[email protected]>
Cc: Nadav Haklai <[email protected]>
Cc: Neta Zur Hershkovits <[email protected]>
Cc: Omri Itach <[email protected]>
Cc: Igal Liberman <[email protected]>
Cc: Haim Boot <[email protected]>
Cc: Hanna Hawa <[email protected]>
---
 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;
-- 
2.7.4

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to