diff --git a/src/spiFlashdb.hpp b/src/spiFlashdb.hpp index 0fdebec..7b17324 100644 --- a/src/spiFlashdb.hpp +++ b/src/spiFlashdb.hpp @@ -766,6 +766,40 @@ static std::map flash_list = { .quad_mask = 0, .global_lock = false, }}, + {0xef6019, { + /* Winbond W25Q25PW (1.8V), 256 Mbit / 32 MiB. Requires 4-byte addressing. */ + .manufacturer = "Winbond", + .model = "W25Q25PW", + .nr_sector = 512, + .sector_erase = true, + .subsector_erase = true, + .has_extended = false, + .tb_otp = false, + .tb_offset = (1 << 6), // TB (SR1 S6) + .tb_register = STATR, + .bp_len = 4, + .bp_offset = {(1 << 2), (1 << 3), (1 << 4), (1 << 5)}, + .quad_register = CONFR, + .quad_mask = (1 << 1), // QE = SR2 S9 = bit1 of byte read by RDSR-2 (0x35) + .global_lock = false, + }}, + {0xef8019, { + /* Winbond W25Q25PW newer-gen die that reports memory-type 0x80. */ + .manufacturer = "Winbond", + .model = "W25Q25PW", + .nr_sector = 512, + .sector_erase = true, + .subsector_erase = true, + .has_extended = false, + .tb_otp = false, + .tb_offset = (1 << 6), // TB (SR1 S6) + .tb_register = STATR, + .bp_len = 4, + .bp_offset = {(1 << 2), (1 << 3), (1 << 4), (1 << 5)}, + .quad_register = CONFR, + .quad_mask = (1 << 1), // QE = SR2 S9 = bit1 of byte read by RDSR-2 (0x35) + .global_lock = false, + }}, {0x6bbb14, { .manufacturer = "Everspin", .model = "EM008LX",