[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