Message ID | 1409078850-7873-5-git-send-email-srae@broadcom.com |
---|---|
State | Accepted |
Commit | e5bf9878ea743564bcc7a15a79654fe06731a1e2 |
Headers | show |
Hi Il 26/ago/2014 20:46 "Steve Rae" <srae@broadcom.com> ha scritto: > > - add capability to "fastboot flash" with sparse format images > > Signed-off-by: Steve Rae <srae@broadcom.com> > Acked-by: Lukasz Majewski <l.majewski@samsung.com> > --- > > Changes in v6: > - remove excess braces > > Changes in v5: > - use the common/aboot.c for the "sparse format" handling > > Changes in v4: > - rearranged "sparse format" support in this patchset, in order to isolate... > > Changes in v3: None > Changes in v2: None > > common/Makefile | 1 + > common/fb_mmc.c | 32 ++++++++++++++++++++++---------- > 2 files changed, 23 insertions(+), 10 deletions(-) > > diff --git a/common/Makefile b/common/Makefile > index daebe39..bc53078 100644 > --- a/common/Makefile > +++ b/common/Makefile > @@ -268,6 +268,7 @@ obj-y += stdio.o > > # This option is not just y/n - it can have a numeric value > ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV > +obj-y += aboot.o > obj-y += fb_mmc.o > endif > > diff --git a/common/fb_mmc.c b/common/fb_mmc.c > index 14d3982..fb06d8a 100644 > --- a/common/fb_mmc.c > +++ b/common/fb_mmc.c > @@ -7,16 +7,24 @@ > #include <common.h> > #include <fb_mmc.h> > #include <part.h> > +#include <aboot.h> > +#include <sparse_format.h> > > /* The 64 defined bytes plus the '\0' */ > #define RESPONSE_LEN (64 + 1) > > static char *response_str; > > -static void fastboot_resp(const char *s) > +void fastboot_fail(const char *s) > { > - strncpy(response_str, s, RESPONSE_LEN); > - response_str[RESPONSE_LEN - 1] = '\0'; > + strncpy(response_str, "FAIL", 4); > + strncat(response_str, s, RESPONSE_LEN - 4 - 1); > +} > + Change not connect to bug description. If you remove static this should go in some header. For now it's only overhead. > +void fastboot_okay(const char *s) > +{ > + strncpy(response_str, "OKAY", 4); > + strncat(response_str, s, RESPONSE_LEN - 4 - 1); > } > Ditto Michael > static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, > @@ -32,7 +40,7 @@ static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, > > if (blkcnt > info->size) { > error("too large for partition: '%s'\n", part_name); > - fastboot_resp("FAILtoo large for partition"); > + fastboot_fail("too large for partition"); > return; > } > > @@ -42,13 +50,13 @@ static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, > buffer); > if (blks != blkcnt) { > error("failed writing to device %d\n", dev_desc->dev); > - fastboot_resp("FAILfailed writing to device"); > + fastboot_fail("failed writing to device"); > return; > } > > printf("........ wrote " LBAFU " bytes to '%s'\n", blkcnt * info->blksz, > part_name); > - fastboot_resp("OKAY"); > + fastboot_okay(""); > } > > void fb_mmc_flash_write(const char *cmd, void *download_buffer, > @@ -64,17 +72,21 @@ void fb_mmc_flash_write(const char *cmd, void *download_buffer, > dev_desc = get_dev("mmc", CONFIG_FASTBOOT_FLASH_MMC_DEV); > if (!dev_desc || dev_desc->type == DEV_TYPE_UNKNOWN) { > error("invalid mmc device\n"); > - fastboot_resp("FAILinvalid mmc device"); > + fastboot_fail("invalid mmc device"); > return; > } > > ret = get_partition_info_efi_by_name(dev_desc, cmd, &info); > if (ret) { > error("cannot find partition: '%s'\n", cmd); > - fastboot_resp("FAILcannot find partition"); > + fastboot_fail("cannot find partition"); > return; > } > > - write_raw_image(dev_desc, &info, cmd, download_buffer, > - download_bytes); > + if (is_sparse_image(download_buffer)) > + write_sparse_image(dev_desc, &info, cmd, download_buffer, > + download_bytes); > + else > + write_raw_image(dev_desc, &info, cmd, download_buffer, > + download_bytes); > } > -- > 1.8.5 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
Hi Michael On 14-08-26 10:07 PM, Michael Trimarchi wrote: > Hi > > Il 26/ago/2014 20:46 "Steve Rae" <srae@broadcom.com> ha scritto: >> >> - add capability to "fastboot flash" with sparse format images >> >> Signed-off-by: Steve Rae <srae@broadcom.com> >> Acked-by: Lukasz Majewski <l.majewski@samsung.com> >> --- >> >> Changes in v6: >> - remove excess braces >> >> Changes in v5: >> - use the common/aboot.c for the "sparse format" handling >> >> Changes in v4: >> - rearranged "sparse format" support in this patchset, in order to > isolate... >> >> Changes in v3: None >> Changes in v2: None >> >> common/Makefile | 1 + >> common/fb_mmc.c | 32 ++++++++++++++++++++++---------- >> 2 files changed, 23 insertions(+), 10 deletions(-) >> >> diff --git a/common/Makefile b/common/Makefile >> index daebe39..bc53078 100644 >> --- a/common/Makefile >> +++ b/common/Makefile >> @@ -268,6 +268,7 @@ obj-y += stdio.o >> >> # This option is not just y/n - it can have a numeric value >> ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV >> +obj-y += aboot.o >> obj-y += fb_mmc.o >> endif >> >> diff --git a/common/fb_mmc.c b/common/fb_mmc.c >> index 14d3982..fb06d8a 100644 >> --- a/common/fb_mmc.c >> +++ b/common/fb_mmc.c >> @@ -7,16 +7,24 @@ >> #include <common.h> >> #include <fb_mmc.h> >> #include <part.h> >> +#include <aboot.h> >> +#include <sparse_format.h> >> >> /* The 64 defined bytes plus the '\0' */ >> #define RESPONSE_LEN (64 + 1) >> >> static char *response_str; >> >> -static void fastboot_resp(const char *s) >> +void fastboot_fail(const char *s) >> { >> - strncpy(response_str, s, RESPONSE_LEN); >> - response_str[RESPONSE_LEN - 1] = '\0'; >> + strncpy(response_str, "FAIL", 4); >> + strncat(response_str, s, RESPONSE_LEN - 4 - 1); >> +} >> + > > Change not connect to bug description. If you remove static this should go > in some header. For now it's only overhead. Sorry for the confusion.... (1) the file "include/aboot.h" defines these two functions, and is part of the patchset that this series depends on (as documented in the cover letter): This series depends on: http://patchwork.ozlabs.org/patch/382443/ (to 382446) (2) this is the implementation of those functions that are required by that patchset (3) so I thought the the commit message was sufficient -- implying that in order to implement the "sparse format" (from aboot.c) that these changes are required... If required, I could submit a "v7" with more information in the commit message.... Please let me know! Thanks, Steve > >> +void fastboot_okay(const char *s) >> +{ >> + strncpy(response_str, "OKAY", 4); >> + strncat(response_str, s, RESPONSE_LEN - 4 - 1); >> } >> > > Ditto > > Michael > >> static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t > *info, >> @@ -32,7 +40,7 @@ static void write_raw_image(block_dev_desc_t *dev_desc, > disk_partition_t *info, >> >> if (blkcnt > info->size) { >> error("too large for partition: '%s'\n", part_name); >> - fastboot_resp("FAILtoo large for partition"); >> + fastboot_fail("too large for partition"); >> return; >> } >> >> @@ -42,13 +50,13 @@ static void write_raw_image(block_dev_desc_t > *dev_desc, disk_partition_t *info, >> buffer); >> if (blks != blkcnt) { >> error("failed writing to device %d\n", dev_desc->dev); >> - fastboot_resp("FAILfailed writing to device"); >> + fastboot_fail("failed writing to device"); >> return; >> } >> >> printf("........ wrote " LBAFU " bytes to '%s'\n", blkcnt * > info->blksz, >> part_name); >> - fastboot_resp("OKAY"); >> + fastboot_okay(""); >> } >> >> void fb_mmc_flash_write(const char *cmd, void *download_buffer, >> @@ -64,17 +72,21 @@ void fb_mmc_flash_write(const char *cmd, void > *download_buffer, >> dev_desc = get_dev("mmc", CONFIG_FASTBOOT_FLASH_MMC_DEV); >> if (!dev_desc || dev_desc->type == DEV_TYPE_UNKNOWN) { >> error("invalid mmc device\n"); >> - fastboot_resp("FAILinvalid mmc device"); >> + fastboot_fail("invalid mmc device"); >> return; >> } >> >> ret = get_partition_info_efi_by_name(dev_desc, cmd, &info); >> if (ret) { >> error("cannot find partition: '%s'\n", cmd); >> - fastboot_resp("FAILcannot find partition"); >> + fastboot_fail("cannot find partition"); >> return; >> } >> >> - write_raw_image(dev_desc, &info, cmd, download_buffer, >> - download_bytes); >> + if (is_sparse_image(download_buffer)) >> + write_sparse_image(dev_desc, &info, cmd, download_buffer, >> + download_bytes); >> + else >> + write_raw_image(dev_desc, &info, cmd, download_buffer, >> + download_bytes); >> } >> -- >> 1.8.5 >> >> _______________________________________________ >> U-Boot mailing list >> U-Boot@lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot >
Hi On Wed, Aug 27, 2014 at 7:43 PM, Steve Rae <srae@broadcom.com> wrote: > Hi Michael > > > On 14-08-26 10:07 PM, Michael Trimarchi wrote: >> >> Hi >> >> Il 26/ago/2014 20:46 "Steve Rae" <srae@broadcom.com> ha scritto: >>> >>> >>> - add capability to "fastboot flash" with sparse format images >>> >>> Signed-off-by: Steve Rae <srae@broadcom.com> >>> Acked-by: Lukasz Majewski <l.majewski@samsung.com> >>> --- >>> >>> Changes in v6: >>> - remove excess braces >>> >>> Changes in v5: >>> - use the common/aboot.c for the "sparse format" handling >>> >>> Changes in v4: >>> - rearranged "sparse format" support in this patchset, in order to >> >> isolate... >>> >>> >>> Changes in v3: None >>> Changes in v2: None >>> >>> common/Makefile | 1 + >>> common/fb_mmc.c | 32 ++++++++++++++++++++++---------- >>> 2 files changed, 23 insertions(+), 10 deletions(-) >>> >>> diff --git a/common/Makefile b/common/Makefile >>> index daebe39..bc53078 100644 >>> --- a/common/Makefile >>> +++ b/common/Makefile >>> @@ -268,6 +268,7 @@ obj-y += stdio.o >>> >>> # This option is not just y/n - it can have a numeric value >>> ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV >>> +obj-y += aboot.o >>> obj-y += fb_mmc.o >>> endif >>> >>> diff --git a/common/fb_mmc.c b/common/fb_mmc.c >>> index 14d3982..fb06d8a 100644 >>> --- a/common/fb_mmc.c >>> +++ b/common/fb_mmc.c >>> @@ -7,16 +7,24 @@ >>> #include <common.h> >>> #include <fb_mmc.h> >>> #include <part.h> >>> +#include <aboot.h> >>> +#include <sparse_format.h> >>> >>> /* The 64 defined bytes plus the '\0' */ >>> #define RESPONSE_LEN (64 + 1) >>> >>> static char *response_str; >>> >>> -static void fastboot_resp(const char *s) >>> +void fastboot_fail(const char *s) >>> { >>> - strncpy(response_str, s, RESPONSE_LEN); >>> - response_str[RESPONSE_LEN - 1] = '\0'; >>> + strncpy(response_str, "FAIL", 4); >>> + strncat(response_str, s, RESPONSE_LEN - 4 - 1); >>> +} >>> + >> >> >> Change not connect to bug description. If you remove static this should go >> in some header. For now it's only overhead. > > > Sorry for the confusion.... > (1) the file "include/aboot.h" defines these two functions, and is part of > the patchset that this series depends on (as documented in the cover > letter): > This series depends on: > http://patchwork.ozlabs.org/patch/382443/ (to 382446) > (2) this is the implementation of those functions that are required by that > patchset > (3) so I thought the the commit message was sufficient -- implying that in > order to implement the "sparse format" (from aboot.c) that these changes are > required... > If required, I could submit a "v7" with more information in the commit > message.... > Please let me know! No it's fine. Sorry Michael > Thanks, Steve > > >> >>> +void fastboot_okay(const char *s) >>> +{ >>> + strncpy(response_str, "OKAY", 4); >>> + strncat(response_str, s, RESPONSE_LEN - 4 - 1); >>> } >>> >> >> Ditto >> >> Michael >> >>> static void write_raw_image(block_dev_desc_t *dev_desc, >>> disk_partition_t >> >> *info, >>> >>> @@ -32,7 +40,7 @@ static void write_raw_image(block_dev_desc_t *dev_desc, >> >> disk_partition_t *info, >>> >>> >>> if (blkcnt > info->size) { >>> error("too large for partition: '%s'\n", part_name); >>> - fastboot_resp("FAILtoo large for partition"); >>> + fastboot_fail("too large for partition"); >>> return; >>> } >>> >>> @@ -42,13 +50,13 @@ static void write_raw_image(block_dev_desc_t >> >> *dev_desc, disk_partition_t *info, >>> >>> buffer); >>> if (blks != blkcnt) { >>> error("failed writing to device %d\n", dev_desc->dev); >>> - fastboot_resp("FAILfailed writing to device"); >>> + fastboot_fail("failed writing to device"); >>> return; >>> } >>> >>> printf("........ wrote " LBAFU " bytes to '%s'\n", blkcnt * >> >> info->blksz, >>> >>> part_name); >>> - fastboot_resp("OKAY"); >>> + fastboot_okay(""); >>> } >>> >>> void fb_mmc_flash_write(const char *cmd, void *download_buffer, >>> @@ -64,17 +72,21 @@ void fb_mmc_flash_write(const char *cmd, void >> >> *download_buffer, >>> >>> dev_desc = get_dev("mmc", CONFIG_FASTBOOT_FLASH_MMC_DEV); >>> if (!dev_desc || dev_desc->type == DEV_TYPE_UNKNOWN) { >>> error("invalid mmc device\n"); >>> - fastboot_resp("FAILinvalid mmc device"); >>> + fastboot_fail("invalid mmc device"); >>> return; >>> } >>> >>> ret = get_partition_info_efi_by_name(dev_desc, cmd, &info); >>> if (ret) { >>> error("cannot find partition: '%s'\n", cmd); >>> - fastboot_resp("FAILcannot find partition"); >>> + fastboot_fail("cannot find partition"); >>> return; >>> } >>> >>> - write_raw_image(dev_desc, &info, cmd, download_buffer, >>> - download_bytes); >>> + if (is_sparse_image(download_buffer)) >>> + write_sparse_image(dev_desc, &info, cmd, download_buffer, >>> + download_bytes); >>> + else >>> + write_raw_image(dev_desc, &info, cmd, download_buffer, >>> + download_bytes); >>> } >>> -- >>> 1.8.5 >>> >>> _______________________________________________ >>> U-Boot mailing list >>> U-Boot@lists.denx.de >>> http://lists.denx.de/mailman/listinfo/u-boot >> >> >
On Tue, Aug 26, 2014 at 11:47:30AM -0700, Steve Rae wrote: > - add capability to "fastboot flash" with sparse format images > > Signed-off-by: Steve Rae <srae@broadcom.com> > Acked-by: Lukasz Majewski <l.majewski@samsung.com> Applied to u-boot/master, thanks!
diff --git a/common/Makefile b/common/Makefile index daebe39..bc53078 100644 --- a/common/Makefile +++ b/common/Makefile @@ -268,6 +268,7 @@ obj-y += stdio.o # This option is not just y/n - it can have a numeric value ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV +obj-y += aboot.o obj-y += fb_mmc.o endif diff --git a/common/fb_mmc.c b/common/fb_mmc.c index 14d3982..fb06d8a 100644 --- a/common/fb_mmc.c +++ b/common/fb_mmc.c @@ -7,16 +7,24 @@ #include <common.h> #include <fb_mmc.h> #include <part.h> +#include <aboot.h> +#include <sparse_format.h> /* The 64 defined bytes plus the '\0' */ #define RESPONSE_LEN (64 + 1) static char *response_str; -static void fastboot_resp(const char *s) +void fastboot_fail(const char *s) { - strncpy(response_str, s, RESPONSE_LEN); - response_str[RESPONSE_LEN - 1] = '\0'; + strncpy(response_str, "FAIL", 4); + strncat(response_str, s, RESPONSE_LEN - 4 - 1); +} + +void fastboot_okay(const char *s) +{ + strncpy(response_str, "OKAY", 4); + strncat(response_str, s, RESPONSE_LEN - 4 - 1); } static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, @@ -32,7 +40,7 @@ static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, if (blkcnt > info->size) { error("too large for partition: '%s'\n", part_name); - fastboot_resp("FAILtoo large for partition"); + fastboot_fail("too large for partition"); return; } @@ -42,13 +50,13 @@ static void write_raw_image(block_dev_desc_t *dev_desc, disk_partition_t *info, buffer); if (blks != blkcnt) { error("failed writing to device %d\n", dev_desc->dev); - fastboot_resp("FAILfailed writing to device"); + fastboot_fail("failed writing to device"); return; } printf("........ wrote " LBAFU " bytes to '%s'\n", blkcnt * info->blksz, part_name); - fastboot_resp("OKAY"); + fastboot_okay(""); } void fb_mmc_flash_write(const char *cmd, void *download_buffer, @@ -64,17 +72,21 @@ void fb_mmc_flash_write(const char *cmd, void *download_buffer, dev_desc = get_dev("mmc", CONFIG_FASTBOOT_FLASH_MMC_DEV); if (!dev_desc || dev_desc->type == DEV_TYPE_UNKNOWN) { error("invalid mmc device\n"); - fastboot_resp("FAILinvalid mmc device"); + fastboot_fail("invalid mmc device"); return; } ret = get_partition_info_efi_by_name(dev_desc, cmd, &info); if (ret) { error("cannot find partition: '%s'\n", cmd); - fastboot_resp("FAILcannot find partition"); + fastboot_fail("cannot find partition"); return; } - write_raw_image(dev_desc, &info, cmd, download_buffer, - download_bytes); + if (is_sparse_image(download_buffer)) + write_sparse_image(dev_desc, &info, cmd, download_buffer, + download_bytes); + else + write_raw_image(dev_desc, &info, cmd, download_buffer, + download_bytes); }