[flashrom] [Patch] Added SST25LF080A Flash Chip

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Wed Apr 13 21:04:38 CEST 2011


On Wed, 13 Apr 2011 14:11:00 -0400
Zeus Castro <thezeusjuice at gmail.com> wrote:


> > disclamer: this is my first patch review for flashrom.
> disclamer: this is my first patch ever :-)
> Also, although I'm a decent programmer, my knowledge of C is pretty
> limited.
> 
> Based on the datasheets of both, the SST25LF080A is basically a larger
> version of the SST25LF040A.
> However, flashrom had an entry for SST25LF040A, but not for
> SST25LF080A. As such, I modeled it after the entry for SST25LF040A,
> and altered the values that differed.
thought so. that's what i and probably all without better insights
usually do. my comments were mostly meant to show what i think is the
right thing to do, not in your patch alone but on the whole in the code
related to it. that's probably the wrong stand when one reviews a
concrete patch, but it feels natural and the reviews i received were
similar. in this case my patch would probably be very similar to yours.
with the exception of the .RES _REMS suffices:

> >> +             .name           = "SST25LF080A.RES",
> > i dont see a reason why you are using .RES here.
> > according to the datasheet REMS work as well as RES.
> > but maybe i dont know some detail.
> >
> >> +             .probe          = probe_spi_res2,
> > ok, or probe_spi_rems
> >
> I was confused as well as to why the oscillation between REMS, RES,
> and RES2 in the SST25LF040A entry, but figured that there was probably
> a reason I did not understand, and copied it over in the same manner.
> So, you recommend I change it all to REMS?
i would remove the .RES from the name, the probe method is ok.
i dont understand it either, maybe someone else can clear that up.

> >> Index: flashchips.h
> >
> >> -#define SST_SST25VF080_REMS  0x80    /* REMS or RES opcode */
> >> +#define SST_SST25VF080_REMS  0x80    /* REMS or RES opcode, same
> >> as SST25LF080A */
> >
> > since the SST25VF080 is not implemented and that define is not used
> > at all as far as i (and grep) can see, there is no reason to use
> > the rems suffix imho.
> >
> Apparently SST25VFxxx and SST25LFxxx chips often share the same
> REMS/RES device id. And since the one for  SST25LF040A was "tacked on"
> to the define for SST25VF040_REMS (since they use the same byte), and
> there was an already existing define for SST25VF080_REMS (which uses
> the same byte as I was planning to include for the SST25LF080A), I
> just "tacked on" the SST25LF080A in the same manner. So, you recommend
> I change it to read?:
> #define SST_SST25LF080A  0x80"
i dont like the _REMS suffix, just like above.
the "same as xyz"-strategy is used all over in flashrom.h and is ok.

> >> +             .tested         = TEST_UNTESTED,
> > did you really not test it? why have you added it?
> >
> The only sample I have is currently inside my laptop, and flashrom
> access to it is being blocked by the EC/KBC (an ENE KB926).
> Besides, there are about 170 untested chips in flashchips.c, so I
> figured one more, especially based on an incremental upgrade to a
> probe-tested chip (SST25LF040A), wouldn't be problematic.
no problem at all, i just wanted to know.

> >> +             .unlock         = spi_disable_blockprotect,
> > this will not work if bit 7 (BPL) is set
> > some of the at25* write protections are similar. one might use them.
> >
> spi_disable_blockprotect is sufficient for this chip:
> The important bits are 2-5 (although this chip only cares about 2 and
> 3). If those bits are 0, the chip isn't protected.
> If there is protection, spi_disable_blockprotect correctly attempts to
> set them to 0, and checks if it succeeded.
> The only way it can fail is if bit 7 is set and the Write Protect Pin
> (WP#) is being pulled low, in which case there is nothing that can be
> done (block protection cannot be disabled without reseting the chip)
> and spi_disable_blockprotect returns 1.
> No additional functionality is possible.
> 
correct. i missed the point, that WRSR is not possible when BPL is set.

all in all it looks ok, thanks for your effort!
due to the rems/res stuff someone else needs to take a look (i dont
have commit rights anyway).

-- 
Kind regards/Mit freundlichen Grüßen, Stefan Tauner




More information about the flashrom mailing list