Quoting Ed Swierk eswierk@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@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@smittys.pointclark.net
Thanks - Joe