Merge branch 'master' of git://git.denx.de/u-boot-spi

This commit is contained in:
Tom Rini 2018-11-13 19:50:01 -05:00
commit 20274b0626
5 changed files with 63 additions and 16 deletions

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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;