mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	package/mtd: (enhancement) add option to prevent erase when writing to flash. (closes #8308)
SVN-Revision: 24132
This commit is contained in:
		
							parent
							
								
									695a1268e1
								
							
						
					
					
						commit
						f5a54d6601
					
				@ -74,6 +74,7 @@ static char *imagefile = NULL;
 | 
			
		||||
static char *jffs2file = NULL, *jffs2dir = JFFS2_DEFAULT_DIR;
 | 
			
		||||
static int buflen = 0;
 | 
			
		||||
int quiet;
 | 
			
		||||
int no_erase;
 | 
			
		||||
int mtdsize = 0;
 | 
			
		||||
int erasesize = 0;
 | 
			
		||||
 | 
			
		||||
@ -518,6 +519,8 @@ resume:
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/* need to erase the next block before writing data to it */
 | 
			
		||||
    if(no_erase)
 | 
			
		||||
    {
 | 
			
		||||
		while (w + buflen > e) {
 | 
			
		||||
			if (!quiet)
 | 
			
		||||
				fprintf(stderr, "\b\b\b[e]");
 | 
			
		||||
@ -544,6 +547,7 @@ resume:
 | 
			
		||||
			/* erase the chunk */
 | 
			
		||||
			e += erasesize;
 | 
			
		||||
		}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		if (!quiet)
 | 
			
		||||
			fprintf(stderr, "\b\b\b[w]");
 | 
			
		||||
@ -595,6 +599,7 @@ static void usage(void)
 | 
			
		||||
	"Following options are available:\n"
 | 
			
		||||
	"        -q                      quiet mode (once: no [w] on writing,\n"
 | 
			
		||||
	"                                           twice: no status messages)\n"
 | 
			
		||||
	"        -n                      write without first erasing the blocks\n"
 | 
			
		||||
	"        -r                      reboot after successful command\n"
 | 
			
		||||
	"        -f                      force write without trx checks\n"
 | 
			
		||||
	"        -e <device>             erase <device> before executing the command\n"
 | 
			
		||||
@ -646,12 +651,13 @@ int main (int argc, char **argv)
 | 
			
		||||
	force = 0;
 | 
			
		||||
	buflen = 0;
 | 
			
		||||
	quiet = 0;
 | 
			
		||||
  no_erase = 0;
 | 
			
		||||
 | 
			
		||||
	while ((ch = getopt(argc, argv,
 | 
			
		||||
#ifdef FIS_SUPPORT
 | 
			
		||||
			"F:"
 | 
			
		||||
#endif
 | 
			
		||||
			"frqe:d:j:o:")) != -1)
 | 
			
		||||
			"frnqe:d:j:o:")) != -1)
 | 
			
		||||
		switch (ch) {
 | 
			
		||||
			case 'f':
 | 
			
		||||
				force = 1;
 | 
			
		||||
@ -659,6 +665,9 @@ int main (int argc, char **argv)
 | 
			
		||||
			case 'r':
 | 
			
		||||
				boot = 1;
 | 
			
		||||
				break;
 | 
			
		||||
      case 'n':
 | 
			
		||||
        no_erase = 1;
 | 
			
		||||
        break;
 | 
			
		||||
			case 'j':
 | 
			
		||||
				jffs2file = optarg;
 | 
			
		||||
				break;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user