diff options
author | Tom Rini <trini@konsulko.com> | 2018-11-13 19:50:01 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-11-13 19:50:01 -0500 |
commit | 20274b0626b41a5709530afcf6cea6dd9c256e6c (patch) | |
tree | e6329be04a31d84e77005713f94b17a5bdd89d1c | |
parent | 4114a2614b0b7e3f147e2903a8e1d498c4cfb4ba (diff) | |
parent | 1f758b793649a18b76252bf507312465310637ad (diff) | |
download | u-boot-20274b0626b41a5709530afcf6cea6dd9c256e6c.tar.gz |
Merge branch 'master' of git://git.denx.de/u-boot-spi
-rw-r--r-- | cmd/Kconfig | 5 | ||||
-rw-r--r-- | cmd/ubi.c | 5 | ||||
-rw-r--r-- | drivers/dfu/Kconfig | 1 | ||||
-rw-r--r-- | drivers/mtd/Kconfig | 6 | ||||
-rw-r--r-- | drivers/mtd/mtd_uboot.c | 62 |
5 files changed, 63 insertions, 16 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig index d66f710ad0..ad14c9ce71 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1728,14 +1728,14 @@ config CMD_MTDPARTS config MTDIDS_DEFAULT string "Default MTD IDs" - depends on CMD_MTD || CMD_MTDPARTS || CMD_NAND || CMD_FLASH + depends on MTD_PARTITIONS || CMD_MTDPARTS || CMD_NAND || CMD_FLASH help Defines a default MTD IDs list for use with MTD partitions in the Linux MTD command line partitions format. config MTDPARTS_DEFAULT string "Default MTD partition scheme" - depends on CMD_MTD || CMD_MTDPARTS || CMD_NAND || CMD_FLASH + depends on MTD_PARTITIONS || CMD_MTDPARTS || CMD_NAND || CMD_FLASH help Defines a default MTD partitioning scheme in the Linux MTD command line partitions format @@ -1856,7 +1856,6 @@ endmenu config CMD_UBI tristate "Enable UBI - Unsorted block images commands" - select CMD_MTDPARTS select CRC32 select MTD_UBI help @@ -417,11 +417,6 @@ static int ubi_dev_scan(struct mtd_info *info, const char *vid_header_offset) int ubi_detach(void) { - if (mtdparts_init() != 0) { - printf("Error initializing mtdparts!\n"); - return 1; - } - #ifdef CONFIG_CMD_UBIFS /* * Automatically unmount UBIFS partition when user diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig index 51ab484c2a..4692736c9d 100644 --- a/drivers/dfu/Kconfig +++ b/drivers/dfu/Kconfig @@ -30,6 +30,7 @@ config DFU_MMC config DFU_NAND bool "NAND back end for DFU" + depends on CMD_MTDPARTS help This option enables using DFU to read and write to NAND based storage. diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 11cf12bb55..0050fb2b9b 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -22,12 +22,6 @@ config MTD_DEVICE Adds the MTD device infrastructure from the Linux kernel. Needed for mtdparts command support. -config MTD_PARTITIONS - bool "Add MTD Partioning infrastructure" - help - Adds the MTD partitioning infrastructure from the Linux - kernel. Needed for UBI support. - config FLASH_CFI_DRIVER bool "Enable CFI Flash driver" help diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c index 7d7a11c990..5ca560c968 100644 --- a/drivers/mtd/mtd_uboot.c +++ b/drivers/mtd/mtd_uboot.c @@ -92,12 +92,70 @@ static void mtd_probe_uclass_mtd_devs(void) { } #endif #if defined(CONFIG_MTD_PARTITIONS) +extern void board_mtdparts_default(const char **mtdids, + const char **mtdparts); + +static const char *get_mtdids(void) +{ + __maybe_unused const char *mtdparts = NULL; + const char *mtdids = env_get("mtdids"); + + if (mtdids) + return mtdids; + +#if defined(CONFIG_SYS_MTDPARTS_RUNTIME) + board_mtdparts_default(&mtdids, &mtdparts); +#elif defined(MTDIDS_DEFAULT) + mtdids = MTDIDS_DEFAULT; +#elif defined(CONFIG_MTDIDS_DEFAULT) + mtdids = CONFIG_MTDIDS_DEFAULT; +#endif + + if (mtdids) + env_set("mtdids", mtdids); + + return mtdids; +} + +#define MTDPARTS_MAXLEN 512 + +static const char *get_mtdparts(void) +{ + __maybe_unused const char *mtdids = NULL; + static char tmp_parts[MTDPARTS_MAXLEN]; + static bool use_defaults = true; + const char *mtdparts = NULL; + + if (gd->flags & GD_FLG_ENV_READY) + mtdparts = env_get("mtdparts"); + else if (env_get_f("mtdparts", tmp_parts, sizeof(tmp_parts)) != -1) + mtdparts = tmp_parts; + + if (mtdparts || !use_defaults) + return mtdparts; + +#if defined(CONFIG_SYS_MTDPARTS_RUNTIME) + board_mtdparts_default(&mtdids, &mtdparts); +#elif defined(MTDPARTS_DEFAULT) + mtdparts = MTDPARTS_DEFAULT; +#elif defined(CONFIG_MTDPARTS_DEFAULT) + mtdparts = CONFIG_MTDPARTS_DEFAULT; +#endif + + if (mtdparts) + env_set("mtdparts", mtdparts); + + use_defaults = false; + + return mtdparts; +} + int mtd_probe_devices(void) { static char *old_mtdparts; static char *old_mtdids; - const char *mtdparts = env_get("mtdparts"); - const char *mtdids = env_get("mtdids"); + const char *mtdparts = get_mtdparts(); + const char *mtdids = get_mtdids(); bool remaining_partitions = true; struct mtd_info *mtd; |