Index: src/flash/cfi.c
===================================================================
--- src/flash/cfi.c	(revision 636)
+++ src/flash/cfi.c	(working copy)
@@ -93,6 +93,7 @@
 	{CFI_MFR_ST, 0x00D6, cfi_fixup_non_cfi, NULL},
 	{CFI_MFR_AMD, 0x2223, cfi_fixup_non_cfi, NULL},
 	{CFI_MFR_AMD, 0x22ab, cfi_fixup_non_cfi, NULL},
+	{CFI_MFR_SPANS, 0x22ea, cfi_fixup_non_cfi, NULL},
 	{CFI_MFR_FUJITSU, 0x226b, cfi_fixup_non_cfi, NULL},
 	{0, 0, NULL, NULL}
 };
Index: src/flash/cfi.h
===================================================================
--- src/flash/cfi.h	(revision 636)
+++ src/flash/cfi.h	(working copy)
@@ -152,6 +152,7 @@
 #define CFI_MFR_ATMEL	0x001F
 #define CFI_MFR_ST		0x0020	/* STMicroelectronics */
 #define CFI_MFR_SST		0x00BF
+#define CFI_MFR_SPANS   0x0004
 
 #define CFI_MFR_ANY		0xffff
 #define CFI_ID_ANY		0xffff
Index: src/flash/non_cfi.c
===================================================================
--- src/flash/non_cfi.c	(revision 636)
+++ src/flash/non_cfi.c	(working copy)
@@ -170,6 +170,23 @@
 		}
 	},
 	{
+		.mfr = CFI_MFR_SPANS,
+		.id = 0x22ea,
+		.pri_id = 0x02,
+		.dev_size = 0x14,
+		.interface_desc = 0x0,
+		.max_buf_write_size = 0x0,
+		.num_erase_regions = 0x04,
+		.erase_region_info =
+		{
+			0x0100000E,
+			0x00800000,
+			0x00200001,
+			0x00400000,
+			0x00000000
+		}
+	},
+	{
 		.mfr = CFI_MFR_FUJITSU,
 		.id = 0x226b,				/* AM29SL800DB */
 		.pri_id = 0x02,
@@ -264,6 +281,9 @@
 	
 		pri_ext->_reversed_geometry = 0;
 		
+		pri_ext->_unlock1=0x555;
+		pri_ext->_unlock2=0x2aa;
+		
 		cfi_info->pri_ext = pri_ext;
 	} else if ((cfi_info->pri_id == 0x1) || (cfi_info->pri_id == 0x3))
 	{
