Add support for GD25LQ256D [1].  I have tested both reading and writing
complete ROM to this device using FT2232H (Tigard board) [2] connected
to the GD25LQ256D on the BeagleV dev board [3].

[1] https://www.gigadevice.com/flash-memory/gd25lq256d/
[2] https://github.com/tigard-tools/tigard
[3] https://beagleboard.org/beaglev

Cc: Nico Huber <[email protected]>
Signed-off-by: Drew Fustini <[email protected]>
---
Thanks very much to icon (Nico Huber) on #flashrom for the assistance!

 flashchips.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 flashchips.h |  1 +
 2 files changed, 49 insertions(+)

diff --git a/flashchips.c b/flashchips.c
index 6d94a1252aad..55ccac642ad7 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -6669,6 +6669,54 @@ const struct flashchip flashchips[] = {
                .voltage        = {2700, 3600},
        },
 
+       {
+               .vendor         = "GigaDevice",
+               .name           = "GD25LQ256D",
+               .bustype        = BUS_SPI,
+               .manufacture_id = GIGADEVICE_ID,
+               .model_id       = GIGADEVICE_GD25LQ256D,
+               .total_size     = 32768,
+               .page_size      = 256,
+               .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP | 
FEATURE_4BA_ENTER,
+               .tested         = TEST_UNTESTED,
+               .probe          = probe_spi_rdid,
+               .probe_timing   = TIMING_ZERO,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 8192} },
+                               .block_erase = spi_block_erase_21,
+                       }, {
+                               .eraseblocks = { {4 * 1024, 8192} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 1024} },
+                               .block_erase = spi_block_erase_5c,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 1024} },
+                               .block_erase = spi_block_erase_52,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 512} },
+                               .block_erase = spi_block_erase_dc,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 512} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {32 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_60,
+                       }, {
+                               .eraseblocks = { {32 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       }
+               },
+               .printlock      = spi_prettyprint_status_register_bp3_srwd,
+               .unlock         = spi_disable_blockprotect,
+               .write          = spi_chip_write_256,
+               .read           = spi_chip_read,
+               .voltage        = {1650, 2000},
+       },
+
+
        {
                .vendor         = "GigaDevice",
                .name           = "GD25Q32(B)",
diff --git a/flashchips.h b/flashchips.h
index a85fa6a6bf71..2340d92a917f 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -398,6 +398,7 @@
 #define GIGADEVICE_GD25LQ32    0x6016
 #define GIGADEVICE_GD25LQ64    0x6017  /* Same as GD25LQ64B (which is faster) 
*/
 #define GIGADEVICE_GD25LQ128CD 0x6018
+#define GIGADEVICE_GD25LQ256D  0x6019
 #define GIGADEVICE_GD25WQ80E   0x6514
 #define GIGADEVICE_GD29GL064CAB        0x7E0601
 
-- 
2.25.1

_______________________________________________
flashrom mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to