Hello, The attached patch adds support for the following Eon SPI flash chips: EN25Q40, EN25Q80, EN25Q32A/B, EN25Q64, and EN25Q128
I was going to add support for the EN25Q16 as well, but found that it shares the same ID as the EN25D16 but has different write protection capabilities. So I added a comment instead.
I do not have real hardware to test with at the moment, so I left the status as untested.
Datasheets available from Eon @ http://www.eonssi.com/products/products.aspx
On Tue, Apr 12, 2011 at 12:58 PM, David Hendricks dhendrix@google.comwrote:
Oops, almost forgot: Signed-off-by: David Hendricks dhendrix@google.com
On Tue, 12 Apr 2011 12:58:35 -0700 David Hendricks dhendrix@google.com wrote:
hello david and thanks for your patch.
i can confirm that the EN25D16 shares the ID with EN25Q16. there is also a EN25QH16 but with another ID 7015h (and an upcoming EN25QH256 w/o data sheet yet).
ok
+#define EON_EN25Q80 0x3014
i could only find references to a chip named EN25Q80A... either add a comment or rename to EON_EN25Q80A?
#define EON_EN25D16 0x3015
i think the twin's name should be noted here too. since the D is untested i would also suggest using Q as the variable name here, because there is no other D supported yet... so -#define EON_EN25D16 0x3015 +#define EON_EN25Q16 0x3015 /* Same as D16 */ or so..
+#define EON_EN25Q32 0x3016
correct; similar to the EON_EN25Q80 there seem to exist 3 versions: 'A', 'B' and no suffix.
+#define EON_EN25Q64 0x3017
ok
+#define EON_EN25Q128 0x3018
ok
somewhere below... +#define EON_EN25QH16 0x7015
change according to the macro name chosen (if applicable see above)
true for the Q, did not check D
.block_erase = spi_block_erase_52, is not supported by the Q version. add a comment please. other erasers seem to be ok with the Q version.
.voltage = {2700, 3600}, (for the Q version)
.voltage = {2700, 3600},
depends on macro name choice above
.voltage = {2700, 3600},
i think that should be (A/B)
.voltage = {2700, 3600},
.voltage = {2700, 3600},
.voltage = {2700, 3600},
although the comment of the array indicates "alphabetically" sorted, it seems most of it is sorted by chipsize (if pushed). that means the entries above should be sorted like the IDs in flashchips.h
also please add a comment to all chips with the respective OTP (=one time programmable) area size. we don't support that yet, nor do we warn the user (yet), but i am sure there is a patch to lure with such a comment... ;) 512B: Q128 Q64 Q32B (QH16)
256B: Q80A Q40
128B: Q16 (but D16 has 512B, oh my...)
most of this are rather small problems. hence if everything i put into this review was at least briefly considered.. it is Acked-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at
Thanks for the review! I've attached an updated patch to address your comments.
I'm still not sure what the best course of action is for dealing with the D16 versus Q16 evil twin scenario. Let's see if Carl-Daniel has further comments.
New patch is: Signed-off-by: David Hendricks dhendrix@google.com
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Thanks for pointing that out. I've added the EN25QH16 to the patch.
As we discussed on IRC, this particular chip supports "Serial Flash Discoverable Parameters" (SFDP). I tried to add support using the values listed in Table 9 of their datasheet, and left a TODO to update the probe routine later on.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Appended "A" to the name.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Added a comment to the line with the EON_EN25D16 #define.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Added comment next to the #define.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
somewhere below... +#define EON_EN25QH16 0x7015
Done. I rearranged the EN25Q* #defines a bit so they're in alphabetical order with respect to the other EN25* chips.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
The EN25D16 was there first... I'm not sure if we should change it. I imagine the D16 is out of production, but I assume *somebody* is using it.
WWCDD? (What Would Carl-Daniel Do?)
The EN25D16's datasheet no longer appears to be listed, but it is still available here: http://www.eonssi.com/upfile/p2008929181445.pdf (found via google :-))
It The D16 manual states, "The Write Status Register (WRSR) instruction allows new values to be written to the Status Register. Before it can be accepted, a Write Enable (WREN) instruction must previously have been executed."
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Done. Nice catch!
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Same as the D version (the original EN25Q* patch came before the .voltage member was added)
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Added .voltage.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Updated to EON_EN25Q80A.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Added the .voltage member.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Fixed.
On Wed, Jun 22, 2011 at 9:15 AM, Stefan Tauner < stefan.tauner@student.tuwien.ac.at> wrote:
Added .voltage members.
Done -- Added the comments above the feature_bits.
most of this are rather small problems. hence if everything i put into