| .. | .. |
|---|
| 52 | 52 | { 0xC2, 0x96, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x8, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| 53 | 53 | /* MX35UF2GE4AD */ |
|---|
| 54 | 54 | { 0xC2, 0xA6, 0x00, 4, 0x40, 1, 2048, 0x0C, 19, 0x8, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| 55 | + /* MX35UF4GE4AD */ |
|---|
| 56 | + { 0xC2, 0xB7, 0x00, 8, 0x40, 1, 2048, 0x0C, 20, 0x8, 1, { 0x04, 0x08, 0x14, 0x18 }, &sfc_nand_get_ecc_status0 }, |
|---|
| 55 | 57 | |
|---|
| 56 | 58 | /* GD5F1GQ4UAYIG */ |
|---|
| 57 | 59 | { 0xC8, 0xF1, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x8, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| .. | .. |
|---|
| 110 | 112 | /* HYF2GQ4UHCCAE */ |
|---|
| 111 | 113 | { 0xC9, 0x5A, 0x00, 4, 0x40, 1, 2048, 0x4C, 19, 0xE, 1, { 0x04, 0x24, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| 112 | 114 | /* HYF4GQ4UAACBE */ |
|---|
| 113 | | - { 0xC9, 0xD4, 0x00, 8, 0x40, 1, 2048, 0x4C, 20, 0x4, 1, { 0x20, 0x40, 0x24, 0x44 }, &sfc_nand_get_ecc_status0 }, |
|---|
| 115 | + { 0xC9, 0xD4, 0x00, 8, 0x40, 1, 2048, 0x4C, 20, 0xE, 1, { 0x20, 0x40, 0x24, 0x44 }, &sfc_nand_get_ecc_status0 }, |
|---|
| 116 | + /* HYF2GQ4IAACAE */ |
|---|
| 117 | + { 0xC9, 0x82, 0x00, 4, 0x40, 1, 2048, 0x4C, 20, 0xE, 1, { 0x04, 0x24, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| 118 | + /* HYF1GQ4IDACAE */ |
|---|
| 119 | + { 0xC9, 0x81, 0x00, 4, 0x40, 1, 1024, 0x4C, 20, 0x4, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| 114 | 120 | |
|---|
| 115 | 121 | /* FS35ND01G-S1 */ |
|---|
| 116 | 122 | { 0xCD, 0xB1, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x4, 1, { 0x10, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status5 }, |
|---|
| .. | .. |
|---|
| 129 | 135 | /* F35SQA512M */ |
|---|
| 130 | 136 | { 0xCD, 0x70, 0x00, 4, 0x40, 1, 512, 0x4C, 17, 0x1, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| 131 | 137 | /* F35UQA512M */ |
|---|
| 132 | | - { 0xCD, 0x70, 0x00, 4, 0x40, 1, 512, 0x4C, 17, 0x1, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| 138 | + { 0xCD, 0x60, 0x00, 4, 0x40, 1, 512, 0x4C, 17, 0x1, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| 133 | 139 | |
|---|
| 134 | 140 | /* DS35Q1GA-IB */ |
|---|
| 135 | 141 | { 0xE5, 0x71, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x4, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| .. | .. |
|---|
| 147 | 153 | { 0xE5, 0xF4, 0x00, 4, 0x40, 2, 2048, 0x0C, 20, 0x8, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status6 }, |
|---|
| 148 | 154 | /* DS35M1GB-IB */ |
|---|
| 149 | 155 | { 0xE5, 0xA1, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x8, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status6 }, |
|---|
| 156 | + /* DS35Q12B-IB */ |
|---|
| 157 | + { 0xE5, 0xF5, 0x00, 4, 0x40, 1, 512, 0x0C, 17, 0x8, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status6 }, |
|---|
| 158 | + /* DS35M12B-IB */ |
|---|
| 159 | + { 0xE5, 0xA5, 0x00, 4, 0x40, 1, 512, 0x0C, 17, 0x8, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status6 }, |
|---|
| 150 | 160 | |
|---|
| 151 | 161 | /* EM73C044VCC-H */ |
|---|
| 152 | 162 | { 0xD5, 0x22, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x8, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status0 }, |
|---|
| .. | .. |
|---|
| 204 | 214 | { 0xEA, 0xC1, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x4, 1, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| 205 | 215 | /* TX25G01 */ |
|---|
| 206 | 216 | { 0xA1, 0xF1, 0x00, 4, 0x40, 1, 1024, 0x0C, 18, 0x4, 1, { 0x04, 0x14, 0xFF, 0xFF }, &sfc_nand_get_ecc_status8 }, |
|---|
| 217 | + /* ANV1GCP0CLG, HYF1GQ4UTXCAE */ |
|---|
| 218 | + { 0x01, 0x15, 0x00, 4, 0x40, 1, 1024, 0x4C, 18, 0x4, 0, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status9 }, |
|---|
| 219 | + /* S35ML02G3, ANV1GCP0CLG */ |
|---|
| 220 | + { 0x01, 0x25, 0x00, 4, 0x40, 2, 1024, 0x4C, 19, 0x4, 0, { 0x04, 0x08, 0x0C, 0x10 }, &sfc_nand_get_ecc_status9 }, |
|---|
| 207 | 221 | /* S35ML04G3 */ |
|---|
| 208 | | - { 0x01, 0x35, 0x00, 4, 0x40, 2, 2048, 0x4C, 20, 0x4, 1, { 0x04, 0x08, 0x0C, 0x10 }, &sfc_nand_get_ecc_status9 }, |
|---|
| 222 | + { 0x01, 0x35, 0x00, 4, 0x40, 2, 2048, 0x4C, 20, 0x4, 0, { 0x04, 0x08, 0x0C, 0x10 }, &sfc_nand_get_ecc_status9 }, |
|---|
| 223 | + /* GSS01GSAK1 */ |
|---|
| 224 | + { 0x52, 0xBA, 0x13, 4, 0x40, 1, 1024, 0x4C, 18, 0x4, 0, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| 225 | + /* GSS02GSAK1 */ |
|---|
| 226 | + { 0x52, 0xBA, 0x23, 4, 0x40, 1, 2048, 0x4C, 19, 0x4, 0, { 0x04, 0x08, 0xFF, 0xFF }, &sfc_nand_get_ecc_status1 }, |
|---|
| 209 | 227 | }; |
|---|
| 210 | 228 | |
|---|
| 211 | 229 | static struct nand_info *p_nand_info; |
|---|
| .. | .. |
|---|
| 928 | 946 | sfc_nand_rw_preset(); |
|---|
| 929 | 947 | |
|---|
| 930 | 948 | sfc_nand_wait_busy(&status, 1000 * 1000); |
|---|
| 949 | + if (sfc_nand_dev.manufacturer == 0x01 && status) |
|---|
| 950 | + sfc_nand_wait_busy(&status, 1000 * 1000); |
|---|
| 951 | + |
|---|
| 931 | 952 | ecc_result = p_nand_info->ecc_status(); |
|---|
| 932 | 953 | |
|---|
| 933 | 954 | op.sfcmd.d32 = 0; |
|---|