[coreboot] [PATCH] Halt TCO timer on Intel 3100 chipset

joe at smittys.pointclark.net joe at smittys.pointclark.net
Sat Mar 29 14:38:01 CET 2008

Quoting Ed Swierk <eswierk at arastra.com>:

> Like other Intel chipsets, the Intel 3100 has a TCO timer that reboots
> the system automatically unless software resets the timer
> periodically. The extra reboot extends boot time by several seconds.
> The attached patch adds a function to the Intel 3100 southbridge code
> that halts the TCO timer, thus preventing this extra reboot, and calls
> the function early in the boot process on the Mt. Arvon board.
> It also fixes a bug in the LPC device initialization--the ACPI BAR
> enable flag is bit 7, not bit 4.
> Signed-off-by: Ed Swierk <eswierk at arastra.com>

This also happens with the i830. Luckly it is just one simple register  
setting to disable it early in the process (auto.c).

  * We have to disable the TCO Timer system reboot feature
  * or we get several reboots through out the boot processes.
static void disable_tco_timer(void)
	device_t dev;
	u8 reg8;

	/* Set the LPC device statically. */
	dev = PCI_DEV(0x0, 0x1f, 0x0);

	/* Disable the TCO Timer system reboot feature. */
	reg8 = pci_read_config8(dev, 0xd4);
	reg8 |= (1 << 1);
	pci_write_config8(dev, 0xd4, reg8);

My only question is your code seems a little more complicated? Does it  
need to be that complicated? Otherwise it looks good.
Acked-by: Joseph Smith <joe at smittys.pointclark.net>

Thanks - Joe

More information about the coreboot mailing list