svn commit: r215868 - head/sys/dev/ichwd

Doug Barton dougb at FreeBSD.org
Fri Nov 26 23:44:32 UTC 2010


The tinderbox seems to think that this broke the build.


Doug


On 11/26/2010 07:35, Attilio Rao wrote:
> Author: attilio
> Date: Fri Nov 26 15:35:08 2010
> New Revision: 215868
> URL: http://svn.freebsd.org/changeset/base/215868
>
> Log:
>    - Advertise when the reboot came from a watchdog-induced reset.
>    - Fix a bug where TCO_BOOT_STS was supposed to be cleared after
>      TCO_SECOND_TO_STS and not before.
>
>    Sponsored by:	Sandvine Incorporated
>    Submitted by:	Mark Johnston<mjohnston at sandvine dot com>
>    Reviewed by:	des
>    MFC after:	10 days
>
> Modified:
>    head/sys/dev/ichwd/ichwd.c
>
> Modified: head/sys/dev/ichwd/ichwd.c
> ==============================================================================
> --- head/sys/dev/ichwd/ichwd.c	Fri Nov 26 15:33:09 2010	(r215867)
> +++ head/sys/dev/ichwd/ichwd.c	Fri Nov 26 15:35:08 2010	(r215868)
> @@ -225,12 +225,12 @@ ichwd_sts_reset(struct ichwd_softc *sc)
>   	 * by writing a 1, not a 0.
>   	 */
>   	ichwd_write_tco_2(sc, TCO1_STS, TCO_TIMEOUT);
> -	/*
> -	 * XXX The datasheet says that TCO_SECOND_TO_STS must be cleared
> -	 * before TCO_BOOT_STS, not the other way around.
> +	/*
> +	 * According to Intel's docs, clearing SECOND_TO_STS and BOOT_STS must
> +	 * be done in two separate operations.
>   	 */
> -	ichwd_write_tco_2(sc, TCO2_STS, TCO_BOOT_STS);
>   	ichwd_write_tco_2(sc, TCO2_STS, TCO_SECOND_TO_STS);
> +	ichwd_write_tco_2(sc, TCO2_STS, TCO_BOOT_STS);
>   }
>
>   /*
> @@ -520,11 +520,12 @@ ichwd_attach(device_t dev)
>   	    device_get_desc(dev), sc->ich_version);
>
>   	/*
> -	 * XXX we should check the status registers (specifically, the
> -	 * TCO_SECOND_TO_STS bit in the TCO2_STS register) to see if we
> -	 * just came back from a watchdog-induced reset, and let the user
> -	 * know.
> +	 * Determine if we are coming up after a watchdog-induced reset.
> +	 * This bit is cleared in ichwd_sts_reset().
>   	 */
> +	if ((ich_read_tco_2(sc, TCO2_STS)&  TCO_SECOND_TO_STS) != 0)
> +		device_printf(dev,
> +		    "resuming after hardware watchdog timeout\n");
>
>   	/* reset the watchdog status registers */
>   	ichwd_sts_reset(sc);
>



-- 

	Nothin' ever doesn't change, but nothin' changes much.
			-- OK Go

	Breadth of IT experience, and depth of knowledge in the DNS.
	Yours for the right price.  :)  http://SupersetSolutions.com/



More information about the svn-src-head mailing list