aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2013-10-24 18:59:51 +0800
committerBrian Norris <computersforpeace@gmail.com>2013-10-24 10:51:21 -0700
commit89c22de378aba3e57f15b57af464e34bc0d38291 (patch)
tree9318f95f4d4666274c2cc3faf11da93a6b231bf8
parent263e138719f6358c3cf2ce47d6254cebef31dd4b (diff)
flash_erase: check the nand type
Now, the MTD_NANDFLASH stands for SLC nand, and the MTD_MLCNANDFLASH stands for the MLC nand. This patch includes the stdbool.h, and changes the "isNAND" to boolean type, and checks the right nand type for the MLC and SLC nand. If the user wants to format a MLC nand for JFFS2, we will print out a message to warn him, and exit right now. Signed-off-by: Huang Shijie <b32955@freescale.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-rw-r--r--flash_erase.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/flash_erase.c b/flash_erase.c
index 1421cf9..933373a 100644
--- a/flash_erase.c
+++ b/flash_erase.c
@@ -21,6 +21,7 @@
#define PROGRAM_NAME "flash_erase"
#include <inttypes.h>
+#include <stdbool.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
@@ -95,7 +96,7 @@ int main(int argc, char *argv[])
int fd, clmpos = 0, clmlen = 8;
unsigned long long start;
unsigned int eb, eb_start, eb_cnt;
- int isNAND;
+ bool isNAND;
int error = 0;
off_t offset = 0;
@@ -182,9 +183,12 @@ int main(int argc, char *argv[])
if (mtd_get_dev_info(mtd_desc, mtd_device, &mtd) < 0)
return errmsg("mtd_get_dev_info failed");
+ if (jffs2 && mtd.type == MTD_MLCNANDFLASH)
+ return errmsg("JFFS2 cannot support MLC NAND.");
+
eb_start = start / mtd.eb_size;
- isNAND = mtd.type == MTD_NANDFLASH ? 1 : 0;
+ isNAND = mtd.type == MTD_NANDFLASH || mtd.type == MTD_MLCNANDFLASH;
if (jffs2) {
cleanmarker.magic = cpu_to_je16 (JFFS2_MAGIC_BITMASK);