[coreboot] [PATCH] Halt TCO timer on Intel 3100 chipset
Uwe Hermann
uwe at hermann-uwe.de
Sun Mar 30 13:33:21 CEST 2008
On Sat, Mar 29, 2008 at 12:07:36AM -0700, Ed Swierk wrote:
> 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>
Looks good, thanks. Committed in r3198.
> Index: coreboot-v2-3189/src/southbridge/intel/i3100/i3100_early_lpc.c
> ===================================================================
> --- coreboot-v2-3189.orig/src/southbridge/intel/i3100/i3100_early_lpc.c
> +++ coreboot-v2-3189/src/southbridge/intel/i3100/i3100_early_lpc.c
> @@ -30,3 +30,23 @@ static void i3100_enable_superio(void)
> /* Enable decoding of I/O locations for SuperIO devices */
> pci_write_config16(dev, 0x82, 0x340f);
> }
> +
> +static void i3100_halt_tco_timer(void)
> +{
> + device_t dev;
> + dev = pci_locate_device(PCI_ID(PCI_VENDOR_ID_INTEL,
> + PCI_DEVICE_ID_INTEL_3100_LPC), 0);
> + if (dev == PCI_DEV_INVALID) {
> + die("LPC bridge not found\r\n");
> + }
If you feel bored one of these days, please post a patch to remove the
unneeded pci_locate_device() stuff from all of i3100 (and also other
chipsets if you're inclined), as discussed in another thread.
Those checks are not needed, as no non-i3100 boards should call those
functions anyway...
Uwe.
--
http://www.hermann-uwe.de | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
More information about the coreboot
mailing list