Re: [U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot
On Tue, May 15, 2018 at 9:48 AM, Alex Kiernanwrote: > Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc > swrite" command is separated from the fastboot code. > > Move image-sparse from common to lib so it's clear it's library code. > > Signed-off-by: Alex Kiernan Acked-by: Joe Hershberger ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot
On Wed, May 16, 2018 at 5:17 PM Joe Hershbergerwrote: > On Wed, May 16, 2018 at 12:00 AM, Alex Kiernan wrote: > > On Wed, May 16, 2018 at 12:20 AM Joe Hershberger > wrote: > > > >> On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan > > wrote: > >> > Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc > >> > swrite" command is separated from the fastboot code. > >> > > >> > Move image-sparse from common to lib so it's clear it's library code. > >> > > >> > Signed-off-by: Alex Kiernan > >> > --- > >> > > >> > Changes in v4: > >> > - new > >> > > >> > Changes in v3: None > >> > Changes in v2: None > >> > > >> > cmd/Kconfig| 8 > >> > cmd/mmc.c | 12 ++-- > >> > common/Makefile| 1 - > >> > drivers/fastboot/Kconfig | 1 + > >> > lib/Kconfig| 3 +++ > >> > lib/Makefile | 1 + > >> > {common => lib}/image-sparse.c | 0 > >> > 7 files changed, 19 insertions(+), 7 deletions(-) > >> > rename {common => lib}/image-sparse.c (100%) > >> > > >> > diff --git a/cmd/Kconfig b/cmd/Kconfig > >> > index df2194c..b5fa657 100644 > >> > --- a/cmd/Kconfig > >> > +++ b/cmd/Kconfig > >> > @@ -826,6 +826,14 @@ config CMD_MMC > >> > help > >> > MMC memory mapped support. > >> > > >> > +config CMD_MMC_SWRITE > >> > + bool "mmc swrite" > >> > + depends on CMD_MMC && MMC_WRITE > >> > + select IMAGE_SPARSE > >> > + help > >> > + Enable support for the "mmc swrite" command to write Android > > sparse > >> > + images to eMMC. > >> > + > >> > config CMD_NAND > >> > bool "nand" > >> > default y if NAND_SUNXI > >> > diff --git a/cmd/mmc.c b/cmd/mmc.c > >> > index cc44525..66c3ee0 100644 > >> > --- a/cmd/mmc.c > >> > +++ b/cmd/mmc.c > >> > @@ -308,8 +308,7 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, > >> > return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; > >> > } > >> > > >> > -#if CONFIG_IS_ENABLED(MMC_WRITE) > >> > -#if defined(CONFIG_FASTBOOT_FLASH) > >> > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > >> > static lbaint_t mmc_sparse_write(struct sparse_storage *info, lbaint_t > > blk, > >> > lbaint_t blkcnt, const void *buffer) > >> > { > >> > @@ -374,6 +373,7 @@ static int do_mmc_sparse_write(cmd_tbl_t *cmdtp, > > int flag, > >> > } > >> > #endif > >> > > >> > +#if CONFIG_IS_ENABLED(MMC_WRITE) > >> > static int do_mmc_write(cmd_tbl_t *cmdtp, int flag, > >> > int argc, char * const argv[]) > >> > { > >> > @@ -868,11 +868,11 @@ static cmd_tbl_t cmd_mmc[] = { > >> > U_BOOT_CMD_MKENT(read, 4, 1, do_mmc_read, "", ""), > >> > #if CONFIG_IS_ENABLED(MMC_WRITE) > >> > U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""), > >> > -#if defined(CONFIG_FASTBOOT_FLASH) > >> > - U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), > >> > -#endif > >> > U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""), > >> > #endif > >> > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > >> > + U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), > >> > +#endif > >> > U_BOOT_CMD_MKENT(rescan, 1, 1, do_mmc_rescan, "", ""), > >> > U_BOOT_CMD_MKENT(part, 1, 1, do_mmc_part, "", ""), > >> > U_BOOT_CMD_MKENT(dev, 3, 0, do_mmc_dev, "", ""), > >> > @@ -927,7 +927,7 @@ U_BOOT_CMD( > >> > "info - display info of the current MMC device\n" > >> > "mmc read addr blk# cnt\n" > >> > "mmc write addr blk# cnt\n" > >> > -#if defined(CONFIG_FASTBOOT_FLASH) > >> > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > >> > "mmc swrite addr blk#\n" > >> > #endif > >> > "mmc erase blk# cnt\n" > >> > diff --git a/common/Makefile b/common/Makefile > >> > index 9ec40b9..b3da72e 100644 > >> > --- a/common/Makefile > >> > +++ b/common/Makefile > >> > @@ -29,7 +29,6 @@ obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o > >> > > >> > obj-$(CONFIG_CMD_BEDBUG) += bedbug.o > >> > obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o > >> > -obj-$(CONFIG_FASTBOOT_FLASH) += image-sparse.o > >> > obj-$(CONFIG_MII) += miiphyutil.o > >> > obj-$(CONFIG_CMD_MII) += miiphyutil.o > >> > obj-$(CONFIG_PHYLIB) += miiphyutil.o > >> > diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig > >> > index 51c5789..82e1420 100644 > >> > --- a/drivers/fastboot/Kconfig > >> > +++ b/drivers/fastboot/Kconfig > >> > @@ -57,6 +57,7 @@ config FASTBOOT_FLASH > >> > bool "Enable FASTBOOT FLASH command" > >> > default y if ARCH_SUNXI > >> > depends on MMC || (NAND && CMD_MTDPARTS) > >> > + select IMAGE_SPARSE > > > >> Is this useful if we are NAND and not MMC? It seems no. > > > > There's code in drivers/fastboot/fb_nand.c which will write sparse images, > > so I think the select
Re: [U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot
On Wed, May 16, 2018 at 12:00 AM, Alex Kiernanwrote: > On Wed, May 16, 2018 at 12:20 AM Joe Hershberger > wrote: > >> On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan > wrote: >> > Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc >> > swrite" command is separated from the fastboot code. >> > >> > Move image-sparse from common to lib so it's clear it's library code. >> > >> > Signed-off-by: Alex Kiernan >> > --- >> > >> > Changes in v4: >> > - new >> > >> > Changes in v3: None >> > Changes in v2: None >> > >> > cmd/Kconfig| 8 >> > cmd/mmc.c | 12 ++-- >> > common/Makefile| 1 - >> > drivers/fastboot/Kconfig | 1 + >> > lib/Kconfig| 3 +++ >> > lib/Makefile | 1 + >> > {common => lib}/image-sparse.c | 0 >> > 7 files changed, 19 insertions(+), 7 deletions(-) >> > rename {common => lib}/image-sparse.c (100%) >> > >> > diff --git a/cmd/Kconfig b/cmd/Kconfig >> > index df2194c..b5fa657 100644 >> > --- a/cmd/Kconfig >> > +++ b/cmd/Kconfig >> > @@ -826,6 +826,14 @@ config CMD_MMC >> > help >> > MMC memory mapped support. >> > >> > +config CMD_MMC_SWRITE >> > + bool "mmc swrite" >> > + depends on CMD_MMC && MMC_WRITE >> > + select IMAGE_SPARSE >> > + help >> > + Enable support for the "mmc swrite" command to write Android > sparse >> > + images to eMMC. >> > + >> > config CMD_NAND >> > bool "nand" >> > default y if NAND_SUNXI >> > diff --git a/cmd/mmc.c b/cmd/mmc.c >> > index cc44525..66c3ee0 100644 >> > --- a/cmd/mmc.c >> > +++ b/cmd/mmc.c >> > @@ -308,8 +308,7 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, >> > return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; >> > } >> > >> > -#if CONFIG_IS_ENABLED(MMC_WRITE) >> > -#if defined(CONFIG_FASTBOOT_FLASH) >> > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) >> > static lbaint_t mmc_sparse_write(struct sparse_storage *info, lbaint_t > blk, >> > lbaint_t blkcnt, const void *buffer) >> > { >> > @@ -374,6 +373,7 @@ static int do_mmc_sparse_write(cmd_tbl_t *cmdtp, > int flag, >> > } >> > #endif >> > >> > +#if CONFIG_IS_ENABLED(MMC_WRITE) >> > static int do_mmc_write(cmd_tbl_t *cmdtp, int flag, >> > int argc, char * const argv[]) >> > { >> > @@ -868,11 +868,11 @@ static cmd_tbl_t cmd_mmc[] = { >> > U_BOOT_CMD_MKENT(read, 4, 1, do_mmc_read, "", ""), >> > #if CONFIG_IS_ENABLED(MMC_WRITE) >> > U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""), >> > -#if defined(CONFIG_FASTBOOT_FLASH) >> > - U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), >> > -#endif >> > U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""), >> > #endif >> > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) >> > + U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), >> > +#endif >> > U_BOOT_CMD_MKENT(rescan, 1, 1, do_mmc_rescan, "", ""), >> > U_BOOT_CMD_MKENT(part, 1, 1, do_mmc_part, "", ""), >> > U_BOOT_CMD_MKENT(dev, 3, 0, do_mmc_dev, "", ""), >> > @@ -927,7 +927,7 @@ U_BOOT_CMD( >> > "info - display info of the current MMC device\n" >> > "mmc read addr blk# cnt\n" >> > "mmc write addr blk# cnt\n" >> > -#if defined(CONFIG_FASTBOOT_FLASH) >> > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) >> > "mmc swrite addr blk#\n" >> > #endif >> > "mmc erase blk# cnt\n" >> > diff --git a/common/Makefile b/common/Makefile >> > index 9ec40b9..b3da72e 100644 >> > --- a/common/Makefile >> > +++ b/common/Makefile >> > @@ -29,7 +29,6 @@ obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o >> > >> > obj-$(CONFIG_CMD_BEDBUG) += bedbug.o >> > obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o >> > -obj-$(CONFIG_FASTBOOT_FLASH) += image-sparse.o >> > obj-$(CONFIG_MII) += miiphyutil.o >> > obj-$(CONFIG_CMD_MII) += miiphyutil.o >> > obj-$(CONFIG_PHYLIB) += miiphyutil.o >> > diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig >> > index 51c5789..82e1420 100644 >> > --- a/drivers/fastboot/Kconfig >> > +++ b/drivers/fastboot/Kconfig >> > @@ -57,6 +57,7 @@ config FASTBOOT_FLASH >> > bool "Enable FASTBOOT FLASH command" >> > default y if ARCH_SUNXI >> > depends on MMC || (NAND && CMD_MTDPARTS) >> > + select IMAGE_SPARSE > >> Is this useful if we are NAND and not MMC? It seems no. > > There's code in drivers/fastboot/fb_nand.c which will write sparse images, > so I think the select is right. OK, then this is fine. > That said, there's nothings in configs/ which actually selects > FASTBOOT_FLASH_NAND OK, I guess we can wait for a board to come along that uses it? > -- > Alex Kiernan > ___ > U-Boot mailing list > U-Boot@lists.denx.de >
Re: [U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot
On Wed, May 16, 2018 at 12:20 AM Joe Hershbergerwrote: > On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan wrote: > > Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc > > swrite" command is separated from the fastboot code. > > > > Move image-sparse from common to lib so it's clear it's library code. > > > > Signed-off-by: Alex Kiernan > > --- > > > > Changes in v4: > > - new > > > > Changes in v3: None > > Changes in v2: None > > > > cmd/Kconfig| 8 > > cmd/mmc.c | 12 ++-- > > common/Makefile| 1 - > > drivers/fastboot/Kconfig | 1 + > > lib/Kconfig| 3 +++ > > lib/Makefile | 1 + > > {common => lib}/image-sparse.c | 0 > > 7 files changed, 19 insertions(+), 7 deletions(-) > > rename {common => lib}/image-sparse.c (100%) > > > > diff --git a/cmd/Kconfig b/cmd/Kconfig > > index df2194c..b5fa657 100644 > > --- a/cmd/Kconfig > > +++ b/cmd/Kconfig > > @@ -826,6 +826,14 @@ config CMD_MMC > > help > > MMC memory mapped support. > > > > +config CMD_MMC_SWRITE > > + bool "mmc swrite" > > + depends on CMD_MMC && MMC_WRITE > > + select IMAGE_SPARSE > > + help > > + Enable support for the "mmc swrite" command to write Android sparse > > + images to eMMC. > > + > > config CMD_NAND > > bool "nand" > > default y if NAND_SUNXI > > diff --git a/cmd/mmc.c b/cmd/mmc.c > > index cc44525..66c3ee0 100644 > > --- a/cmd/mmc.c > > +++ b/cmd/mmc.c > > @@ -308,8 +308,7 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, > > return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; > > } > > > > -#if CONFIG_IS_ENABLED(MMC_WRITE) > > -#if defined(CONFIG_FASTBOOT_FLASH) > > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > > static lbaint_t mmc_sparse_write(struct sparse_storage *info, lbaint_t blk, > > lbaint_t blkcnt, const void *buffer) > > { > > @@ -374,6 +373,7 @@ static int do_mmc_sparse_write(cmd_tbl_t *cmdtp, int flag, > > } > > #endif > > > > +#if CONFIG_IS_ENABLED(MMC_WRITE) > > static int do_mmc_write(cmd_tbl_t *cmdtp, int flag, > > int argc, char * const argv[]) > > { > > @@ -868,11 +868,11 @@ static cmd_tbl_t cmd_mmc[] = { > > U_BOOT_CMD_MKENT(read, 4, 1, do_mmc_read, "", ""), > > #if CONFIG_IS_ENABLED(MMC_WRITE) > > U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""), > > -#if defined(CONFIG_FASTBOOT_FLASH) > > - U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), > > -#endif > > U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""), > > #endif > > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > > + U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), > > +#endif > > U_BOOT_CMD_MKENT(rescan, 1, 1, do_mmc_rescan, "", ""), > > U_BOOT_CMD_MKENT(part, 1, 1, do_mmc_part, "", ""), > > U_BOOT_CMD_MKENT(dev, 3, 0, do_mmc_dev, "", ""), > > @@ -927,7 +927,7 @@ U_BOOT_CMD( > > "info - display info of the current MMC device\n" > > "mmc read addr blk# cnt\n" > > "mmc write addr blk# cnt\n" > > -#if defined(CONFIG_FASTBOOT_FLASH) > > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > > "mmc swrite addr blk#\n" > > #endif > > "mmc erase blk# cnt\n" > > diff --git a/common/Makefile b/common/Makefile > > index 9ec40b9..b3da72e 100644 > > --- a/common/Makefile > > +++ b/common/Makefile > > @@ -29,7 +29,6 @@ obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o > > > > obj-$(CONFIG_CMD_BEDBUG) += bedbug.o > > obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o > > -obj-$(CONFIG_FASTBOOT_FLASH) += image-sparse.o > > obj-$(CONFIG_MII) += miiphyutil.o > > obj-$(CONFIG_CMD_MII) += miiphyutil.o > > obj-$(CONFIG_PHYLIB) += miiphyutil.o > > diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig > > index 51c5789..82e1420 100644 > > --- a/drivers/fastboot/Kconfig > > +++ b/drivers/fastboot/Kconfig > > @@ -57,6 +57,7 @@ config FASTBOOT_FLASH > > bool "Enable FASTBOOT FLASH command" > > default y if ARCH_SUNXI > > depends on MMC || (NAND && CMD_MTDPARTS) > > + select IMAGE_SPARSE > Is this useful if we are NAND and not MMC? It seems no. There's code in drivers/fastboot/fb_nand.c which will write sparse images, so I think the select is right. That said, there's nothings in configs/ which actually selects FASTBOOT_FLASH_NAND -- Alex Kiernan ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot
On Tue, May 15, 2018 at 9:48 AM, Alex Kiernanwrote: > Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc > swrite" command is separated from the fastboot code. > > Move image-sparse from common to lib so it's clear it's library code. > > Signed-off-by: Alex Kiernan > --- > > Changes in v4: > - new > > Changes in v3: None > Changes in v2: None > > cmd/Kconfig| 8 > cmd/mmc.c | 12 ++-- > common/Makefile| 1 - > drivers/fastboot/Kconfig | 1 + > lib/Kconfig| 3 +++ > lib/Makefile | 1 + > {common => lib}/image-sparse.c | 0 > 7 files changed, 19 insertions(+), 7 deletions(-) > rename {common => lib}/image-sparse.c (100%) > > diff --git a/cmd/Kconfig b/cmd/Kconfig > index df2194c..b5fa657 100644 > --- a/cmd/Kconfig > +++ b/cmd/Kconfig > @@ -826,6 +826,14 @@ config CMD_MMC > help > MMC memory mapped support. > > +config CMD_MMC_SWRITE > + bool "mmc swrite" > + depends on CMD_MMC && MMC_WRITE > + select IMAGE_SPARSE > + help > + Enable support for the "mmc swrite" command to write Android sparse > + images to eMMC. > + > config CMD_NAND > bool "nand" > default y if NAND_SUNXI > diff --git a/cmd/mmc.c b/cmd/mmc.c > index cc44525..66c3ee0 100644 > --- a/cmd/mmc.c > +++ b/cmd/mmc.c > @@ -308,8 +308,7 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, > return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; > } > > -#if CONFIG_IS_ENABLED(MMC_WRITE) > -#if defined(CONFIG_FASTBOOT_FLASH) > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > static lbaint_t mmc_sparse_write(struct sparse_storage *info, lbaint_t blk, > lbaint_t blkcnt, const void *buffer) > { > @@ -374,6 +373,7 @@ static int do_mmc_sparse_write(cmd_tbl_t *cmdtp, int flag, > } > #endif > > +#if CONFIG_IS_ENABLED(MMC_WRITE) > static int do_mmc_write(cmd_tbl_t *cmdtp, int flag, > int argc, char * const argv[]) > { > @@ -868,11 +868,11 @@ static cmd_tbl_t cmd_mmc[] = { > U_BOOT_CMD_MKENT(read, 4, 1, do_mmc_read, "", ""), > #if CONFIG_IS_ENABLED(MMC_WRITE) > U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""), > -#if defined(CONFIG_FASTBOOT_FLASH) > - U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), > -#endif > U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""), > #endif > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > + U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), > +#endif > U_BOOT_CMD_MKENT(rescan, 1, 1, do_mmc_rescan, "", ""), > U_BOOT_CMD_MKENT(part, 1, 1, do_mmc_part, "", ""), > U_BOOT_CMD_MKENT(dev, 3, 0, do_mmc_dev, "", ""), > @@ -927,7 +927,7 @@ U_BOOT_CMD( > "info - display info of the current MMC device\n" > "mmc read addr blk# cnt\n" > "mmc write addr blk# cnt\n" > -#if defined(CONFIG_FASTBOOT_FLASH) > +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) > "mmc swrite addr blk#\n" > #endif > "mmc erase blk# cnt\n" > diff --git a/common/Makefile b/common/Makefile > index 9ec40b9..b3da72e 100644 > --- a/common/Makefile > +++ b/common/Makefile > @@ -29,7 +29,6 @@ obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o > > obj-$(CONFIG_CMD_BEDBUG) += bedbug.o > obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o > -obj-$(CONFIG_FASTBOOT_FLASH) += image-sparse.o > obj-$(CONFIG_MII) += miiphyutil.o > obj-$(CONFIG_CMD_MII) += miiphyutil.o > obj-$(CONFIG_PHYLIB) += miiphyutil.o > diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig > index 51c5789..82e1420 100644 > --- a/drivers/fastboot/Kconfig > +++ b/drivers/fastboot/Kconfig > @@ -57,6 +57,7 @@ config FASTBOOT_FLASH > bool "Enable FASTBOOT FLASH command" > default y if ARCH_SUNXI > depends on MMC || (NAND && CMD_MTDPARTS) > + select IMAGE_SPARSE Is this useful if we are NAND and not MMC? It seems no. > help > The fastboot protocol includes a "flash" command for writing > the downloaded image to a non-volatile storage device. Define > diff --git a/lib/Kconfig b/lib/Kconfig > index 1590f7a..ec7396a 100644 > --- a/lib/Kconfig > +++ b/lib/Kconfig > @@ -61,6 +61,9 @@ config SPL_STRTO > config TPL_STRTO > bool > > +config IMAGE_SPARSE > + bool > + > config USE_PRIVATE_LIBGCC > bool "Use private libgcc" > depends on HAVE_PRIVATE_LIBGCC > diff --git a/lib/Makefile b/lib/Makefile > index d531ea5..a4bbe2f 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -29,6 +29,7 @@ obj-$(CONFIG_FIT) += fdtdec_common.o > obj-$(CONFIG_TEST_FDTDEC) += fdtdec_test.o > obj-$(CONFIG_GZIP_COMPRESSED) += gzip.o > obj-$(CONFIG_GENERATE_SMBIOS_TABLE) += smbios.o > +obj-$(CONFIG_IMAGE_SPARSE) += image-sparse.o > obj-y += initcall.o > obj-$(CONFIG_LMB) += lmb.o > obj-y += ldiv.o > diff
[U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot
Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc swrite" command is separated from the fastboot code. Move image-sparse from common to lib so it's clear it's library code. Signed-off-by: Alex Kiernan--- Changes in v4: - new Changes in v3: None Changes in v2: None cmd/Kconfig| 8 cmd/mmc.c | 12 ++-- common/Makefile| 1 - drivers/fastboot/Kconfig | 1 + lib/Kconfig| 3 +++ lib/Makefile | 1 + {common => lib}/image-sparse.c | 0 7 files changed, 19 insertions(+), 7 deletions(-) rename {common => lib}/image-sparse.c (100%) diff --git a/cmd/Kconfig b/cmd/Kconfig index df2194c..b5fa657 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -826,6 +826,14 @@ config CMD_MMC help MMC memory mapped support. +config CMD_MMC_SWRITE + bool "mmc swrite" + depends on CMD_MMC && MMC_WRITE + select IMAGE_SPARSE + help + Enable support for the "mmc swrite" command to write Android sparse + images to eMMC. + config CMD_NAND bool "nand" default y if NAND_SUNXI diff --git a/cmd/mmc.c b/cmd/mmc.c index cc44525..66c3ee0 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -308,8 +308,7 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag, return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE; } -#if CONFIG_IS_ENABLED(MMC_WRITE) -#if defined(CONFIG_FASTBOOT_FLASH) +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) static lbaint_t mmc_sparse_write(struct sparse_storage *info, lbaint_t blk, lbaint_t blkcnt, const void *buffer) { @@ -374,6 +373,7 @@ static int do_mmc_sparse_write(cmd_tbl_t *cmdtp, int flag, } #endif +#if CONFIG_IS_ENABLED(MMC_WRITE) static int do_mmc_write(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { @@ -868,11 +868,11 @@ static cmd_tbl_t cmd_mmc[] = { U_BOOT_CMD_MKENT(read, 4, 1, do_mmc_read, "", ""), #if CONFIG_IS_ENABLED(MMC_WRITE) U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""), -#if defined(CONFIG_FASTBOOT_FLASH) - U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), -#endif U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""), #endif +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) + U_BOOT_CMD_MKENT(swrite, 3, 0, do_mmc_sparse_write, "", ""), +#endif U_BOOT_CMD_MKENT(rescan, 1, 1, do_mmc_rescan, "", ""), U_BOOT_CMD_MKENT(part, 1, 1, do_mmc_part, "", ""), U_BOOT_CMD_MKENT(dev, 3, 0, do_mmc_dev, "", ""), @@ -927,7 +927,7 @@ U_BOOT_CMD( "info - display info of the current MMC device\n" "mmc read addr blk# cnt\n" "mmc write addr blk# cnt\n" -#if defined(CONFIG_FASTBOOT_FLASH) +#if CONFIG_IS_ENABLED(CMD_MMC_SWRITE) "mmc swrite addr blk#\n" #endif "mmc erase blk# cnt\n" diff --git a/common/Makefile b/common/Makefile index 9ec40b9..b3da72e 100644 --- a/common/Makefile +++ b/common/Makefile @@ -29,7 +29,6 @@ obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o obj-$(CONFIG_CMD_BEDBUG) += bedbug.o obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o -obj-$(CONFIG_FASTBOOT_FLASH) += image-sparse.o obj-$(CONFIG_MII) += miiphyutil.o obj-$(CONFIG_CMD_MII) += miiphyutil.o obj-$(CONFIG_PHYLIB) += miiphyutil.o diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig index 51c5789..82e1420 100644 --- a/drivers/fastboot/Kconfig +++ b/drivers/fastboot/Kconfig @@ -57,6 +57,7 @@ config FASTBOOT_FLASH bool "Enable FASTBOOT FLASH command" default y if ARCH_SUNXI depends on MMC || (NAND && CMD_MTDPARTS) + select IMAGE_SPARSE help The fastboot protocol includes a "flash" command for writing the downloaded image to a non-volatile storage device. Define diff --git a/lib/Kconfig b/lib/Kconfig index 1590f7a..ec7396a 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -61,6 +61,9 @@ config SPL_STRTO config TPL_STRTO bool +config IMAGE_SPARSE + bool + config USE_PRIVATE_LIBGCC bool "Use private libgcc" depends on HAVE_PRIVATE_LIBGCC diff --git a/lib/Makefile b/lib/Makefile index d531ea5..a4bbe2f 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -29,6 +29,7 @@ obj-$(CONFIG_FIT) += fdtdec_common.o obj-$(CONFIG_TEST_FDTDEC) += fdtdec_test.o obj-$(CONFIG_GZIP_COMPRESSED) += gzip.o obj-$(CONFIG_GENERATE_SMBIOS_TABLE) += smbios.o +obj-$(CONFIG_IMAGE_SPARSE) += image-sparse.o obj-y += initcall.o obj-$(CONFIG_LMB) += lmb.o obj-y += ldiv.o diff --git a/common/image-sparse.c b/lib/image-sparse.c similarity index 100% rename from common/image-sparse.c rename to lib/image-sparse.c -- 2.7.4 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot