@@ -21,110 +21,112 @@ static u32 sfc_nand_get_ecc_status6(void);
2121
2222static struct nand_info spi_nand_tbl [] = {
2323 /* TC58CVG0S0HxAIx */
24- { 0x98C2 , 4 , 0x40 , 1 , 1024 , 0x00 , 18 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
24+ { 0x98 , 0xC2 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x00 , 18 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
2525 /* TC58CVG1S0HxAIx */
26- { 0x98CB , 4 , 0x40 , 2 , 1024 , 0x00 , 19 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
26+ { 0x98 , 0xCB , 0x00 , 4 , 0x40 , 2 , 1024 , 0x00 , 19 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
2727 /* TC58CVG2S0HRAIJ */
28- { 0x98ED , 8 , 0x40 , 1 , 2048 , 0x0C , 20 , 0x8 , 0 , { 0x04 , 0x0C , 0x08 , 0x10 }, & sfc_nand_get_ecc_status0 },
28+ { 0x98 , 0xED , 0x00 , 8 , 0x40 , 1 , 2048 , 0x0C , 20 , 0x8 , 0 , { 0x04 , 0x0C , 0x08 , 0x10 }, & sfc_nand_get_ecc_status0 },
2929 /* TC58CVG1S3HRAIJ */
30- { 0x98EB , 4 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
30+ { 0x98 , 0xEB , 0x00 , 4 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
3131 /* TC58CVG0S3HRAIJ */
32- { 0x98E2 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
32+ { 0x98 , 0xE2 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
3333
3434 /* MX35LF1GE4AB */
35- { 0xC212 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
35+ { 0xC2 , 0x12 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
3636 /* MX35LF2GE4AB */
37- { 0xC222 , 4 , 0x40 , 2 , 1024 , 0x0C , 19 , 0x4 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
37+ { 0xC2 , 0x22 , 0x00 , 4 , 0x40 , 2 , 1024 , 0x0C , 19 , 0x4 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
3838 /* MX35LF2GE4AD */
39- { 0xC226 , 4 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
39+ { 0xC2 , 0x26 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
4040 /* MX35LF4GE4AD */
41- { 0xC237 , 8 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x08 , 0x14 , 0x18 }, & sfc_nand_get_ecc_status0 },
41+ { 0xC2 , 0x37 , 0x00 , 8 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x08 , 0x14 , 0x18 }, & sfc_nand_get_ecc_status0 },
4242 /* MT29F1G01ZAC */
43- { 0x2C12 , 4 , 0x40 , 1 , 1024 , 0x00 , 18 , 0x1 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
43+ { 0x2C , 0x12 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x00 , 18 , 0x1 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
4444
4545 /* GD5F1GQ4UAYIG */
46- { 0xC8F1 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
46+ { 0xC8 , 0xF1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
4747 /* GD5F1GQ4RB9IGR */
48- { 0xC8D1 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status3 },
48+ { 0xC8 , 0xD1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status3 },
4949 /* GD5F2GQ40BY2GR */
50- { 0xC8D2 , 4 , 0x40 , 2 , 1024 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status3 },
50+ { 0xC8 , 0xD2 , 0x00 , 4 , 0x40 , 2 , 1024 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status3 },
5151 /* GD5F1GQ5UEYIG */
52- { 0xC851 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status2 },
52+ { 0xC8 , 0x51 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status2 },
5353 /* GD5F2GQ5UEYIG */
54- { 0xC852 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status2 },
54+ { 0xC8 , 0x52 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status2 },
5555 /* GD5F1GQ4R */
56- { 0xC8C1 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status3 },
56+ { 0xC8 , 0xC1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status3 },
5757
5858 /* W25N01GV */
59- { 0xEFAA , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x04 , 0x14 , 0x24 , 0xFF }, & sfc_nand_get_ecc_status1 },
59+ { 0xEF , 0xAA , 0x21 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x04 , 0x14 , 0x24 , 0xFF }, & sfc_nand_get_ecc_status1 },
60+ /* W25N02KVZEIR */
61+ { 0xEF , 0xAA , 0x22 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x8 , 0 , { 0x04 , 0x14 , 0x24 , 0xFF }, & sfc_nand_get_ecc_status0 },
6062 /* W25N01GW */
61- { 0xEFBA , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x04 , 0x14 , 0x24 , 0xFF }, & sfc_nand_get_ecc_status1 },
63+ { 0xEF , 0xBA , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x04 , 0x14 , 0x24 , 0xFF }, & sfc_nand_get_ecc_status1 },
6264
6365 /* HYF2GQ4UAACAE */
64- { 0xC952 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0xE , 1 , { 0x04 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
66+ { 0xC9 , 0x52 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0xE , 1 , { 0x04 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
6567 /* HYF1GQ4UDACAE */
66- { 0xC921 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
68+ { 0xC9 , 0x21 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
6769 /* HYF1GQ4UPACAE */
68- { 0xC9A1 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
70+ { 0xC9 , 0xA1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
6971 /* HYF2GQ4UDACAE */
70- { 0xC922 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
72+ { 0xC9 , 0x22 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
7173 /* HYF2GQ4UHCCAE */
72- { 0xC95A , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0xE , 1 , { 0x04 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
74+ { 0xC9 , 0x5A , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0xE , 1 , { 0x04 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
7375 /* HYF4GQ4UAACBE */
74- { 0xC9D4 , 8 , 0x40 , 1 , 2048 , 0x4C , 20 , 0x4 , 1 , { 0x20 , 0x40 , 0x24 , 0x44 }, & sfc_nand_get_ecc_status0 },
76+ { 0xC9 , 0xD4 , 0x00 , 8 , 0x40 , 1 , 2048 , 0x4C , 20 , 0x4 , 1 , { 0x20 , 0x40 , 0x24 , 0x44 }, & sfc_nand_get_ecc_status0 },
7577
7678 /* FS35ND01G-S1 */
77- { 0xCDB1 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x10 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status5 },
79+ { 0xCD , 0xB1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x10 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status5 },
7880 /* FS35ND02G-S2 */
79- { 0xCDA2 , 4 , 0x40 , 1 , 2048 , 0x00 , 19 , 0x4 , 0 , { 0x10 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status5 },
81+ { 0xCD , 0xA2 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x00 , 19 , 0x4 , 0 , { 0x10 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status5 },
8082 /* FS35ND01G-S1Y2 */
81- { 0xCDEA , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x4 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
83+ { 0xCD , 0xEA , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x4 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
8284 /* FS35ND02G-S3Y2 */
83- { 0xCDEB , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x4 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
85+ { 0xCD , 0xEB , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x4 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
8486 /* FS35ND04G-S2Y2 1*4096 */
85- { 0xCDEC , 4 , 0x40 , 2 , 2048 , 0x4C , 20 , 0x4 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
87+ { 0xCD , 0xEC , 0x00 , 4 , 0x40 , 2 , 2048 , 0x4C , 20 , 0x4 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
8688
8789 /* DS35Q1GA-IB */
88- { 0xE571 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
90+ { 0xE5 , 0x71 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
8991 /* DS35Q2GA-IB */
90- { 0xE572 , 4 , 0x40 , 2 , 1024 , 0x0C , 19 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
92+ { 0xE5 , 0x72 , 0x00 , 4 , 0x40 , 2 , 1024 , 0x0C , 19 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
9193 /* DS35M1GA-1B */
92- { 0xE521 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
94+ { 0xE5 , 0x21 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x4 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
9395
9496 /* EM73C044VCC-H */
95- { 0xD522 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
97+ { 0xD5 , 0x22 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x0C , 18 , 0x8 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
9698 /* EM73D044VCE-H */
97- { 0xD520 , 4 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
99+ { 0xD5 , 0x20 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x0C , 19 , 0x8 , 1 , { 0x04 , 0x14 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status0 },
98100 /* EM73E044SNA-G */
99- { 0xD503 , 8 , 0x40 , 1 , 2048 , 0x4C , 20 , 0x8 , 1 , { 0x04 , 0x28 , 0x08 , 0x2C }, & sfc_nand_get_ecc_status0 },
101+ { 0xD5 , 0x03 , 0x00 , 8 , 0x40 , 1 , 2048 , 0x4C , 20 , 0x8 , 1 , { 0x04 , 0x28 , 0x08 , 0x2C }, & sfc_nand_get_ecc_status0 },
100102
101103 /* XT26G02A */
102- { 0x0BE2 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
104+ { 0x0B , 0xE2 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
103105 /* XT26G01A */
104- { 0x0BE1 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
106+ { 0x0B , 0xE1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
105107 /* XT26G04A */
106- { 0x0BE3 , 4 , 0x80 , 1 , 2048 , 0x4C , 20 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
108+ { 0x0B , 0xE3 , 0x00 , 4 , 0x80 , 1 , 2048 , 0x4C , 20 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
107109 /* XT26G01B */
108- { 0x0BF1 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
110+ { 0x0B , 0xF1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status4 },
109111 /* XT26G02B */
110- { 0x0BF2 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status5 },
112+ { 0x0B , 0xF2 , 0x00 , 4 , 0x40 , 1 , 2048 , 0x4C , 19 , 0x1 , 1 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status5 },
111113
112114 /* MT29F2G1ABA, XT26G02E, F50L2G41XA */
113- { 0x2C24 , 4 , 0x40 , 2 , 1024 , 0x4C , 19 , 0x1 , 1 , { 0x20 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status6 },
115+ { 0x2C , 0x24 , 0x00 , 4 , 0x40 , 2 , 1024 , 0x4C , 19 , 0x1 , 1 , { 0x20 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status6 },
114116
115117 /* FM25S01 */
116- { 0xA1A1 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x00 , 0x04 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
118+ { 0xA1 , 0xA1 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x00 , 0x04 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
117119 /* FM25S01A */
118- { 0xA1E4 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
120+ { 0xA1 , 0xE4 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
119121 /* FM25S02A */
120- { 0xA1E5 , 4 , 0x40 , 2 , 1024 , 0x4C , 19 , 0x1 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
122+ { 0xA1 , 0xE5 , 0x00 , 4 , 0x40 , 2 , 1024 , 0x4C , 19 , 0x1 , 1 , { 0x04 , 0x08 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
121123
122124 /* IS37SML01G1 */
123- { 0xC821 , 4 , 0x40 , 1 , 1024 , 0x00 , 18 , 0x1 , 0 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
125+ { 0xC8 , 0x21 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x00 , 18 , 0x1 , 0 , { 0x08 , 0x0C , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
124126 /* F50L1G41LB */
125- { 0xC801 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x14 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
127+ { 0xC8 , 0x01 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x4C , 18 , 0x1 , 0 , { 0x14 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
126128 /* ATO25D1GA */
127- { 0x9B12 , 4 , 0x40 , 1 , 1024 , 0x40 , 18 , 0x1 , 1 , { 0x14 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
129+ { 0x9B , 0x12 , 0x00 , 4 , 0x40 , 1 , 1024 , 0x40 , 18 , 0x1 , 1 , { 0x14 , 0x24 , 0xFF , 0xFF }, & sfc_nand_get_ecc_status1 },
128130};
129131
130132static struct nand_info * p_nand_info ;
@@ -134,11 +136,16 @@ static struct SFNAND_DEV sfc_nand_dev;
134136static struct nand_info * sfc_nand_get_info (u8 * nand_id )
135137{
136138 u32 i ;
137- u32 id = (nand_id [0 ] << 8 ) | (nand_id [1 ] << 0 );
138139
139140 for (i = 0 ; i < ARRAY_SIZE (spi_nand_tbl ); i ++ ) {
140- if (spi_nand_tbl [i ].id == id )
141+ if (spi_nand_tbl [i ].id0 == nand_id [0 ] &&
142+ spi_nand_tbl [i ].id1 == nand_id [1 ]) {
143+ if (spi_nand_tbl [i ].id2 &&
144+ spi_nand_tbl [i ].id2 != nand_id [2 ])
145+ continue ;
146+
141147 return & spi_nand_tbl [i ];
148+ }
142149 }
143150
144151 return NULL ;
0 commit comments