--- On Mon, 10/11/10, max <opendtv(a)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);
Thanks,
Dan