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
