diff options
author | Heiko Schocher <hs@denx.de> | 2016-06-07 08:55:40 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-06-09 13:53:11 -0400 |
commit | cddfc97d1fc892353d6616cd4287c34c454941e6 (patch) | |
tree | 80e5b12de619af7498b633e3a8e2411184252f97 /cmd/ubi.c | |
parent | 3c5d51fffc92417b38a2c94f4253e9a8a04100b8 (diff) | |
download | u-boot-cddfc97d1fc892353d6616cd4287c34c454941e6.tar.gz u-boot-cddfc97d1fc892353d6616cd4287c34c454941e6.tar.bz2 u-boot-cddfc97d1fc892353d6616cd4287c34c454941e6.zip |
ubi: add new ubi command "ubi detach"
simple detachs ubi from the mtd partition.
Signed-off-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'cmd/ubi.c')
-rw-r--r-- | cmd/ubi.c | 38 |
1 files changed, 27 insertions, 11 deletions
@@ -443,14 +443,8 @@ static int ubi_dev_scan(struct mtd_info *info, char *ubidev, return 0; } -int ubi_part(char *part_name, const char *vid_header_offset) +int ubi_detach(void) { - int err = 0; - char mtd_dev[16]; - struct mtd_device *dev; - struct part_info *part; - u8 pnum; - if (mtdparts_init() != 0) { printf("Error initializing mtdparts!\n"); return 1; @@ -466,17 +460,28 @@ int ubi_part(char *part_name, const char *vid_header_offset) cmd_ubifs_umount(); #endif - /* todo: get dev number for NAND... */ - ubi_dev.nr = 0; - /* * Call ubi_exit() before re-initializing the UBI subsystem */ if (ubi_initialized) { ubi_exit(); del_mtd_partitions(ubi_dev.mtd_info); + ubi_initialized = 0; } + ubi_dev.selected = 0; + return 0; +} + +int ubi_part(char *part_name, const char *vid_header_offset) +{ + int err = 0; + char mtd_dev[16]; + struct mtd_device *dev; + struct part_info *part; + u8 pnum; + + ubi_detach(); /* * Search the mtd device number where this partition * is located @@ -517,6 +522,15 @@ static int do_ubi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (argc < 2) return CMD_RET_USAGE; + + if (strcmp(argv[1], "detach") == 0) { + if (argc < 2) + return CMD_RET_USAGE; + + return ubi_detach(); + } + + if (strcmp(argv[1], "part") == 0) { const char *vid_header_offset = NULL; @@ -661,7 +675,9 @@ static int do_ubi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) U_BOOT_CMD( ubi, 6, 1, do_ubi, "ubi commands", - "part [part] [offset]\n" + "detach" + " - detach ubi from a mtd partition\n" + "ubi part [part] [offset]\n" " - Show or set current partition (with optional VID" " header offset)\n" "ubi info [l[ayout]]" |