Skip to content
Snippets Groups Projects
Commit f8f744a3 authored by Ladislav Michl's avatar Ladislav Michl Committed by Tom Rini
Browse files

cmd: mtdparts: use defaults by default


Boards which are defining default mtdparts often need them early
in boot process (to load environment from UBI volume, for example).
This is currently solved by adding mtdparts and mtdids variable
definitions also to default environment. With this change, default
partitions are used by default unless explicitely deleted or
redefined.

Signed-off-by: default avatarLadislav Michl <ladis@linux-mips.org>
parent 1c2a262a
Branches
Tags
No related merge requests found
...@@ -142,6 +142,8 @@ static struct list_head devices; ...@@ -142,6 +142,8 @@ static struct list_head devices;
struct mtd_device *current_mtd_dev = NULL; struct mtd_device *current_mtd_dev = NULL;
u8 current_mtd_partnum = 0; u8 current_mtd_partnum = 0;
u8 use_defaults;
static struct part_info* mtd_part_info(struct mtd_device *dev, unsigned int part_num); static struct part_info* mtd_part_info(struct mtd_device *dev, unsigned int part_num);
/* command line only routines */ /* command line only routines */
...@@ -1723,6 +1725,7 @@ int mtdparts_init(void) ...@@ -1723,6 +1725,7 @@ int mtdparts_init(void)
memset(last_ids, 0, MTDIDS_MAXLEN); memset(last_ids, 0, MTDIDS_MAXLEN);
memset(last_parts, 0, MTDPARTS_MAXLEN); memset(last_parts, 0, MTDPARTS_MAXLEN);
memset(last_partition, 0, PARTITION_MAXLEN); memset(last_partition, 0, PARTITION_MAXLEN);
use_defaults = 1;
initialized = 1; initialized = 1;
} }
...@@ -1761,10 +1764,16 @@ int mtdparts_init(void) ...@@ -1761,10 +1764,16 @@ int mtdparts_init(void)
return 1; return 1;
} }
/* do no try to use defaults when mtdparts variable is not defined, /* use defaults when mtdparts variable is not defined
* just check the length */ * once mtdparts is saved environment, drop use_defaults flag */
if (!parts) if (!parts) {
if (mtdparts_default && use_defaults) {
parts = mtdparts_default;
if (setenv("mtdparts", (char *)parts) == 0)
use_defaults = 0;
} else
printf("mtdparts variable not set, see 'help mtdparts'\n"); printf("mtdparts variable not set, see 'help mtdparts'\n");
}
if (parts && (strlen(parts) > MTDPARTS_MAXLEN - 1)) { if (parts && (strlen(parts) > MTDPARTS_MAXLEN - 1)) {
printf("mtdparts too long (> %d)\n", MTDPARTS_MAXLEN); printf("mtdparts too long (> %d)\n", MTDPARTS_MAXLEN);
...@@ -1936,9 +1945,10 @@ static int do_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, ...@@ -1936,9 +1945,10 @@ static int do_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc,
{ {
if (argc == 2) { if (argc == 2) {
if (strcmp(argv[1], "default") == 0) { if (strcmp(argv[1], "default") == 0) {
setenv("mtdids", (char *)mtdids_default); setenv("mtdids", NULL);
setenv("mtdparts", (char *)mtdparts_default); setenv("mtdparts", NULL);
setenv("partition", NULL); setenv("partition", NULL);
use_defaults = 1;
mtdparts_init(); mtdparts_init();
return 0; return 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment