diff options
author | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2012-08-27 15:12:36 +0000 |
---|---|---|
committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2012-08-27 15:12:36 +0000 |
commit | e3adea08648c4ba0e0ebed702aba0adcf21e3925 (patch) | |
tree | f4778bb3185cccc43c0c19f1415b54527e4b8943 | |
parent | 98f4710b579296b336dfa11a7e98df08d05710c7 (diff) | |
download | flashrom-e3adea08648c4ba0e0ebed702aba0adcf21e3925.tar.gz flashrom-e3adea08648c4ba0e0ebed702aba0adcf21e3925.tar.bz2 flashrom-e3adea08648c4ba0e0ebed702aba0adcf21e3925.zip |
ichspi: ignore bogus FREGs
Some vendors forget to disable regions properly and set their FRAP bits
and FREG to 0. While not documented publicly this is being ignored by the
chipset(s)[1] and hence flashrom should do so too. Without this patch
flashrom prints a warning and disables writes.
The check for i (region index) excludes the descriptor region which should not
be becessary because specs suggest that the descriptor region should not
be locked, but if vendors would follow the specs this patch would not have
been necessary in the first place.
[1]: http://www.flashrom.org/pipermail/flashrom/2012-May/009303.html
Corresponding to flashrom svn r1587.
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
-rw-r--r-- | ichspi.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1441,7 +1441,7 @@ static int ich9_handle_frap(uint32_t frap, int i) base = ICH_FREG_BASE(freg); limit = ICH_FREG_LIMIT(freg); - if (base > limit) { + if (base > limit || (freg == 0 && i > 0)) { /* this FREG is disabled */ msg_pdbg2("0x%02X: 0x%08x FREG%i: %s region is unused.\n", offset, freg, i, region_names[i]); |