* Stefan Tauner <[email protected]> [111103 12:04]: > > > - new = old | 1; > > > + /* > > > + * Quote from the 6 Series datasheet: > > > + * "5: SMM BIOS Write Protect Disable (SMM_BWP) > > > + * 1 = BIOS region SMM protection is enabled. > > > + * The BIOS Region is not writable unless all processors are in SMM." > > > + * In earlier chipsets this bit is reserved. */ > > > + if (old& (5<< 1)) { > > > + msg_pinfo("WARNING: BIOS region SMM protection is enabled!\n"); > > > + return -1; > > You might still be successful doing the write, in case the SMM handler > > does not enforce the protection, so maybe you should just print a > > warning but not return here? > > in chromium-os you are trying to unset that bit[1], but according to the > data sheet this is impossible - it is R/W LO (read/write lock once).
Maybe there is some confusion about R/W LO. The bit can be locked, but that does not mean it is locked automatically by writing / clearing it. Once it is locked, the lock can not be undone except by a chipset reset. > and you degraded the warning to dbg level... certainly not suited for > upstream, but maybe desirable for chromium(?). Yes, that was done on purpose, because the lock bit that prevents the bit from being cleared also produces a warning. > have you tested this on a board where SMM_BWP is really set to 1? we > may wanna try to write it anyway, but it would be far more interesting > if it really works on some chipsets :) Yes, this was implemented to fix a problem I was seeing, and it solved the problem. :-) Stefan _______________________________________________ flashrom mailing list [email protected] http://www.flashrom.org/mailman/listinfo/flashrom
