2020-04-02 23:49:05 +02:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2011-05-03 09:55:30 +02:00
|
|
|
|
2019-12-03 06:30:26 +01:00
|
|
|
#include <arch/bootblock.h>
|
2019-03-01 12:43:02 +01:00
|
|
|
#include <device/pci_ops.h>
|
2014-11-22 20:36:58 +01:00
|
|
|
#include "i82801gx.h"
|
2013-06-18 22:36:34 +02:00
|
|
|
|
2011-05-03 09:55:30 +02:00
|
|
|
static void enable_spi_prefetch(void)
|
|
|
|
{
|
2016-08-31 19:22:16 +02:00
|
|
|
u8 reg8;
|
2020-04-06 09:38:38 +02:00
|
|
|
const pci_devfn_t dev = PCI_DEV(0, 0x1f, 0);
|
2011-05-03 09:55:30 +02:00
|
|
|
|
2019-05-12 09:33:14 +02:00
|
|
|
reg8 = pci_read_config8(dev, BIOS_CNTL);
|
2016-08-31 19:22:16 +02:00
|
|
|
reg8 &= ~(3 << 2);
|
|
|
|
reg8 |= (2 << 2); /* Prefetching and Caching Enabled */
|
2019-05-12 09:33:14 +02:00
|
|
|
pci_write_config8(dev, BIOS_CNTL, reg8);
|
2011-05-03 09:55:30 +02:00
|
|
|
}
|
|
|
|
|
2019-11-12 23:34:13 +01:00
|
|
|
void bootblock_early_southbridge_init(void)
|
2011-05-03 09:55:30 +02:00
|
|
|
{
|
2016-08-31 19:22:16 +02:00
|
|
|
enable_spi_prefetch();
|
2014-11-22 20:36:58 +01:00
|
|
|
|
2019-11-12 23:34:13 +01:00
|
|
|
i82801gx_setup_bars();
|
2014-11-22 20:36:58 +01:00
|
|
|
|
|
|
|
/* Enable upper 128bytes of CMOS */
|
|
|
|
RCBA32(0x3400) = (1 << 2);
|
2019-11-12 23:34:13 +01:00
|
|
|
|
|
|
|
/* Disable watchdog timer */
|
|
|
|
RCBA32(GCS) = RCBA32(GCS) | 0x20;
|
|
|
|
|
|
|
|
i82801gx_lpc_setup();
|
2011-05-03 09:55:30 +02:00
|
|
|
}
|