From 03b1a0c8d79062e44d803c426862b7b25c0ce456 Mon Sep 17 00:00:00 2001 From: jhb Date: Tue, 27 May 2003 18:23:56 +0000 Subject: Add support for the Intel 865 chipset. MFC after: 3 days Sponsored by: The Weather Channel Approved by: re (murray) --- sys/dev/agp/agp_intel.c | 11 +++++++++-- sys/dev/agp/agpreg.h | 2 +- sys/pci/agp_intel.c | 11 +++++++++-- sys/pci/agpreg.h | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/sys/dev/agp/agp_intel.c b/sys/dev/agp/agp_intel.c index c1d933a..b5facdd 100644 --- a/sys/dev/agp/agp_intel.c +++ b/sys/dev/agp/agp_intel.c @@ -98,6 +98,9 @@ agp_intel_match(device_t dev) case 0x25318086: return ("Intel 82860 host to AGP bridge"); + + case 0x25708086: + return ("Intel 82865 host to AGP bridge"); }; if (pci_get_vendor(dev) == 0x8086) @@ -167,7 +170,8 @@ agp_intel_attach(device_t dev) pci_write_config(dev, AGP_INTEL_AGPCTRL, 0x2280, 4); break; default: - pci_write_config(dev, AGP_INTEL_AGPCTRL, 0x0080, 4); + value = pci_read_config(dev, AGP_INTEL_AGPCTRL, 4); + pci_write_config(dev, AGP_INTEL_AGPCTRL, value | 0x80, 4); } /* Enable things, clear errors etc. */ @@ -188,6 +192,7 @@ agp_intel_attach(device_t dev) break; case 0x1a308086: /* i845 */ + case 0x25708086: /* i865 */ pci_write_config(dev, AGP_INTEL_I845_MCHCFG, (pci_read_config(dev, AGP_INTEL_I845_MCHCFG, 1) | (1 << 1)), 1); @@ -209,7 +214,8 @@ agp_intel_attach(device_t dev) case 0x1a308086: /* i845 */ case 0x25308086: /* i850 */ case 0x25318086: /* i860 */ - pci_write_config(dev, AGP_INTEL_I8XX_ERRSTS, 0x001c, 2); + case 0x25708086: /* i865 */ + pci_write_config(dev, AGP_INTEL_I8XX_ERRSTS, 0x00ff, 2); break; default: /* Intel Generic (maybe) */ @@ -251,6 +257,7 @@ agp_intel_detach(device_t dev) & ~(1 << 1)), 1); case 0x1a308086: /* i845 */ + case 0x25708086: /* i865 */ printf("%s: set MCHCFG to %x\n", __func__, (unsigned) (pci_read_config(dev, AGP_INTEL_I845_MCHCFG, 1) & ~(1 << 1))); diff --git a/sys/dev/agp/agpreg.h b/sys/dev/agp/agpreg.h index 015455a..17472d7 100644 --- a/sys/dev/agp/agpreg.h +++ b/sys/dev/agp/agpreg.h @@ -57,7 +57,7 @@ #define AGP_INTEL_ATTBASE 0xb8 /* - * Config offsets for Intel i820/i840/i845/i850/i860 AGP chipsets. + * Config offsets for Intel i820/i840/i845/i850/i860/i865 AGP chipsets. */ #define AGP_INTEL_MCHCFG 0x50 #define AGP_INTEL_I820_RDCR 0x51 diff --git a/sys/pci/agp_intel.c b/sys/pci/agp_intel.c index c1d933a..b5facdd 100644 --- a/sys/pci/agp_intel.c +++ b/sys/pci/agp_intel.c @@ -98,6 +98,9 @@ agp_intel_match(device_t dev) case 0x25318086: return ("Intel 82860 host to AGP bridge"); + + case 0x25708086: + return ("Intel 82865 host to AGP bridge"); }; if (pci_get_vendor(dev) == 0x8086) @@ -167,7 +170,8 @@ agp_intel_attach(device_t dev) pci_write_config(dev, AGP_INTEL_AGPCTRL, 0x2280, 4); break; default: - pci_write_config(dev, AGP_INTEL_AGPCTRL, 0x0080, 4); + value = pci_read_config(dev, AGP_INTEL_AGPCTRL, 4); + pci_write_config(dev, AGP_INTEL_AGPCTRL, value | 0x80, 4); } /* Enable things, clear errors etc. */ @@ -188,6 +192,7 @@ agp_intel_attach(device_t dev) break; case 0x1a308086: /* i845 */ + case 0x25708086: /* i865 */ pci_write_config(dev, AGP_INTEL_I845_MCHCFG, (pci_read_config(dev, AGP_INTEL_I845_MCHCFG, 1) | (1 << 1)), 1); @@ -209,7 +214,8 @@ agp_intel_attach(device_t dev) case 0x1a308086: /* i845 */ case 0x25308086: /* i850 */ case 0x25318086: /* i860 */ - pci_write_config(dev, AGP_INTEL_I8XX_ERRSTS, 0x001c, 2); + case 0x25708086: /* i865 */ + pci_write_config(dev, AGP_INTEL_I8XX_ERRSTS, 0x00ff, 2); break; default: /* Intel Generic (maybe) */ @@ -251,6 +257,7 @@ agp_intel_detach(device_t dev) & ~(1 << 1)), 1); case 0x1a308086: /* i845 */ + case 0x25708086: /* i865 */ printf("%s: set MCHCFG to %x\n", __func__, (unsigned) (pci_read_config(dev, AGP_INTEL_I845_MCHCFG, 1) & ~(1 << 1))); diff --git a/sys/pci/agpreg.h b/sys/pci/agpreg.h index 015455a..17472d7 100644 --- a/sys/pci/agpreg.h +++ b/sys/pci/agpreg.h @@ -57,7 +57,7 @@ #define AGP_INTEL_ATTBASE 0xb8 /* - * Config offsets for Intel i820/i840/i845/i850/i860 AGP chipsets. + * Config offsets for Intel i820/i840/i845/i850/i860/i865 AGP chipsets. */ #define AGP_INTEL_MCHCFG 0x50 #define AGP_INTEL_I820_RDCR 0x51 -- cgit v1.1