diff options
Diffstat (limited to 'drivers/mtd/nand/nandsim.c')
-rw-r--r-- | drivers/mtd/nand/nandsim.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index 891c52a30e6a..cb38f3d94218 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c | |||
@@ -218,7 +218,6 @@ MODULE_PARM_DESC(bch, "Enable BCH ecc and set how many bits should " | |||
218 | #define STATE_CMD_READOOB 0x00000005 /* read OOB area */ | 218 | #define STATE_CMD_READOOB 0x00000005 /* read OOB area */ |
219 | #define STATE_CMD_ERASE1 0x00000006 /* sector erase first command */ | 219 | #define STATE_CMD_ERASE1 0x00000006 /* sector erase first command */ |
220 | #define STATE_CMD_STATUS 0x00000007 /* read status */ | 220 | #define STATE_CMD_STATUS 0x00000007 /* read status */ |
221 | #define STATE_CMD_STATUS_M 0x00000008 /* read multi-plane status (isn't implemented) */ | ||
222 | #define STATE_CMD_SEQIN 0x00000009 /* sequential data input */ | 221 | #define STATE_CMD_SEQIN 0x00000009 /* sequential data input */ |
223 | #define STATE_CMD_READID 0x0000000A /* read ID */ | 222 | #define STATE_CMD_READID 0x0000000A /* read ID */ |
224 | #define STATE_CMD_ERASE2 0x0000000B /* sector erase second command */ | 223 | #define STATE_CMD_ERASE2 0x0000000B /* sector erase second command */ |
@@ -263,14 +262,13 @@ MODULE_PARM_DESC(bch, "Enable BCH ecc and set how many bits should " | |||
263 | #define NS_OPER_STATES 6 /* Maximum number of states in operation */ | 262 | #define NS_OPER_STATES 6 /* Maximum number of states in operation */ |
264 | 263 | ||
265 | #define OPT_ANY 0xFFFFFFFF /* any chip supports this operation */ | 264 | #define OPT_ANY 0xFFFFFFFF /* any chip supports this operation */ |
266 | #define OPT_PAGE256 0x00000001 /* 256-byte page chips */ | ||
267 | #define OPT_PAGE512 0x00000002 /* 512-byte page chips */ | 265 | #define OPT_PAGE512 0x00000002 /* 512-byte page chips */ |
268 | #define OPT_PAGE2048 0x00000008 /* 2048-byte page chips */ | 266 | #define OPT_PAGE2048 0x00000008 /* 2048-byte page chips */ |
269 | #define OPT_SMARTMEDIA 0x00000010 /* SmartMedia technology chips */ | 267 | #define OPT_SMARTMEDIA 0x00000010 /* SmartMedia technology chips */ |
270 | #define OPT_PAGE512_8BIT 0x00000040 /* 512-byte page chips with 8-bit bus width */ | 268 | #define OPT_PAGE512_8BIT 0x00000040 /* 512-byte page chips with 8-bit bus width */ |
271 | #define OPT_PAGE4096 0x00000080 /* 4096-byte page chips */ | 269 | #define OPT_PAGE4096 0x00000080 /* 4096-byte page chips */ |
272 | #define OPT_LARGEPAGE (OPT_PAGE2048 | OPT_PAGE4096) /* 2048 & 4096-byte page chips */ | 270 | #define OPT_LARGEPAGE (OPT_PAGE2048 | OPT_PAGE4096) /* 2048 & 4096-byte page chips */ |
273 | #define OPT_SMALLPAGE (OPT_PAGE256 | OPT_PAGE512) /* 256 and 512-byte page chips */ | 271 | #define OPT_SMALLPAGE (OPT_PAGE512) /* 512-byte page chips */ |
274 | 272 | ||
275 | /* Remove action bits from state */ | 273 | /* Remove action bits from state */ |
276 | #define NS_STATE(x) ((x) & ~ACTION_MASK) | 274 | #define NS_STATE(x) ((x) & ~ACTION_MASK) |
@@ -406,8 +404,6 @@ static struct nandsim_operations { | |||
406 | {OPT_ANY, {STATE_CMD_ERASE1, STATE_ADDR_SEC, STATE_CMD_ERASE2 | ACTION_SECERASE, STATE_READY}}, | 404 | {OPT_ANY, {STATE_CMD_ERASE1, STATE_ADDR_SEC, STATE_CMD_ERASE2 | ACTION_SECERASE, STATE_READY}}, |
407 | /* Read status */ | 405 | /* Read status */ |
408 | {OPT_ANY, {STATE_CMD_STATUS, STATE_DATAOUT_STATUS, STATE_READY}}, | 406 | {OPT_ANY, {STATE_CMD_STATUS, STATE_DATAOUT_STATUS, STATE_READY}}, |
409 | /* Read multi-plane status */ | ||
410 | {OPT_SMARTMEDIA, {STATE_CMD_STATUS_M, STATE_DATAOUT_STATUS_M, STATE_READY}}, | ||
411 | /* Read ID */ | 407 | /* Read ID */ |
412 | {OPT_ANY, {STATE_CMD_READID, STATE_ADDR_ZERO, STATE_DATAOUT_ID, STATE_READY}}, | 408 | {OPT_ANY, {STATE_CMD_READID, STATE_ADDR_ZERO, STATE_DATAOUT_ID, STATE_READY}}, |
413 | /* Large page devices read page */ | 409 | /* Large page devices read page */ |
@@ -699,10 +695,7 @@ static int init_nandsim(struct mtd_info *mtd) | |||
699 | ns->geom.secszoob = ns->geom.secsz + ns->geom.oobsz * ns->geom.pgsec; | 695 | ns->geom.secszoob = ns->geom.secsz + ns->geom.oobsz * ns->geom.pgsec; |
700 | ns->options = 0; | 696 | ns->options = 0; |
701 | 697 | ||
702 | if (ns->geom.pgsz == 256) { | 698 | if (ns->geom.pgsz == 512) { |
703 | ns->options |= OPT_PAGE256; | ||
704 | } | ||
705 | else if (ns->geom.pgsz == 512) { | ||
706 | ns->options |= OPT_PAGE512; | 699 | ns->options |= OPT_PAGE512; |
707 | if (ns->busw == 8) | 700 | if (ns->busw == 8) |
708 | ns->options |= OPT_PAGE512_8BIT; | 701 | ns->options |= OPT_PAGE512_8BIT; |
@@ -769,9 +762,9 @@ static int init_nandsim(struct mtd_info *mtd) | |||
769 | } | 762 | } |
770 | 763 | ||
771 | /* Detect how many ID bytes the NAND chip outputs */ | 764 | /* Detect how many ID bytes the NAND chip outputs */ |
772 | for (i = 0; nand_flash_ids[i].name != NULL; i++) { | 765 | for (i = 0; nand_flash_ids[i].name != NULL; i++) { |
773 | if (second_id_byte != nand_flash_ids[i].id) | 766 | if (second_id_byte != nand_flash_ids[i].dev_id) |
774 | continue; | 767 | continue; |
775 | } | 768 | } |
776 | 769 | ||
777 | if (ns->busw == 16) | 770 | if (ns->busw == 16) |
@@ -1079,8 +1072,6 @@ static char *get_state_name(uint32_t state) | |||
1079 | return "STATE_CMD_ERASE1"; | 1072 | return "STATE_CMD_ERASE1"; |
1080 | case STATE_CMD_STATUS: | 1073 | case STATE_CMD_STATUS: |
1081 | return "STATE_CMD_STATUS"; | 1074 | return "STATE_CMD_STATUS"; |
1082 | case STATE_CMD_STATUS_M: | ||
1083 | return "STATE_CMD_STATUS_M"; | ||
1084 | case STATE_CMD_SEQIN: | 1075 | case STATE_CMD_SEQIN: |
1085 | return "STATE_CMD_SEQIN"; | 1076 | return "STATE_CMD_SEQIN"; |
1086 | case STATE_CMD_READID: | 1077 | case STATE_CMD_READID: |
@@ -1145,7 +1136,6 @@ static int check_command(int cmd) | |||
1145 | case NAND_CMD_RNDOUTSTART: | 1136 | case NAND_CMD_RNDOUTSTART: |
1146 | return 0; | 1137 | return 0; |
1147 | 1138 | ||
1148 | case NAND_CMD_STATUS_MULTI: | ||
1149 | default: | 1139 | default: |
1150 | return 1; | 1140 | return 1; |
1151 | } | 1141 | } |
@@ -1171,8 +1161,6 @@ static uint32_t get_state_by_command(unsigned command) | |||
1171 | return STATE_CMD_ERASE1; | 1161 | return STATE_CMD_ERASE1; |
1172 | case NAND_CMD_STATUS: | 1162 | case NAND_CMD_STATUS: |
1173 | return STATE_CMD_STATUS; | 1163 | return STATE_CMD_STATUS; |
1174 | case NAND_CMD_STATUS_MULTI: | ||
1175 | return STATE_CMD_STATUS_M; | ||
1176 | case NAND_CMD_SEQIN: | 1164 | case NAND_CMD_SEQIN: |
1177 | return STATE_CMD_SEQIN; | 1165 | return STATE_CMD_SEQIN; |
1178 | case NAND_CMD_READID: | 1166 | case NAND_CMD_READID: |
@@ -2306,7 +2294,7 @@ static int __init ns_init_module(void) | |||
2306 | nand->geom.idbytes = 2; | 2294 | nand->geom.idbytes = 2; |
2307 | nand->regs.status = NS_STATUS_OK(nand); | 2295 | nand->regs.status = NS_STATUS_OK(nand); |
2308 | nand->nxstate = STATE_UNKNOWN; | 2296 | nand->nxstate = STATE_UNKNOWN; |
2309 | nand->options |= OPT_PAGE256; /* temporary value */ | 2297 | nand->options |= OPT_PAGE512; /* temporary value */ |
2310 | nand->ids[0] = first_id_byte; | 2298 | nand->ids[0] = first_id_byte; |
2311 | nand->ids[1] = second_id_byte; | 2299 | nand->ids[1] = second_id_byte; |
2312 | nand->ids[2] = third_id_byte; | 2300 | nand->ids[2] = third_id_byte; |