[U-Boot] [PATCH v5 14/16] mmc: Separate "mmc swrite" from fastboot

Jassi Brar jaswinder.singh at linaro.org
Thu May 17 16:16:55 UTC 2018


On 17 May 2018 at 21:29, 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.
>
> Rename CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE to CONFIG_IMAGE_SPARSE_FILLBUF_SIZE
> and migrate it to Kconfig.
>
> Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> ---
>
> Changes in v5:
> - rename CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE to CONFIG_IMAGE_SPARSE_FILLBUF_SIZE
>   and migrate it to Kconfig.
>
> 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                    | 11 +++++++++++
>  lib/Makefile                   |  1 +
>  {common => lib}/image-sparse.c |  6 +-----
>  scripts/config_whitelist.txt   |  1 -
>  8 files changed, 28 insertions(+), 13 deletions(-)
>  rename {common => lib}/image-sparse.c (97%)
>
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index 91f6dfe..98763c9 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 b38f302..acd0c4d 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..15c6a52 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -61,6 +61,17 @@ config SPL_STRTO
>  config TPL_STRTO
>         bool
>
> +config IMAGE_SPARSE
> +       bool
> +
> +config IMAGE_SPARSE_FILLBUF_SIZE
> +       hex "Android sparse image CHUNK_TYPE_FILL buffer size"
> +       default 0x80000
> +       depends on IMAGE_SPARSE
> +       help
> +         Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
> +         chunks.
> +
>  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 97%
> rename from common/image-sparse.c
> rename to lib/image-sparse.c
> index 1ae7a4d..0360621 100644
> --- a/common/image-sparse.c
> +++ b/lib/image-sparse.c
> @@ -44,10 +44,6 @@
>
>  #include <linux/math64.h>
>
> -#ifndef CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE
> -#define CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE (1024 * 512)
> -#endif
> -
>  static void default_log(const char *ignored, char *response) {}
>
>  int write_sparse_image(struct sparse_storage *info,
> @@ -69,7 +65,7 @@ int write_sparse_image(struct sparse_storage *info,
>         int i;
>         int j;
>
> -       fill_buf_num_blks = CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE / info->blksz;
> +       fill_buf_num_blks = CONFIG_IMAGE_SPARSE_FILLBUF_SIZE / info->blksz;
>
>         /* Read and skip over sparse image header */
>         sparse_header = (sparse_header_t *)data;
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 347c619..d2f1440 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -590,7 +590,6 @@ CONFIG_EXYNOS_RELOCATE_CODE_BASE
>  CONFIG_EXYNOS_SPL
>  CONFIG_EXYNOS_TMU
>  CONFIG_FACTORYSET
> -CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE
>  CONFIG_FAST_FLASH_BIT
>  CONFIG_FB_ADDR
>  CONFIG_FB_BACKLIGHT
> --
> 2.7.4
>
Acked-by: Jassi Brar <jaswinder.singh at linaro.org>

Thanks.


More information about the U-Boot mailing list