diff options
author | Sebastian Andrzej Siewior <sebastian@breakpoint.cc> | 2009-11-29 13:07:57 -0500 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-12-01 09:51:45 -0500 |
commit | 75352662c54421b48ed58200565395b123952748 (patch) | |
tree | b6abb1254b59fd91084be72e5bc817052cbd99c9 /drivers/mtd | |
parent | 96178769652ba886d4dfe770e770456689cbb559 (diff) |
mtd: nandsim: add support for 4KiB pages
I was going to play with a faulty nand image from real flash and noticed
that nandsim does not work with:
first_id_byte=0xec second_id_byte=0xd5 third_id_byte=0x51 fourth_id_byte=0xa6
This patch seems to fix it.
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/nandsim.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index cd0711b83ac..7281000fef2 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c | |||
@@ -161,7 +161,7 @@ MODULE_PARM_DESC(overridesize, "Specifies the NAND Flash size overriding the I | |||
161 | MODULE_PARM_DESC(cache_file, "File to use to cache nand pages instead of memory"); | 161 | MODULE_PARM_DESC(cache_file, "File to use to cache nand pages instead of memory"); |
162 | 162 | ||
163 | /* The largest possible page size */ | 163 | /* The largest possible page size */ |
164 | #define NS_LARGEST_PAGE_SIZE 2048 | 164 | #define NS_LARGEST_PAGE_SIZE 4096 |
165 | 165 | ||
166 | /* The prefix for simulator output */ | 166 | /* The prefix for simulator output */ |
167 | #define NS_OUTPUT_PREFIX "[nandsim]" | 167 | #define NS_OUTPUT_PREFIX "[nandsim]" |
@@ -259,7 +259,8 @@ MODULE_PARM_DESC(cache_file, "File to use to cache nand pages instead of mem | |||
259 | #define OPT_SMARTMEDIA 0x00000010 /* SmartMedia technology chips */ | 259 | #define OPT_SMARTMEDIA 0x00000010 /* SmartMedia technology chips */ |
260 | #define OPT_AUTOINCR 0x00000020 /* page number auto inctimentation is possible */ | 260 | #define OPT_AUTOINCR 0x00000020 /* page number auto inctimentation is possible */ |
261 | #define OPT_PAGE512_8BIT 0x00000040 /* 512-byte page chips with 8-bit bus width */ | 261 | #define OPT_PAGE512_8BIT 0x00000040 /* 512-byte page chips with 8-bit bus width */ |
262 | #define OPT_LARGEPAGE (OPT_PAGE2048) /* 2048-byte page chips */ | 262 | #define OPT_PAGE4096 0x00000080 /* 4096-byte page chips */ |
263 | #define OPT_LARGEPAGE (OPT_PAGE2048 | OPT_PAGE4096) /* 2048 & 4096-byte page chips */ | ||
263 | #define OPT_SMALLPAGE (OPT_PAGE256 | OPT_PAGE512) /* 256 and 512-byte page chips */ | 264 | #define OPT_SMALLPAGE (OPT_PAGE256 | OPT_PAGE512) /* 256 and 512-byte page chips */ |
264 | 265 | ||
265 | /* Remove action bits ftom state */ | 266 | /* Remove action bits ftom state */ |
@@ -588,6 +589,8 @@ static int init_nandsim(struct mtd_info *mtd) | |||
588 | ns->options |= OPT_PAGE512_8BIT; | 589 | ns->options |= OPT_PAGE512_8BIT; |
589 | } else if (ns->geom.pgsz == 2048) { | 590 | } else if (ns->geom.pgsz == 2048) { |
590 | ns->options |= OPT_PAGE2048; | 591 | ns->options |= OPT_PAGE2048; |
592 | } else if (ns->geom.pgsz == 4096) { | ||
593 | ns->options |= OPT_PAGE4096; | ||
591 | } else { | 594 | } else { |
592 | NS_ERR("init_nandsim: unknown page size %u\n", ns->geom.pgsz); | 595 | NS_ERR("init_nandsim: unknown page size %u\n", ns->geom.pgsz); |
593 | return -EIO; | 596 | return -EIO; |