copy_flash: update window size
When a pnor partition is copied to a window, update the window size with
the actual number of blocks copied. This is required in the response of
the V2 Read Window Command.
Change-Id: I2c158df1bd261a4e62b9cbb2765e7623a7fb3dc9
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/mboxd_flash_physical.c b/mboxd_flash_physical.c
index 55624d9..69d2f3c 100644
--- a/mboxd_flash_physical.c
+++ b/mboxd_flash_physical.c
@@ -240,13 +240,15 @@
* @offset: The flash offset to copy from (bytes)
* @mem: The buffer to copy into (must be of atleast 'size' bytes)
* @size: The number of bytes to copy
- *
- * Return: 0 on success otherwise negative error code
+ * Return: Number of bytes copied on success, otherwise negative error
+ * code. copy_flash will copy at most 'size' bytes, but it may
+ * copy less.
*/
-int copy_flash(struct mbox_context *context, uint32_t offset, void *mem,
- uint32_t size)
+int64_t copy_flash(struct mbox_context *context, uint32_t offset, void *mem,
+ uint32_t size)
{
int32_t size_read;
+ void *start = mem;
MSG_DBG("Copy flash to %p for size 0x%.8x from offset 0x%.8x\n",
mem, size, offset);
@@ -269,7 +271,7 @@
mem += size_read;
} while (size && size_read);
- return size ? -MBOX_R_SYSTEM_ERROR : 0;
+ return size_read ? mem - start : -MBOX_R_SYSTEM_ERROR;
}
/*