[flashrom] [PATCH] Neuter probe for ITE SuperIO

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Wed Jun 23 10:30:42 CEST 2010


Hi Ed,

On 23.06.2010 08:49, Ed Swierk wrote:
> If the system has an SMSC LPC47N217N SuperIO, enter_conf_mode_ite()
> enters configuration mode, and then exit_conf_mode_ite() kills power to
> the serial UART.
>
> I don't know if there is a proper way to detect what kind of SuperIO the
> system has, but probe_superio_ite() is unsafe in its current form.
>   

This change breaks a few dozen Gigabyte boards with AMD 700 chipset or
Nvidia MCP55 chipset or SiS 761 chipset (and boards from other vendors),
and can't be applied as is.
It also breaks the pending IT8705 autodetection patch which adds support
for a huge number of boards from the beginning of the LPC era.


> Index: flashrom-0.9.2-r1057/internal.c
> ===================================================================
> --- flashrom-0.9.2-r1057.orig/internal.c
> +++ flashrom-0.9.2-r1057/internal.c
> @@ -104,7 +104,10 @@ struct superio superio = {};
>  
>  void probe_superio(void)
>  {
> +#if 0
> +	/* ITE probe causes SMSC LPC47N217 to power off the serial UART! */
>  	superio = probe_superio_ite();
> +#endif
>  #if 0
>  	/* Winbond Super I/O code is not yet available. */
>  	if (superio.vendor == SUPERIO_VENDOR_NONE)
>   

Due to the reasons stated above, this patch can't be applied, but there
are two options which might help:
1. Blacklist ITE Super I/O probing on your board.
This would mean we have to change the code flow to run
chipset_flash_enable(); board_flash_enable(); probe_superio();
it87xx_probe_spi_flash(); instead of the current order probe_superio();
chipset_flash_enable(); it87xx_probe_spi_flash(); board_flash_enable();

2. Add probing support for your Super I/O.
If we probe for the SMSC LPC47N217 before we probe for IT87*, the IT87*
probing will never be executed because we get a match before, and the
code is designed to bail out once the first Super I/O is detected.

Either option looks OK for me, but I personally prefer option 2 because
it will save us the headache of having to individually blacklist every
system with LPC47N217.

In theory, running superiotool should have the same effect as running
current flashrom. Can you please check that?

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the flashrom mailing list