On Fri, 4 Nov 2011 00:38:34 +0100
Stefan Tauner <[email protected]> wrote:

> On Thu, 3 Nov 2011 19:08:37 +0100
> Stefan Reinauer <[email protected]> wrote:
> 
> > * 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.
> 
> hm.
> quote 6 series datasheet:
> "R/WLO
> Read/Write, Lock-Once. A register bit with this attribute can be
> written to the non-locked value multiple times, but to the locked value
> only once. After the locked value has been written, the bit becomes
> read only."
> 
> > > 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.
> 
> and that is? BLE? i do not interpret the public datasheet like that,
> but...
> 
> > > 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. :-)
> 
> hm ok, we should get this upstream then.

but i would have hoped for an answer to my question before that... :)
anyway, i have now committed something similar to what is already in
chromiumos in r1582.

-- 
Kind regards/Mit freundlichen Grüßen, Stefan Tauner

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to