diff mbox series

Add support for GD25LQ256D

Message ID 20210227221854.819337-1-drew@beagleboard.org
State New
Headers show
Series Add support for GD25LQ256D | expand

Commit Message

Drew Fustini Feb. 27, 2021, 10:18 p.m. UTC
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 <nico.h@gmx.de>
Signed-off-by: Drew Fustini <drew@beagleboard.org>
---
Thanks very much to icon (Nico Huber) on #flashrom for the assistance!

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

Comments

Edward O'Callaghan Feb. 28, 2021, 1:20 a.m. UTC | #1
On Sun, 28 Feb 2021 at 09:45, Drew Fustini <drew@beagleboard.org> wrote:
>
> 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 <nico.h@gmx.de>
> Signed-off-by: Drew Fustini <drew@beagleboard.org>

Reviewed-by: Edward O'Callaghan <quasisec@google.com>

Do you think you could send it into gerrit for review and merge though?

> ---
> 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 -- flashrom@flashrom.org
> To unsubscribe send an email to flashrom-leave@flashrom.org
Drew Fustini Feb. 28, 2021, 6:32 a.m. UTC | #2
On Sun, Feb 28, 2021 at 12:20:28PM +1100, Edward O'Callaghan wrote:
> On Sun, 28 Feb 2021 at 09:45, Drew Fustini <drew@beagleboard.org> wrote:
> >
> > 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 <nico.h@gmx.de>
> > Signed-off-by: Drew Fustini <drew@beagleboard.org>
> 
> Reviewed-by: Edward O'Callaghan <quasisec@google.com>
> 
> Do you think you could send it into gerrit for review and merge though?

Sure, I've gone through instructions on the wiki and hopefully I have
done this correctly:

https://review.coreboot.org/c/flashrom/+/51113

Thanks,
Drew
> 
> > ---
> > 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 -- flashrom@flashrom.org
> > To unsubscribe send an email to flashrom-leave@flashrom.org
diff mbox series

Patch

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