| .. | .. |
|---|
| 13 | 13 | #include "sfc_nor.h" |
|---|
| 14 | 14 | |
|---|
| 15 | 15 | static struct flash_info spi_flash_tbl[] = { |
|---|
| 16 | | - /* GD25Q40B */ |
|---|
| 17 | | - { 0xc84013, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x05, 10, 9, 0 }, |
|---|
| 18 | 16 | /* GD25Q32B */ |
|---|
| 19 | 17 | { 0xc84016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 13, 9, 0 }, |
|---|
| 20 | | - /* GD25Q64B/C/E */ |
|---|
| 21 | | - { 0xc84017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
|---|
| 18 | + /* GD25Q64B */ |
|---|
| 19 | + { 0xc84017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
|---|
| 22 | 20 | /* GD25Q127C and GD25Q128C/E */ |
|---|
| 23 | 21 | { 0xc84018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 24 | 22 | /* GD25Q256B/C/D/E */ |
|---|
| .. | .. |
|---|
| 27 | 25 | { 0xc84020, 128, 8, 0x13, 0x12, 0x6C, 0x3E, 0x21, 0xDC, 0x1C, 17, 6, 0 }, |
|---|
| 28 | 26 | /* GD25LQ64C */ |
|---|
| 29 | 27 | { 0xc86017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
|---|
| 30 | | - /* GD25LQ128 */ |
|---|
| 31 | | - { 0xc86018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 15, 9, 0 }, |
|---|
| 32 | 28 | /* GD25LQ32E */ |
|---|
| 33 | 29 | { 0xc86016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 13, 9, 0 }, |
|---|
| 34 | 30 | /* GD25B512MEYIG */ |
|---|
| 35 | 31 | { 0xc8471A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 17, 0, 0 }, |
|---|
| 36 | | - /* GD25LQ255E and GD25LQ256C */ |
|---|
| 37 | | - { 0xc86019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1D, 16, 9, 0 }, |
|---|
| 38 | | - /* GD25LB512MEYIG */ |
|---|
| 39 | | - { 0xc8671A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 17, 0, 0 }, |
|---|
| 40 | 32 | |
|---|
| 41 | 33 | /* W25Q32JV */ |
|---|
| 42 | 34 | { 0xef4016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
|---|
| .. | .. |
|---|
| 82 | 74 | |
|---|
| 83 | 75 | /* XM25QH32C */ |
|---|
| 84 | 76 | { 0x204016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
|---|
| 85 | | - /* XM25QH64C */ |
|---|
| 86 | | - { 0x204017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
|---|
| 87 | | - /* XM25QH128C */ |
|---|
| 88 | | - { 0x204018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x05, 15, 9, 0 }, |
|---|
| 89 | | - /* XM25QH256C */ |
|---|
| 90 | | - { 0x204019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
|---|
| 91 | 77 | /* XM25QH64B */ |
|---|
| 92 | 78 | { 0x206017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 6, 0 }, |
|---|
| 93 | 79 | /* XM25QH128B */ |
|---|
| .. | .. |
|---|
| 96 | 82 | { 0x206019, 128, 8, 0x13, 0x12, 0x6C, 0x3E, 0x21, 0xDC, 0x1D, 16, 6, 0 }, |
|---|
| 97 | 83 | /* XM25QH64A */ |
|---|
| 98 | 84 | { 0x207017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 0, 0 }, |
|---|
| 99 | | - /* XM25QU128C */ |
|---|
| 100 | | - { 0x204118, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 101 | | - /* XM25QU64C */ |
|---|
| 102 | | - { 0x204117, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
|---|
| 103 | 85 | |
|---|
| 104 | 86 | /* XT25F128A XM25QH128A */ |
|---|
| 105 | 87 | { 0x207018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 0, 0 }, |
|---|
| .. | .. |
|---|
| 109 | 91 | { 0x0b4018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 15, 9, 0 }, |
|---|
| 110 | 92 | /* XT25F256BSFIGU */ |
|---|
| 111 | 93 | { 0x0b4019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
|---|
| 112 | | - /* XT25F32BS XT25F32F */ |
|---|
| 94 | + /* XT25F32BS */ |
|---|
| 113 | 95 | { 0x0b4016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 13, 9, 0 }, |
|---|
| 114 | 96 | /* XT25F16BS */ |
|---|
| 115 | 97 | { 0x0b4015, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 12, 9, 0 }, |
|---|
| .. | .. |
|---|
| 133 | 115 | { 0x856018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 134 | 116 | /* P25Q16H-SUH-IT */ |
|---|
| 135 | 117 | { 0x856015, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 12, 9, 0 }, |
|---|
| 136 | | - /* P25Q32SL P25Q32SH-SSH-IT */ |
|---|
| 118 | + /* FM25Q64A */ |
|---|
| 119 | + { 0xf83217, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
|---|
| 120 | + /* FM25M64C */ |
|---|
| 121 | + { 0xf84317, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
|---|
| 122 | + /* P25Q32SL */ |
|---|
| 137 | 123 | { 0x856016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
|---|
| 138 | | - /* PY25Q128H */ |
|---|
| 139 | | - { 0x852018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 140 | 124 | |
|---|
| 141 | 125 | /* ZB25VQ64 */ |
|---|
| 142 | 126 | { 0x5e4017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
|---|
| .. | .. |
|---|
| 150 | 134 | /* BH25Q64BS */ |
|---|
| 151 | 135 | { 0x684017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
|---|
| 152 | 136 | |
|---|
| 137 | + /* P25Q64H */ |
|---|
| 138 | + { 0x856017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
|---|
| 139 | + /* P25Q32SH-SSH-IT */ |
|---|
| 140 | + { 0x856016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
|---|
| 141 | + |
|---|
| 153 | 142 | /* FM25Q128A */ |
|---|
| 154 | 143 | { 0xA14018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 155 | 144 | /* FM25Q64-SOB-T-G */ |
|---|
| .. | .. |
|---|
| 159 | 148 | { 0xf83217, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
|---|
| 160 | 149 | /* FM25M4AA */ |
|---|
| 161 | 150 | { 0xf84218, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 15, 9, 0 }, |
|---|
| 162 | | - /* FM25M64C */ |
|---|
| 163 | | - { 0xf84317, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
|---|
| 164 | | - |
|---|
| 165 | 151 | /* DS25M4AB-1AIB4 */ |
|---|
| 166 | 152 | { 0xe54218, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 167 | 153 | |
|---|
| 168 | 154 | /* GM25Q128A */ |
|---|
| 169 | 155 | { 0x1c4018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
|---|
| 170 | | - |
|---|
| 171 | | - /* IS25LP512M */ |
|---|
| 172 | | - { 0x9D601A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x3C, 17, 6, 0 }, |
|---|
| 173 | | - /* IS25WP512M */ |
|---|
| 174 | | - { 0x9D701A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x3C, 17, 6, 0 }, |
|---|
| 175 | | - |
|---|
| 176 | | - /* BY25Q256FSEIG */ |
|---|
| 177 | | - { 0x684919, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
|---|
| 178 | 156 | }; |
|---|
| 179 | 157 | |
|---|
| 180 | 158 | static int snor_write_en(void) |
|---|
| .. | .. |
|---|
| 744 | 722 | snor_read_id(id_byte); |
|---|
| 745 | 723 | rkflash_print_error("sfc nor id: %x %x %x\n", |
|---|
| 746 | 724 | id_byte[0], id_byte[1], id_byte[2]); |
|---|
| 747 | | - if (0xFF == id_byte[0] || 0x00 == id_byte[0] || 0xFF == id_byte[1] || 0x00 == id_byte[1]) |
|---|
| 725 | + if (0xFF == id_byte[0] || 0x00 == id_byte[0]) |
|---|
| 748 | 726 | return SFC_ERROR; |
|---|
| 749 | 727 | |
|---|
| 750 | 728 | g_spi_flash_info = snor_get_flash_info(id_byte); |
|---|