mirror of
https://xff.cz/git/u-boot/
synced 2025-09-02 01:02:19 +02:00
UBI/cfi-mtd: Fix mtd name for multiple chips
On platforms with multiple NOR chips, currently only the first one can be selected using the "ubi part" command. This patch fixes this problem by using different names for the NOR "mtd devices". It also changes the name of the NOR MTD device from "cfi-mtd" to "norX" (X indexing the device numer) to better match the mtdparts defaults. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Andreas Huber <andreas.huber@keymile.com>
This commit is contained in:
committed by
Wolfgang Denk
parent
6b6bb02f27
commit
c203ef5db0
@@ -404,9 +404,6 @@ static int ubi_dev_scan(struct mtd_info *info, char *ubidev)
|
||||
u8 pnum;
|
||||
int err;
|
||||
|
||||
if (mtdparts_init() != 0)
|
||||
return 1;
|
||||
|
||||
if (find_dev_and_part(ubidev, &dev, &pnum, &part) != 0)
|
||||
return 1;
|
||||
|
||||
@@ -445,6 +442,11 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mtdparts_init() != 0) {
|
||||
printf("Error initializing mtdparts!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "part") == 0) {
|
||||
/* Print current partition */
|
||||
if (argc == 2) {
|
||||
@@ -475,7 +477,7 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for nand|onenand selection
|
||||
* Check for nor|nand|onenand selection
|
||||
*/
|
||||
#if defined(CONFIG_CMD_NAND)
|
||||
if (strcmp(argv[2], "nand") == 0) {
|
||||
@@ -486,9 +488,23 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
||||
#endif
|
||||
#if defined(CONFIG_FLASH_CFI_MTD)
|
||||
if (strcmp(argv[2], "nor") == 0) {
|
||||
char mtd_dev[16];
|
||||
struct mtd_device *dev;
|
||||
struct part_info *part;
|
||||
u8 pnum;
|
||||
|
||||
/*
|
||||
* Search the mtd device number where this partition
|
||||
* is located
|
||||
*/
|
||||
if (find_dev_and_part(argv[3], &dev, &pnum, &part)) {
|
||||
printf("Partition %s not found!\n", argv[3]);
|
||||
return 1;
|
||||
}
|
||||
sprintf(mtd_dev, "nor%d", dev->id->num);
|
||||
ubi_dev.mtd_info = get_mtd_device_nm(mtd_dev);
|
||||
strcpy(ubi_dev.dev_name, "NOR");
|
||||
ubi_dev.type = DEV_TYPE_NOR;
|
||||
ubi_dev.mtd_info = get_mtd_device_nm(CFI_MTD_DEV_NAME);
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_CMD_ONENAND)
|
||||
|
Reference in New Issue
Block a user