Re: [U-Boot] [PATCH v4 13/14] mmc: Separate "mmc swrite" from fastboot

2018-05-16 Thread Joe Hershberger
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 

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

2018-05-16 Thread Alex Kiernan
On Wed, May 16, 2018 at 5:17 PM Joe Hershberger 
wrote:

> 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

2018-05-16 Thread Joe Hershberger
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 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

2018-05-15 Thread Alex Kiernan
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.

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

2018-05-15 Thread Joe Hershberger
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.

> 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

2018-05-15 Thread Alex Kiernan
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