From: Steve Rae <srae@broadcom.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/5] fastboot: sparse: remove session-id logic
Date: Tue, 7 Jun 2016 11:19:35 -0700 [thread overview]
Message-ID: <1465323579-18928-2-git-send-email-srae@broadcom.com> (raw)
In-Reply-To: <1465323579-18928-1-git-send-email-srae@broadcom.com>
This "session-id" alogrithm is not required, and currently corrupts
the stored image whenever more the one "session" is required.
Signed-off-by: Steve Rae <srae@broadcom.com>
---
for more information, see the thread starting at [1]
[1] http://lists.denx.de/pipermail/u-boot/2016-April/251889.html
Changes in v2:
- series rebased onto v2016.07-rc1
common/fb_mmc.c | 8 +++-----
common/fb_nand.c | 4 ++--
common/image-sparse.c | 21 ++++-----------------
drivers/usb/gadget/f_fastboot.c | 16 ++--------------
include/fb_mmc.h | 5 ++---
include/fb_nand.h | 5 ++---
include/image-sparse.h | 2 +-
7 files changed, 16 insertions(+), 45 deletions(-)
diff --git a/common/fb_mmc.c b/common/fb_mmc.c
index e3abcc8..9e53adb 100644
--- a/common/fb_mmc.c
+++ b/common/fb_mmc.c
@@ -97,9 +97,8 @@ static void write_raw_image(struct blk_desc *dev_desc, disk_partition_t *info,
fastboot_okay(response_str, "");
}
-void fb_mmc_flash_write(const char *cmd, unsigned int session_id,
- void *download_buffer, unsigned int download_bytes,
- char *response)
+void fb_mmc_flash_write(const char *cmd, void *download_buffer,
+ unsigned int download_bytes, char *response)
{
struct blk_desc *dev_desc;
disk_partition_t info;
@@ -153,8 +152,7 @@ void fb_mmc_flash_write(const char *cmd, unsigned int session_id,
printf("Flashing sparse image at offset " LBAFU "\n",
info.start);
- store_sparse_image(&sparse, &sparse_priv, session_id,
- download_buffer);
+ store_sparse_image(&sparse, &sparse_priv, download_buffer);
} else {
write_raw_image(dev_desc, &info, cmd, download_buffer,
download_bytes);
diff --git a/common/fb_nand.c b/common/fb_nand.c
index e55ea38..c17e2f0 100644
--- a/common/fb_nand.c
+++ b/common/fb_nand.c
@@ -126,7 +126,7 @@ static int fb_nand_sparse_write(struct sparse_storage *storage,
return written / storage->block_sz;
}
-void fb_nand_flash_write(const char *partname, unsigned int session_id,
+void fb_nand_flash_write(const char *partname,
void *download_buffer, unsigned int download_bytes,
char *response)
{
@@ -161,7 +161,7 @@ void fb_nand_flash_write(const char *partname, unsigned int session_id,
sparse.name = part->name;
sparse.write = fb_nand_sparse_write;
- ret = store_sparse_image(&sparse, &sparse_priv, session_id,
+ ret = store_sparse_image(&sparse, &sparse_priv,
download_buffer);
} else {
printf("Flashing raw image at offset 0x%llx\n",
diff --git a/common/image-sparse.c b/common/image-sparse.c
index 2bf737b..893c68b 100644
--- a/common/image-sparse.c
+++ b/common/image-sparse.c
@@ -52,8 +52,6 @@ typedef struct sparse_buffer {
u16 type;
} sparse_buffer_t;
-static uint32_t last_offset;
-
static unsigned int sparse_get_chunk_data_size(sparse_header_t *sparse,
chunk_header_t *chunk)
{
@@ -267,8 +265,8 @@ static void sparse_put_data_buffer(sparse_buffer_t *buffer)
free(buffer);
}
-int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
- unsigned int session_id, void *data)
+int store_sparse_image(sparse_storage_t *storage,
+ void *storage_priv, void *data)
{
unsigned int chunk, offset;
sparse_header_t *sparse_header;
@@ -303,19 +301,10 @@ int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
return -EINVAL;
}
- /*
- * If it's a new flashing session, start at the beginning of
- * the partition. If not, then simply resume where we were.
- */
- if (session_id > 0)
- start = last_offset;
- else
- start = storage->start;
-
- printf("Flashing sparse image on partition %s at offset 0x%x (ID: %d)\n",
- storage->name, start * storage->block_sz, session_id);
+ puts("Flashing Sparse Image\n");
/* Start processing chunks */
+ start = storage->start;
for (chunk = 0; chunk < sparse_header->total_chunks; chunk++) {
uint32_t blkcnt;
@@ -390,7 +379,5 @@ int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
return -EIO;
}
- last_offset = start + total_blocks;
-
return 0;
}
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c
index 28b244a..ddf989c 100644
--- a/drivers/usb/gadget/f_fastboot.c
+++ b/drivers/usb/gadget/f_fastboot.c
@@ -59,7 +59,6 @@ static inline struct f_fastboot *func_to_fastboot(struct usb_function *f)
}
static struct f_fastboot *fastboot_func;
-static unsigned int fastboot_flash_session_id;
static unsigned int download_size;
static unsigned int download_bytes;
@@ -424,15 +423,6 @@ static void cb_getvar(struct usb_ep *ep, struct usb_request *req)
sprintf(str_num, "0x%08x", CONFIG_FASTBOOT_BUF_SIZE);
strncat(response, str_num, chars_left);
-
- /*
- * This also indicates the start of a new flashing
- * "session", in which we could have 1-N buffers to
- * write to a partition.
- *
- * Reset our session counter.
- */
- fastboot_flash_session_id = 0;
} else if (!strcmp_l1("serialno", cmd)) {
s = getenv("serial#");
if (s)
@@ -600,16 +590,14 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req)
strcpy(response, "FAILno flash device defined");
#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
- fb_mmc_flash_write(cmd, fastboot_flash_session_id,
- (void *)CONFIG_FASTBOOT_BUF_ADDR,
+ fb_mmc_flash_write(cmd, (void *)CONFIG_FASTBOOT_BUF_ADDR,
download_bytes, response);
#endif
#ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
- fb_nand_flash_write(cmd, fastboot_flash_session_id,
+ fb_nand_flash_write(cmd,
(void *)CONFIG_FASTBOOT_BUF_ADDR,
download_bytes, response);
#endif
- fastboot_flash_session_id++;
fastboot_tx_write_str(response);
}
#endif
diff --git a/include/fb_mmc.h b/include/fb_mmc.h
index 978a139..402ba9b 100644
--- a/include/fb_mmc.h
+++ b/include/fb_mmc.h
@@ -4,7 +4,6 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-void fb_mmc_flash_write(const char *cmd, unsigned int session_id,
- void *download_buffer, unsigned int download_bytes,
- char *response);
+void fb_mmc_flash_write(const char *cmd, void *download_buffer,
+ unsigned int download_bytes, char *response);
void fb_mmc_erase(const char *cmd, char *response);
diff --git a/include/fb_nand.h b/include/fb_nand.h
index 80ddef5..88bdf36 100644
--- a/include/fb_nand.h
+++ b/include/fb_nand.h
@@ -5,7 +5,6 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-void fb_nand_flash_write(const char *cmd, unsigned int session_id,
- void *download_buffer, unsigned int download_bytes,
- char *response);
+void fb_nand_flash_write(const char *cmd, void *download_buffer,
+ unsigned int download_bytes, char *response);
void fb_nand_erase(const char *cmd, char *response);
diff --git a/include/image-sparse.h b/include/image-sparse.h
index 0382f5b..a2b0694 100644
--- a/include/image-sparse.h
+++ b/include/image-sparse.h
@@ -32,4 +32,4 @@ static inline int is_sparse_image(void *buf)
}
int store_sparse_image(sparse_storage_t *storage, void *storage_priv,
- unsigned int session_id, void *data);
+ void *data);
--
1.8.5
next prev parent reply other threads:[~2016-06-07 18:19 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-07 18:19 [U-Boot] [PATCH v2 0/5] Update fastboot sparse image handling Steve Rae
2016-06-07 18:19 ` Steve Rae [this message]
2016-06-28 1:12 ` [U-Boot] [U-Boot, v2, 1/5] fastboot: sparse: remove session-id logic Tom Rini
2016-06-07 18:19 ` [U-Boot] [PATCH v2 2/5] fastboot: sparse: resync common/image-sparse.c (part 1) Steve Rae
2016-06-15 8:18 ` Maxime Ripard
2016-06-16 17:29 ` Steve Rae
2016-06-22 19:36 ` Maxime Ripard
2016-06-22 21:44 ` Tom Rini
2016-06-28 1:12 ` [U-Boot] [U-Boot, v2, " Tom Rini
2016-06-07 18:19 ` [U-Boot] [PATCH v2 3/5] fastboot: sparse: resync common/image-sparse.c (part 2) Steve Rae
2016-06-28 1:12 ` [U-Boot] [U-Boot, v2, " Tom Rini
2016-06-07 18:19 ` [U-Boot] [PATCH v2 4/5] fastboot: sparse: implement reserve() Steve Rae
2016-06-15 8:31 ` Maxime Ripard
2016-06-28 1:12 ` [U-Boot] [U-Boot,v2,4/5] " Tom Rini
2016-06-07 18:19 ` [U-Boot] [PATCH v2 5/5] fastboot: sparse: improve CHUNK_TYPE_FILL write performance Steve Rae
2016-06-15 8:36 ` Maxime Ripard
2016-06-16 17:34 ` Steve Rae
2016-06-16 17:47 ` Steve Rae
2016-06-22 19:39 ` Maxime Ripard
2016-06-28 1:12 ` [U-Boot] [U-Boot, v2, " Tom Rini
2016-06-07 18:36 ` [U-Boot] [PATCH v2 0/5] Update fastboot sparse image handling Sergey Kubushyn
2016-06-07 18:38 ` Steve Rae
2016-06-07 20:20 ` Steve Rae
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1465323579-18928-2-git-send-email-srae@broadcom.com \
--to=srae@broadcom.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox