From e3adea08648c4ba0e0ebed702aba0adcf21e3925 Mon Sep 17 00:00:00 2001 From: Stefan Tauner Date: Mon, 27 Aug 2012 15:12:36 +0000 Subject: 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 Acked-by: Stefan Tauner --- ichspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ichspi.c b/ichspi.c index fa962fce..ce9c553b 100644 --- a/ichspi.c +++ b/ichspi.c @@ -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]); -- cgit v1.2.3