@@ -756,140 +756,252 @@ static const struct spi_nor_fixups s25fs_s_nor_fixups = {
756756};
757757
758758static const struct flash_info spansion_nor_parts [] = {
759- { "s25sl032p" , INFO (0x010215 , 0x4d00 , 64 * 1024 , 64 )
760- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ) },
761- { "s25sl064p" , INFO (0x010216 , 0x4d00 , 64 * 1024 , 128 )
762- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ) },
763- { "s25fl128s0" , INFO6 (0x012018 , 0x4d0080 , 256 * 1024 , 64 )
764- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
765- MFR_FLAGS (USE_CLSR )
766- },
767- { "s25fl128s1" , INFO6 (0x012018 , 0x4d0180 , 64 * 1024 , 256 )
768- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
769- MFR_FLAGS (USE_CLSR )
770- },
771- { "s25fl256s0" , INFO6 (0x010219 , 0x4d0080 , 256 * 1024 , 128 )
772- NO_SFDP_FLAGS (SPI_NOR_SKIP_SFDP | SPI_NOR_DUAL_READ |
773- SPI_NOR_QUAD_READ )
774- MFR_FLAGS (USE_CLSR )
775- },
776- { "s25fl256s1" , INFO6 (0x010219 , 0x4d0180 , 64 * 1024 , 512 )
777- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
778- MFR_FLAGS (USE_CLSR )
779- },
780- { "s25fl512s" , INFO6 (0x010220 , 0x4d0080 , 256 * 1024 , 256 )
781- FLAGS (SPI_NOR_HAS_LOCK )
782- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
783- MFR_FLAGS (USE_CLSR )
784- },
785- { "s25fs128s1" , INFO6 (0x012018 , 0x4d0181 , 64 * 1024 , 256 )
786- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
787- MFR_FLAGS (USE_CLSR )
788- .fixups = & s25fs_s_nor_fixups , },
789- { "s25fs256s0" , INFO6 (0x010219 , 0x4d0081 , 256 * 1024 , 128 )
790- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
791- MFR_FLAGS (USE_CLSR )
792- },
793- { "s25fs256s1" , INFO6 (0x010219 , 0x4d0181 , 64 * 1024 , 512 )
794- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
795- MFR_FLAGS (USE_CLSR )
796- },
797- { "s25fs512s" , INFO6 (0x010220 , 0x4d0081 , 256 * 1024 , 256 )
798- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
799- MFR_FLAGS (USE_CLSR )
800- .fixups = & s25fs_s_nor_fixups , },
801- { "s25sl12800" , INFO (0x012018 , 0x0300 , 256 * 1024 , 64 ) },
802- { "s25sl12801" , INFO (0x012018 , 0x0301 , 64 * 1024 , 256 ) },
803- { "s25fl129p0" , INFO (0x012018 , 0x4d00 , 256 * 1024 , 64 )
804- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
805- MFR_FLAGS (USE_CLSR )
806- },
807- { "s25fl129p1" , INFO (0x012018 , 0x4d01 , 64 * 1024 , 256 )
808- NO_SFDP_FLAGS (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
809- MFR_FLAGS (USE_CLSR )
810- },
811- { "s25sl004a" , INFO (0x010212 , 0 , 64 * 1024 , 8 ) },
812- { "s25sl008a" , INFO (0x010213 , 0 , 64 * 1024 , 16 ) },
813- { "s25sl016a" , INFO (0x010214 , 0 , 64 * 1024 , 32 ) },
814- { "s25sl032a" , INFO (0x010215 , 0 , 64 * 1024 , 64 ) },
815- { "s25sl064a" , INFO (0x010216 , 0 , 64 * 1024 , 128 ) },
816- { "s25fl004k" , INFO (0xef4013 , 0 , 64 * 1024 , 8 )
817- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
818- SPI_NOR_QUAD_READ ) },
819- { "s25fl008k" , INFO (0xef4014 , 0 , 64 * 1024 , 16 )
820- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
821- SPI_NOR_QUAD_READ ) },
822- { "s25fl016k" , INFO (0xef4015 , 0 , 64 * 1024 , 32 )
823- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
824- SPI_NOR_QUAD_READ ) },
825- { "s25fl064k" , INFO (0xef4017 , 0 , 64 * 1024 , 128 )
826- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
827- SPI_NOR_QUAD_READ ) },
828- { "s25fl116k" , INFO (0x014015 , 0 , 64 * 1024 , 32 )
829- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
830- SPI_NOR_QUAD_READ ) },
831- { "s25fl132k" , INFO (0x014016 , 0 , 64 * 1024 , 64 )
832- NO_SFDP_FLAGS (SECT_4K ) },
833- { "s25fl164k" , INFO (0x014017 , 0 , 64 * 1024 , 128 )
834- NO_SFDP_FLAGS (SECT_4K ) },
835- { "s25fl204k" , INFO (0x014013 , 0 , 64 * 1024 , 8 )
836- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ ) },
837- { "s25fl208k" , INFO (0x014014 , 0 , 64 * 1024 , 16 )
838- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ ) },
839- { "s25fl064l" , INFO (0x016017 , 0 , 64 * 1024 , 128 )
840- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
841- FIXUP_FLAGS (SPI_NOR_4B_OPCODES ) },
842- { "s25fl128l" , INFO (0x016018 , 0 , 64 * 1024 , 256 )
843- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
844- FIXUP_FLAGS (SPI_NOR_4B_OPCODES ) },
845- { "s25fl256l" , INFO (0x016019 , 0 , 64 * 1024 , 512 )
846- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
847- FIXUP_FLAGS (SPI_NOR_4B_OPCODES ) },
848- { "s25fs256t" , INFO6 (0x342b19 , 0x0f0890 , 0 , 0 )
849- MFR_FLAGS (USE_CLPEF )
850- .fixups = & s25fs256t_fixups },
851- { "s25hl512t" , INFO6 (0x342a1a , 0x0f0390 , 0 , 0 )
852- MFR_FLAGS (USE_CLPEF )
853- .fixups = & s25hx_t_fixups },
854- { "s25hl01gt" , INFO6 (0x342a1b , 0x0f0390 , 0 , 0 )
855- MFR_FLAGS (USE_CLPEF )
856- .fixups = & s25hx_t_fixups },
857- { "s25hl02gt" , INFO6 (0x342a1c , 0x0f0090 , 0 , 0 )
858- MFR_FLAGS (USE_CLPEF )
859- FLAGS (NO_CHIP_ERASE )
860- .fixups = & s25hx_t_fixups },
861- { "s25hs512t" , INFO6 (0x342b1a , 0x0f0390 , 0 , 0 )
862- MFR_FLAGS (USE_CLPEF )
863- .fixups = & s25hx_t_fixups },
864- { "s25hs01gt" , INFO6 (0x342b1b , 0x0f0390 , 0 , 0 )
865- MFR_FLAGS (USE_CLPEF )
866- .fixups = & s25hx_t_fixups },
867- { "s25hs02gt" , INFO6 (0x342b1c , 0x0f0090 , 0 , 0 )
868- MFR_FLAGS (USE_CLPEF )
869- FLAGS (NO_CHIP_ERASE )
870- .fixups = & s25hx_t_fixups },
871- { "cy15x104q" , INFO6 (0x042cc2 , 0x7f7f7f , 512 * 1024 , 1 )
872- FLAGS (SPI_NOR_NO_ERASE ) },
873- { "s28hl512t" , INFO (0x345a1a , 0 , 0 , 0 )
874- MFR_FLAGS (USE_CLPEF )
759+ {
760+ .id = SNOR_ID (0x01 , 0x02 , 0x15 , 0x4d , 0x00 ),
761+ .name = "s25sl032p" ,
762+ .size = SZ_4M ,
763+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
764+ }, {
765+ .id = SNOR_ID (0x01 , 0x02 , 0x16 , 0x4d , 0x00 ),
766+ .name = "s25sl064p" ,
767+ .size = SZ_8M ,
768+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
769+ }, {
770+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x4d , 0x00 , 0x80 ),
771+ .name = "s25fl128s0" ,
772+ .size = SZ_16M ,
773+ .sector_size = SZ_256K ,
774+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
775+ .mfr_flags = USE_CLSR ,
776+ }, {
777+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x4d , 0x01 , 0x80 ),
778+ .name = "s25fl128s1" ,
779+ .size = SZ_16M ,
780+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
781+ .mfr_flags = USE_CLSR ,
782+ }, {
783+ .id = SNOR_ID (0x01 , 0x02 , 0x19 , 0x4d , 0x00 , 0x80 ),
784+ .name = "s25fl256s0" ,
785+ .size = SZ_32M ,
786+ .sector_size = SZ_256K ,
787+ .no_sfdp_flags = SPI_NOR_SKIP_SFDP | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
788+ .mfr_flags = USE_CLSR ,
789+ }, {
790+ .id = SNOR_ID (0x01 , 0x02 , 0x19 , 0x4d , 0x01 , 0x80 ),
791+ .name = "s25fl256s1" ,
792+ .size = SZ_32M ,
793+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
794+ .mfr_flags = USE_CLSR ,
795+ }, {
796+ .id = SNOR_ID (0x01 , 0x02 , 0x20 , 0x4d , 0x00 , 0x80 ),
797+ .name = "s25fl512s" ,
798+ .size = SZ_64M ,
799+ .sector_size = SZ_256K ,
800+ .flags = SPI_NOR_HAS_LOCK ,
801+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
802+ .mfr_flags = USE_CLSR ,
803+ }, {
804+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x4d , 0x01 , 0x81 ),
805+ .name = "s25fs128s1" ,
806+ .size = SZ_16M ,
807+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
808+ .mfr_flags = USE_CLSR ,
809+ .fixups = & s25fs_s_nor_fixups ,
810+ }, {
811+ .id = SNOR_ID (0x01 , 0x02 , 0x19 , 0x4d , 0x00 , 0x81 ),
812+ .name = "s25fs256s0" ,
813+ .size = SZ_32M ,
814+ .sector_size = SZ_256K ,
815+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
816+ .mfr_flags = USE_CLSR ,
817+ }, {
818+ .id = SNOR_ID (0x01 , 0x02 , 0x19 , 0x4d , 0x01 , 0x81 ),
819+ .name = "s25fs256s1" ,
820+ .size = SZ_32M ,
821+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
822+ .mfr_flags = USE_CLSR ,
823+ }, {
824+ .id = SNOR_ID (0x01 , 0x02 , 0x20 , 0x4d , 0x00 , 0x81 ),
825+ .name = "s25fs512s" ,
826+ .size = SZ_64M ,
827+ .sector_size = SZ_256K ,
828+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
829+ .mfr_flags = USE_CLSR ,
830+ .fixups = & s25fs_s_nor_fixups ,
831+ }, {
832+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x03 , 0x00 ),
833+ .name = "s25sl12800" ,
834+ .size = SZ_16M ,
835+ .sector_size = SZ_256K ,
836+ }, {
837+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x03 , 0x01 ),
838+ .name = "s25sl12801" ,
839+ .size = SZ_16M ,
840+ }, {
841+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x4d , 0x00 ),
842+ .name = "s25fl129p0" ,
843+ .size = SZ_16M ,
844+ .sector_size = SZ_256K ,
845+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
846+ .mfr_flags = USE_CLSR ,
847+ }, {
848+ .id = SNOR_ID (0x01 , 0x20 , 0x18 , 0x4d , 0x01 ),
849+ .name = "s25fl129p1" ,
850+ .size = SZ_16M ,
851+ .no_sfdp_flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
852+ .mfr_flags = USE_CLSR ,
853+ }, {
854+ .id = SNOR_ID (0x01 , 0x02 , 0x12 ),
855+ .name = "s25sl004a" ,
856+ .size = SZ_512K ,
857+ }, {
858+ .id = SNOR_ID (0x01 , 0x02 , 0x13 ),
859+ .name = "s25sl008a" ,
860+ .size = SZ_1M ,
861+ }, {
862+ .id = SNOR_ID (0x01 , 0x02 , 0x14 ),
863+ .name = "s25sl016a" ,
864+ .size = SZ_2M ,
865+ }, {
866+ .id = SNOR_ID (0x01 , 0x02 , 0x15 ),
867+ .name = "s25sl032a" ,
868+ .size = SZ_4M ,
869+ }, {
870+ .id = SNOR_ID (0x01 , 0x02 , 0x16 ),
871+ .name = "s25sl064a" ,
872+ .size = SZ_8M ,
873+ }, {
874+ .id = SNOR_ID (0xef , 0x40 , 0x13 ),
875+ .name = "s25fl004k" ,
876+ .size = SZ_512K ,
877+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
878+ }, {
879+ .id = SNOR_ID (0xef , 0x40 , 0x14 ),
880+ .name = "s25fl008k" ,
881+ .size = SZ_1M ,
882+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
883+ }, {
884+ .id = SNOR_ID (0xef , 0x40 , 0x15 ),
885+ .name = "s25fl016k" ,
886+ .size = SZ_2M ,
887+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
888+ }, {
889+ .id = SNOR_ID (0xef , 0x40 , 0x17 ),
890+ .name = "s25fl064k" ,
891+ .size = SZ_8M ,
892+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
893+ }, {
894+ .id = SNOR_ID (0x01 , 0x40 , 0x15 ),
895+ .name = "s25fl116k" ,
896+ .size = SZ_2M ,
897+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
898+ }, {
899+ .id = SNOR_ID (0x01 , 0x40 , 0x16 ),
900+ .name = "s25fl132k" ,
901+ .size = SZ_4M ,
902+ .no_sfdp_flags = SECT_4K ,
903+ }, {
904+ .id = SNOR_ID (0x01 , 0x40 , 0x17 ),
905+ .name = "s25fl164k" ,
906+ .size = SZ_8M ,
907+ .no_sfdp_flags = SECT_4K ,
908+ }, {
909+ .id = SNOR_ID (0x01 , 0x40 , 0x13 ),
910+ .name = "s25fl204k" ,
911+ .size = SZ_512K ,
912+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ ,
913+ }, {
914+ .id = SNOR_ID (0x01 , 0x40 , 0x14 ),
915+ .name = "s25fl208k" ,
916+ .size = SZ_1M ,
917+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ ,
918+ }, {
919+ .id = SNOR_ID (0x01 , 0x60 , 0x17 ),
920+ .name = "s25fl064l" ,
921+ .size = SZ_8M ,
922+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
923+ .fixup_flags = SPI_NOR_4B_OPCODES ,
924+ }, {
925+ .id = SNOR_ID (0x01 , 0x60 , 0x18 ),
926+ .name = "s25fl128l" ,
927+ .size = SZ_16M ,
928+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
929+ .fixup_flags = SPI_NOR_4B_OPCODES ,
930+ }, {
931+ .id = SNOR_ID (0x01 , 0x60 , 0x19 ),
932+ .name = "s25fl256l" ,
933+ .size = SZ_32M ,
934+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
935+ .fixup_flags = SPI_NOR_4B_OPCODES ,
936+ }, {
937+ .id = SNOR_ID (0x34 , 0x2b , 0x19 , 0x0f , 0x08 , 0x90 ),
938+ .name = "s25fs256t" ,
939+ .mfr_flags = USE_CLPEF ,
940+ .fixups = & s25fs256t_fixups
941+ }, {
942+ .id = SNOR_ID (0x34 , 0x2a , 0x1a , 0x0f , 0x03 , 0x90 ),
943+ .name = "s25hl512t" ,
944+ .mfr_flags = USE_CLPEF ,
945+ .fixups = & s25hx_t_fixups
946+ }, {
947+ .id = SNOR_ID (0x34 , 0x2a , 0x1b , 0x0f , 0x03 , 0x90 ),
948+ .name = "s25hl01gt" ,
949+ .mfr_flags = USE_CLPEF ,
950+ .fixups = & s25hx_t_fixups
951+ }, {
952+ .id = SNOR_ID (0x34 , 0x2a , 0x1c , 0x0f , 0x00 , 0x90 ),
953+ .name = "s25hl02gt" ,
954+ .mfr_flags = USE_CLPEF ,
955+ .flags = NO_CHIP_ERASE ,
956+ .fixups = & s25hx_t_fixups
957+ }, {
958+ .id = SNOR_ID (0x34 , 0x2b , 0x1a , 0x0f , 0x03 , 0x90 ),
959+ .name = "s25hs512t" ,
960+ .mfr_flags = USE_CLPEF ,
961+ .fixups = & s25hx_t_fixups
962+ }, {
963+ .id = SNOR_ID (0x34 , 0x2b , 0x1b , 0x0f , 0x03 , 0x90 ),
964+ .name = "s25hs01gt" ,
965+ .mfr_flags = USE_CLPEF ,
966+ .fixups = & s25hx_t_fixups
967+ }, {
968+ .id = SNOR_ID (0x34 , 0x2b , 0x1c , 0x0f , 0x00 , 0x90 ),
969+ .name = "s25hs02gt" ,
970+ .mfr_flags = USE_CLPEF ,
971+ .flags = NO_CHIP_ERASE ,
972+ .fixups = & s25hx_t_fixups
973+ }, {
974+ .id = SNOR_ID (0x04 , 0x2c , 0xc2 , 0x7f , 0x7f , 0x7f ),
975+ .name = "cy15x104q" ,
976+ .size = SZ_512K ,
977+ .sector_size = SZ_512K ,
978+ .flags = SPI_NOR_NO_ERASE ,
979+ }, {
980+ .id = SNOR_ID (0x34 , 0x5a , 0x1a ),
981+ .name = "s28hl512t" ,
982+ .mfr_flags = USE_CLPEF ,
875983 .fixups = & s28hx_t_fixups ,
876- },
877- { "s28hl01gt" , INFO (0x345a1b , 0 , 0 , 0 )
878- MFR_FLAGS (USE_CLPEF )
984+ }, {
985+ .id = SNOR_ID (0x34 , 0x5a , 0x1b ),
986+ .name = "s28hl01gt" ,
987+ .mfr_flags = USE_CLPEF ,
879988 .fixups = & s28hx_t_fixups ,
880- },
881- { "s28hs512t" , INFO (0x345b1a , 0 , 0 , 0 )
882- MFR_FLAGS (USE_CLPEF )
989+ }, {
990+ .id = SNOR_ID (0x34 , 0x5b , 0x1a ),
991+ .name = "s28hs512t" ,
992+ .mfr_flags = USE_CLPEF ,
883993 .fixups = & s28hx_t_fixups ,
884- },
885- { "s28hs01gt" , INFO (0x345b1b , 0 , 0 , 0 )
886- MFR_FLAGS (USE_CLPEF )
994+ }, {
995+ .id = SNOR_ID (0x34 , 0x5b , 0x1b ),
996+ .name = "s28hs01gt" ,
997+ .mfr_flags = USE_CLPEF ,
887998 .fixups = & s28hx_t_fixups ,
888- },
889- { "s28hs02gt" , INFO (0x345b1c , 0 , 0 , 0 )
890- MFR_FLAGS (USE_CLPEF )
999+ }, {
1000+ .id = SNOR_ID (0x34 , 0x5b , 0x1c ),
1001+ .name = "s28hs02gt" ,
1002+ .mfr_flags = USE_CLPEF ,
8911003 .fixups = & s28hx_t_fixups ,
892- },
1004+ }
8931005};
8941006
8951007/**
0 commit comments