Patchwork patch to enable Eon EN29F040A

login
register
about
Submitter Jim Rowan
Date 2014-04-09 03:58:34
Message ID <509A43C0-C690-4589-99EC-2D828B50A72B@computing.com>
Download mbox | patch
Permalink /patch/4127/
State New
Headers show

Comments

Jim Rowan - 2014-04-09 03:58:34
The following is based on work originally posted to the list by Alex  
Mauer in 2008, here: http://www.coreboot.org/pipermail/coreboot/2008-October/040212.html

I don't claim to really know what I'm doing ... but I've tested this  
on a Winnet P680 v 1.2 motherboard (in a Neoware ca22) with this flash  
chip on it.  I read the rom, erased it, read the erased image (which  
appeared to be empty via od -c), wrote the original rom back, and  
rebooted sucessfully.

Thanks,
Jim

(Note: I'm not on the list; please reply directly: jmr   at   c o m p  
u t i n g.com)

Patch

Index: flashchips.c
===================================================================
--- flashchips.c	(revision 1769)
+++ flashchips.c	(working copy)
@@ -4678,6 +4678,33 @@ 

	{
		.vendor		= "Eon",
+		.name		= "EN29F040A",
+		.bustype	= BUS_PARALLEL,
+		.manufacture_id	= EON_ID,
+		.model_id	= EON_EN29F040A,
+		.total_size	= 512,
+		.page_size	= 64 * 1024,
+		.feature_bits	= FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
+		.tested		= TEST_OK_PREW,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO, /* datasheet specifies no timing */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {64 * 1024, 8} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			}
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
+	},
+
+	{
+		.vendor		= "Eon",
		.name		= "EN29LV640B",
		.bustype	= BUS_PARALLEL,
		.manufacture_id	= EON_ID,