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

Alex Kiernan alex.kiernan at gmail.com
Wed May 16 16:58:35 UTC 2018


On Wed, May 16, 2018 at 5:17 PM Joe Hershberger <joe.hershberger at ni.com>
wrote:

> On Wed, May 16, 2018 at 12:00 AM, Alex Kiernan <alex.kiernan at gmail.com>
wrote:
> > On Wed, May 16, 2018 at 12:20 AM Joe Hershberger <joe.hershberger at ni.com

> > wrote:
> >
> >> On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan <alex.kiernan at gmail.com>
> > 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 <alex.kiernan at gmail.com>
> >> > ---
> >> >
> >> > 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?


I'm wrong; CHIP_pro_defconfig selects it by way of various defaults.

-- 
Alex Kiernan


More information about the U-Boot mailing list