* max opendtv@yahoo.com [101012 07:33]:
--- On Mon, 10/11/10, max opendtv@yahoo.com wrote:
Thank you, lspci yielded some interesting information. On the linux that works, there are two kernel modules associated with device 8086/24C0 (where the write enable register is located): iTCO_wdt and intel-rng. Those modules are not present on the linux that doesn't work.
Ok, I have the answer. It was iTCO_wdt, not intel_rng as I first guessed. iTCO_wdt clears bit 13 (TCO_EN) of SMI_EN. This is what allows flashrom to enable writing (tested by clearing the bit with a debugger and running DOS flashrom).
from iTCO_wdt.c iTCO_wdt_init: /* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */ val32 = inl(SMI_EN); val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */ outl(val32, SMI_EN);
Nice finding! Don't you love the effectiveness of SPI flash protection? :)
Stefan