[flashrom] [PATCH 5/7] warn if SMM BIOS Write Protection is detected in BIOS_CNTL

Stefan Reinauer stefan.reinauer at coreboot.org
Wed May 25 03:15:52 CEST 2011


On 5/23/11 4:23 PM, Stefan Tauner wrote:
> Signed-off-by: Stefan Tauner<stefan.tauner at student.tuwien.ac.at>
> ---
>   chipset_enable.c |   12 +++++++++++-
>   1 files changed, 11 insertions(+), 1 deletions(-)
>
> diff --git a/chipset_enable.c b/chipset_enable.c
> index 83b49ad..339c6bb 100644
> --- a/chipset_enable.c
> +++ b/chipset_enable.c
> @@ -264,8 +264,18 @@ static int enable_flash_ich(struct pci_dev *dev, const char *name,
>   		     (old&  (1<<  0)) ? "en" : "dis");
>   	msg_pdbg("BIOS_CNTL is 0x%x\n", old);
>
> -	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?

> +	}
>
> +	new = old | 1;
>   	if (new == old)
>   		return 0;
>





More information about the flashrom mailing list