changeset 559:f229efbfd581

fc-loadtool: added support for S29PL032J/S71PL032J flash
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 30 Jan 2020 06:03:42 +0000
parents a59a7f838fce
children 641d816b1e91
files loadtools/flashid.c loadtools/fldevs.c
diffstat 2 files changed, 43 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/loadtools/flashid.c	Wed Jan 29 08:03:19 2020 +0000
+++ b/loadtools/flashid.c	Thu Jan 30 06:03:42 2020 +0000
@@ -15,6 +15,7 @@
 extern struct flash_device flashdev_28F640W30T;
 extern struct flash_device flashdev_28F640W30B;
 extern struct flash_device flashdev_Am29DL640G;
+extern struct flash_device flashdev_PL032J;
 extern struct flash_device flashdev_PL129J;
 extern struct flash_device flashdev_PL129N;
 extern struct flash_device flashdev_K5A32xx_T;
@@ -114,6 +115,8 @@
 		return spansion_pl129j_or_n(bi);
 	if (ext1 == 0x2202 && ext2 == 0x2201)
 		return try_device(bi, &flashdev_Am29DL640G);
+	if (ext1 == 0x220A && ext2 == 0x2201)
+		return try_device(bi, &flashdev_PL032J);
 	fprintf(stderr, "Error: unknown device ID\n");
 	return(-1);
 }
--- a/loadtools/fldevs.c	Wed Jan 29 08:03:19 2020 +0000
+++ b/loadtools/fldevs.c	Thu Jan 30 06:03:42 2020 +0000
@@ -241,6 +241,46 @@
 
 /* Spansion S71PL-J and S71PL-N flash */
 
+static struct cfi_check spansion_PL032J_cfi[] = {
+	{0x10, 'Q'},
+	{0x11, 'R'},
+	{0x12, 'Y'},
+	{0x13, 0x02},
+	{0x14, 0x00},
+	{0x15, 0x40},
+	{0x16, 0x00},
+	{0x27, 0x16},
+	{0x2C, 0x03},
+	{0x2D, 0x07},
+	{0x2E, 0x00},
+	{0x2F, 0x20},
+	{0x30, 0x00},
+	{0x31, 0x3D},
+	{0x32, 0x00},
+	{0x33, 0x00},
+	{0x34, 0x01},
+	{0x35, 0x07},
+	{0x36, 0x00},
+	{0x37, 0x20},
+	{0x38, 0x00},
+	{0x40, 'P'},
+	{0x41, 'R'},
+	{0x42, 'I'},
+	{0x43, '1'},
+	{0x44, '3'},
+	{-1,   0}
+};
+
+struct flash_device flashdev_PL032J = {
+	.name			= "Spansion S29PL032J",
+	.cfi_table		= spansion_PL032J_cfi,
+	.required_global_config	= FLASH_GLOBAL_CFG_SINGLE_4M,
+	.bank_geom		= {&geom_4M_bothends, 0},
+	.cmdset			= &flash_cmdset_amd,
+};
+
+/* S29PL064J/S71PL064J is identical to Am29DL640G covered above */
+
 static struct cfi_check spansion_PL129J_cfi[] = {
 	{0x10, 'Q'},
 	{0x11, 'R'},