On Sat, 1 Aug 2015 08:34:58 +0200
"Ignatius Grippa" <[email protected]> wrote:

> I found a solution that works.
> I changed the AM29F010A/B entry inside flashchips.c
> Under ".feature_bits" I removed FEATURE_ADDR_2AA leaving only 
> FEATURE_EITHER_RESET, After recompiling, flashrom now detects my Am29F010 and 
> it also successfully reads and writes!
> I'm not a programmer so I can't explain why this works but it does.

Hi,

that feature flag changes the behavior of the probe command and is
exactly what was needed to get the AM29F010 version to work, thanks for
digging this up. I have created a patch that splits the old definition
into two, which allows to distinguish the chips. I'd be glad if you
could test it if you still have the hardware. The patch is attached.

-- 
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
>From d305cc50f43c86796874b00847beb5bff61513ed Mon Sep 17 00:00:00 2001
From: Stefan Tauner <[email protected]>
Date: Fri, 25 Dec 2015 03:23:15 +0100
Subject: [PATCH] Separate Am29F010 from Am29F010A/B definitions.

The earlier versions of the chip require 0x2AAA for probes thus split the
definitions.

Signed-off-by: Stefan Tauner <[email protected]>
---
 flashchips.c | 29 ++++++++++++++++++++++++++++-
 flashchips.h |  2 +-
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/flashchips.c b/flashchips.c
index 44d3123..1afe42d 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -59,10 +59,37 @@ const struct flashchip flashchips[] = {
 
 	{
 		.vendor		= "AMD",
+		.name		= "Am29F010",
+		.bustype	= BUS_PARALLEL,
+		.manufacture_id	= AMD_ID,
+		.model_id	= AMD_AM29F010,
+		.total_size	= 128,
+		.page_size	= 16 * 1024,
+		.feature_bits	= FEATURE_SHORT_RESET,
+		.tested		= TEST_OK_PREW,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {16 * 1024, 8} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {128 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+		.voltage	= {4500, 5500},
+	},
+
+	{
+		.vendor		= "AMD",
 		.name		= "Am29F010A/B",
 		.bustype	= BUS_PARALLEL,
 		.manufacture_id	= AMD_ID,
-		.model_id	= AMD_AM29F010B,	/* Same as Am29F010A */
+		.model_id	= AMD_AM29F010,
 		.total_size	= 128,
 		.page_size	= 16 * 1024,
 		.feature_bits	= FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
diff --git a/flashchips.h b/flashchips.h
index 6ff2ebc..c971969 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -64,7 +64,7 @@
 #define AMD_AM29F004BB		0x7B
 #define AMD_AM29F004BT		0x77
 #define AMD_AM29F016D		0xAD
-#define AMD_AM29F010B		0x20	/* Same as Am29F010A */
+#define AMD_AM29F010		0x20	/* Same as Am29F010A and Am29F010B */
 #define AMD_AM29F040B		0xA4
 #define AMD_AM29F080B		0xD5
 #define AMD_AM29F200BB		0x57
-- 
Kind regards, Stefan Tauner

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to