Nico Huber has uploaded this change for review. ( https://review.coreboot.org/23805
Change subject: Add support for EN29LV800(A/B/C) (was: Confirm EN29LV800 bus, timing, and page size) ......................................................................
Add support for EN29LV800(A/B/C) (was: Confirm EN29LV800 bus, timing, and page size)
This is based on TJ's patches from 2010, see http://patchwork.coreboot.org/patch/883/ http://patchwork.coreboot.org/patch/884/
I have rebased and combined them, added voltages, corrected the names and verified the erase block layouts. Someone else needs to review/change the parallel-specific parts, because i have no idea about all those jedec vs. 3-byte vs. shifted problems (and i actually do not want to know :P).
From e30a0ec21ad12c54ff8a9751005103559122a180 Mon Sep 17 00:00:00 2001
From: Stefan Tauner stefan.tauner@student.tuwien.ac.at Date: Tue, 2 Aug 2011 16:33:21 +0200 Subject: [PATCH] Add support for EN29LV800(A/B/C)
Change-Id: I22b6f18c366144d2e48bc1e2919cfebb3e65e168 Signed-off-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at --- M flashchips.c M flashchips.h 2 files changed, 66 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/05/23805/1
diff --git a/flashchips.c b/flashchips.c index b6296c5..f1e0ee4 100644 --- a/flashchips.c +++ b/flashchips.c @@ -3517,6 +3517,70 @@
{ .vendor = "Eon", + .name = "EN29LV800(A/B/C)B", + .bustype = BUS_PARALLEL, + .manufacture_id = EON_ID, + .model_id = EON_EN29LV800B, + .total_size = 1024, + .page_size = 1024, + .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, + .tested = TEST_UNTESTED, + .probe = probe_jedec, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { + {16 * 1024, 1}, + {8 * 1024, 2}, + {32 * 1024, 1}, + {64 * 1024, 15}, + }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {1024 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, + .write = NULL, + .read = read_memmapped, + .voltage = {3000, 3600}, /* 3.0-3.6V for type -70R, -55R, others 2.7-3.6V */ + }, + + { + .vendor = "Eon", + .name = "EN29LV800(A/B/C)T", + .bustype = BUS_PARALLEL, + .manufacture_id = EON_ID, + .model_id = EON_EN29LV800T, + .total_size = 1024, + .page_size = 1024, + .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, + .tested = TEST_UNTESTED, + .probe = probe_jedec, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { + {64 * 1024, 15}, + {32 * 1024, 1}, + {8 * 1024, 2}, + {16 * 1024, 1}, + }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {1024 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, + .write = NULL, + .read = read_memmapped, + .voltage = {3000, 3600}, /* 3.0-3.6V for type -70R, -55R, others 2.7-3.6V */ + }, + + { + .vendor = "Eon", .name = "EN29F002(A)(N)B", .bustype = BUS_PARALLEL, .manufacture_id = EON_ID, diff --git a/flashchips.h b/flashchips.h index de3c79d..c44972a 100644 --- a/flashchips.h +++ b/flashchips.h @@ -256,6 +256,8 @@ #define EON_EN29F040A 0x7F04 #define EON_EN29LV010 0x7F6E #define EON_EN29LV040A 0x7F4F /* EN29LV040(A) */ +#define EON_EN29LV800B 0x7F5B /* EN29LV800(A/B/C) bottom */ +#define EON_EN29LV800T 0x7FDA /* EN29LV800(A/B/C) top */ #define EON_EN29F002T 0x7F92 /* Same as EN29F002A */ #define EON_EN29F002B 0x7F97 /* Same as EN29F002AN */