]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mmc: Separate "mmc swrite" from fastboot
authorAlex Kiernan <alex.kiernan@gmail.com>
Tue, 29 May 2018 15:30:52 +0000 (15:30 +0000)
committerMarek Vasut <marex@denx.de>
Wed, 30 May 2018 09:59:21 +0000 (11:59 +0200)
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@gmail.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/Kconfig
cmd/mmc.c
common/Makefile
drivers/fastboot/Kconfig
lib/Kconfig
lib/Makefile
lib/image-sparse.c [moved from common/image-sparse.c with 97% similarity]
scripts/config_whitelist.txt

index 9848c067daa96d9c5fcdd07e3c1ae560d9c46544..30cf63f172b44c13aef5739156301ebbfc31157f 100644 (file)
@@ -833,6 +833,14 @@ config CMD_MMC_RPMB
          Enable the commands for reading, writing and programming the
          key for the Replay Protection Memory Block partition in eMMC.
 
+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
index a5719b81ebb196c31f76f81f376a494e06c591f5..c2ee2d9c0af1d9e77d4339621a2173411e92d07a 100644 (file)
--- 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,10 +868,10 @@ 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, "", ""),
@@ -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"
index 9ec40b9d272ce4b2f4a4d3a9a2f14477c5a037f2..b3da72ebb2c94ee3ca23a104cb8d79a1be51f5eb 100644 (file)
@@ -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
index 1d7caaff996378b5d554f49ffa01b2405b80e23b..0c9ced53dea5130d82c1882e08459d16f75bfd67 100644 (file)
@@ -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
index 1590f7afa40250cf3df678fccd57aecaa5e1e940..15c6a52d4a1b57273c1d84ce822191209004fa9f 100644 (file)
@@ -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
index e6cb4afc232650ac31072fcd553fb5be7c732cc6..c0511cbff84450b28926ed543c050a610766ec74 100644 (file)
@@ -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
similarity index 97%
rename from common/image-sparse.c
rename to lib/image-sparse.c
index 1ae7a4d0e8c63b4dd335dc5148b84888919e4070..036062139bb905f43703f0b24b9458c49deb7901 100644 (file)
 
 #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;
index 117ed2e152698b7721448de6af3a4e6e0d084a46..5304f9577d3de7f750b4773346b138347ca5328d 100644 (file)
@@ -589,7 +589,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