
On Sat, 12 Oct 2013 15:47:14 +0800 Bo Shen voice.shen@atmel.com wrote:
If won't pass value to dfu->r_left, it always 0, make no transfer, the dfu-util on host side report failed. So, before starting transfer, pass the value, then nand uploading can work.
Signed-off-by: Bo Shen voice.shen@atmel.com
drivers/dfu/dfu.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index 56b21c7..3c3ad1b 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -274,6 +274,7 @@ int dfu_read(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num) if (dfu->i_buf_start == NULL) return -ENOMEM;
dfu->r_left = dfu->data.nand.size;
Please do not add nand related code to "generic" DFU code. This can damage DFU operation with other memories (like eMMC).
Such code shall be added to dfu_nand.c file.
ret = dfu->read_medium(dfu, 0, dfu->i_buf_start,
&dfu->r_left); if (ret != 0) { debug("%s: failed to get r_left\n", __func__);
Best regards,
Lukasz Majewski