From mboxrd@z Thu Jan 1 00:00:00 1970 From: kostap at marvell.com Date: Mon, 19 Dec 2016 17:14:43 +0200 Subject: [U-Boot] [PATCH 1/7] arm64: mvebu: Update bubt command MMC block device access In-Reply-To: <1482160489-4148-1-git-send-email-kostap@marvell.com> References: <1482160489-4148-1-git-send-email-kostap@marvell.com> Message-ID: <1482160489-4148-2-git-send-email-kostap@marvell.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Konstantin Porotchkin 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 Cc: Stefan Roese Cc: Nadav Haklai Cc: Neta Zur Hershkovits Cc: Omri Itach Cc: Igal Liberman Cc: Haim Boot Cc: Hanna Hawa --- 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 #include #include +#include #include #include @@ -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