[flashrom] [PATCH] Confirm EN29LV800 bus, timing, and page size

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Mon Mar 15 04:36:57 CET 2010

Hi TJ,

thanks for your EN29LV800 patches.
The caveat mentioned by Sean is indeed something important. Looking at
the EN29LV800 datasheet, you'll find the following description:
"8 Megabit (1024K x 8-bit / 512K x 16-bit) Flash Memory"
This indicates a dual-mode flash, and that means you have to use
different addresses for commands depending on whether you're using that
chip in 8-bit or 16-bit mode.
Table 5 (EN29LV800 Command Definitions) in said datasheet lists command
addresses for Word mode and Byte mode. Word mode uses standard JEDEC
addresses, but Byte mode uses JEDEC addresses shifted left by 1 bit.
These flash chips are wired to 8 bit on x86 mainboards, so you have to
pick the command addresses in Byte mode.

On 06.02.2010 10:29, Sean Nelson wrote:
> On 2/5/10 8:05 PM, TJ wrote:
>> On Fri, 2010-02-05 at 18:59 -0800, Sean Nelson wrote:   
>>> EN29LV800 is not a JEDEC compatible chip, it uses an odd command
>>> sequence like the M29F400BT
>> Are EON incorrect in the datasheet then, or is there a subtle
>> distinction between what flashrom means with JEDEC and what EON mean?
>> The datasheet says:
>> • JEDEC Standard program and erase commands
>> • JEDEC standard DATA polling and toggle bits feature
> JEDEC has a 5555/2AAA/5555 command sequence, where as EON uses a
> AAA/555/AAA. Our code is byte based.

m29f400bt.c is very similar to jedec.c, but it uses JEDEC addresses left
shifted by 1 bit, so I think using the functions in that file should
mostly work. There might be a need to rewrite the erase/write functions
to be more generic (well, to look similar to those in jedec.c instead of
hard-coding the eraseblock layout).
A good start to copy the flash chip definition from is probably the
M29F400BT entry. If you decide to modify your current patch instead,
please make sure to adjust the .feature_bits and to remove the .erase
line (the latter has been eliminated in latest flashrom).

I hope this explanation was helpful for you.

If possible, please provide one combined patch for the EN29LF800 against
latest flashrom, and add your signoff. That makes it easier to review
and apply the patch. If you believe the patch is not ready yet, just
mention that in the mail and we'll wait with applying and/or do a more
thorough review.


"I do consider assignment statements and pointer variables to be among
computer science's most valuable treasures."
-- Donald E. Knuth

More information about the flashrom mailing list