[U-Boot] [PATCH] dfu:ext4:fix Fix ext4{read|write} command formatting

In the following commit: "dfu: Support larger than memory transfers." SHA1: ea2453d56b8860dbd18a3c517531ffc8dcb5c839
The ext4{read|write} command formatting has been changed. It removed a mandatory [sizebytes] parameter.
It prevented from ext4 update via dfu. This commit restored the previous behaviour.
Signed-off-by: Lukasz Majewski l.majewski@samsung.com Signed-off-by: Kyungmin Park kyungmin.park@samsung.com Cc: Tom Rini trini@ti.com Cc: Pantelis Antoniou panto@antoniou-consulting.com --- drivers/dfu/dfu_mmc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c index e2f3978..032c6a7 100644 --- a/drivers/dfu/dfu_mmc.c +++ b/drivers/dfu/dfu_mmc.c @@ -94,10 +94,10 @@ static int mmc_file_op(enum dfu_mmc_op op, struct dfu_entity *dfu, sprintf(cmd_buf + strlen(cmd_buf), " %lx", *len); break; case DFU_FS_EXT4: - sprintf(cmd_buf, "ext4%s mmc %d:%d 0x%x /%s", + sprintf(cmd_buf, "ext4%s mmc %d:%d 0x%x /%s %ld", op == DFU_OP_READ ? "load" : "write", dfu->data.mmc.dev, dfu->data.mmc.part, - (unsigned int) buf, dfu->name); + (unsigned int) buf, dfu->name, *len); break; default: printf("%s: Layout (%s) not (yet) supported!\n", __func__,

Hi Tom,
In the following commit: "dfu: Support larger than memory transfers." SHA1: ea2453d56b8860dbd18a3c517531ffc8dcb5c839
The ext4{read|write} command formatting has been changed. It removed a mandatory [sizebytes] parameter.
It prevented from ext4 update via dfu. This commit restored the previous behaviour.
Tom, please drop this patch, since it only fixes DFU eMMC write.
Unfortunately after dfu.c code changes to support NAND and arbitrary files transmission, the eMMC ext4 read needs to be fixed.
I will prepare one patch set, which fixes read and write.

On Wed, Jun 26, 2013 at 04:41:28PM +0200, Lukasz Majewski wrote:
Hi Tom,
In the following commit: "dfu: Support larger than memory transfers." SHA1: ea2453d56b8860dbd18a3c517531ffc8dcb5c839
The ext4{read|write} command formatting has been changed. It removed a mandatory [sizebytes] parameter.
It prevented from ext4 update via dfu. This commit restored the previous behaviour.
Tom, please drop this patch, since it only fixes DFU eMMC write.
Unfortunately after dfu.c code changes to support NAND and arbitrary files transmission, the eMMC ext4 read needs to be fixed.
I will prepare one patch set, which fixes read and write.
Ouch, sorry. I thought I had tested those cases still.

On Wed, 26 Jun 2013 11:05:31 -0400, Tom Rini wrote:
On Wed, Jun 26, 2013 at 04:41:28PM +0200, Lukasz Majewski wrote:
Hi Tom,
In the following commit: "dfu: Support larger than memory transfers." SHA1: ea2453d56b8860dbd18a3c517531ffc8dcb5c839
The ext4{read|write} command formatting has been changed. It removed a mandatory [sizebytes] parameter.
It prevented from ext4 update via dfu. This commit restored the previous behaviour.
Tom, please drop this patch, since it only fixes DFU eMMC write.
Unfortunately after dfu.c code changes to support NAND and arbitrary files transmission, the eMMC ext4 read needs to be fixed.
I will prepare one patch set, which fixes read and write.
Ouch, sorry. I thought I had tested those cases still.
With RAW_ADDR from very beginning, we can read chunk by chunk when proper request from DFU arrives.
With e.g. DFU_FS_EXT4 we first need to read all data from file system to a buffer (dfu_buf) and then give it to DFU gadget piece by piece.
I will fix this and share patches.
participants (2)
-
Lukasz Majewski
-
Tom Rini