summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2011-02-01 01:05:11 +0000
committerjfv <jfv@FreeBSD.org>2011-02-01 01:05:11 +0000
commitc4f814b2fb3f8ace6692b76e2395e15fe63cca70 (patch)
treef64f78fbf84afa97813ba0ddea48fd29e61794f1
parentb1efa03054e07ab902c30a2eb3b195601954dd8f (diff)
downloadFreeBSD-src-c4f814b2fb3f8ace6692b76e2395e15fe63cca70.zip
FreeBSD-src-c4f814b2fb3f8ace6692b76e2395e15fe63cca70.tar.gz
Support for the new Patsburg PCH chipset:
- SMBus Controller - SATA Controller - HD Audio Controller - Watchdog Controller Thanks to Seth Heasley (seth.heasley@intel.com) for providing us code. MFC after 3 days
-rw-r--r--sys/dev/ahci/ahci.c5
-rw-r--r--sys/dev/ata/ata-pci.h6
-rw-r--r--sys/dev/ata/chipsets/ata-intel.c5
-rw-r--r--sys/dev/ichsmb/ichsmb_pci.c4
-rw-r--r--sys/dev/ichwd/ichwd.c4
-rw-r--r--sys/dev/ichwd/ichwd.h2
-rw-r--r--sys/dev/sound/pci/hda/hdac.c6
7 files changed, 29 insertions, 3 deletions
diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c
index c96795d..45e0c25 100644
--- a/sys/dev/ahci/ahci.c
+++ b/sys/dev/ahci/ahci.c
@@ -161,7 +161,10 @@ static struct {
{0x1c038086, 0x00, "Intel Cougar Point", 0},
{0x1c048086, 0x00, "Intel Cougar Point", 0},
{0x1c058086, 0x00, "Intel Cougar Point", 0},
- {0x23238086, 0x00, "Intel DH89xxCC", 0},
+ {0x23238086, 0x00, "Intel DH89xxCC", 0},
+ {0x1d028086, 0x00, "Intel Patsburg", 0},
+ {0x1d048086, 0x00, "Intel Patsburg", 0},
+ {0x1d068086, 0x00, "Intel Patsburg", 0},
{0x2361197b, 0x00, "JMicron JMB361", AHCI_Q_NOFORCE},
{0x2363197b, 0x00, "JMicron JMB363", AHCI_Q_NOFORCE},
{0x2365197b, 0x00, "JMicron JMB365", AHCI_Q_NOFORCE},
diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h
index 35f1d57..101cad5 100644
--- a/sys/dev/ata/ata-pci.h
+++ b/sys/dev/ata/ata-pci.h
@@ -227,6 +227,12 @@ struct ata_pci_controller {
#define ATA_CPT_S3 0x1c088086
#define ATA_CPT_S4 0x1c098086
+#define ATA_PBG_S1 0x1d008086
+#define ATA_PBG_AH1 0x1d028086
+#define ATA_PBG_R1 0x1d048086
+#define ATA_PBG_R2 0x1d068086
+#define ATA_PBG_S2 0x1d088086
+
#define ATA_I31244 0x32008086
#define ATA_ISCH 0x811a8086
#define ATA_DH89XXCC 0x23238086
diff --git a/sys/dev/ata/chipsets/ata-intel.c b/sys/dev/ata/chipsets/ata-intel.c
index 1b6e74f..c3ad053 100644
--- a/sys/dev/ata/chipsets/ata-intel.c
+++ b/sys/dev/ata/chipsets/ata-intel.c
@@ -176,6 +176,11 @@ ata_intel_probe(device_t dev)
{ ATA_CPT_R2, 0, INTEL_AHCI, 0, ATA_SA300, "Cougar Point" },
{ ATA_CPT_S3, 0, INTEL_6CH2, 0, ATA_SA300, "Cougar Point" },
{ ATA_CPT_S4, 0, INTEL_6CH2, 0, ATA_SA300, "Cougar Point" },
+ { ATA_PBG_S1, 0, INTEL_6CH, 0, ATA_SA300, "Patsburg" },
+ { ATA_PBG_AH1, 0, INTEL_AHCI, 0, ATA_SA300, "Patsburg" },
+ { ATA_PBG_R1, 0, INTEL_AHCI, 0, ATA_SA300, "Patsburg" },
+ { ATA_PBG_R2, 0, INTEL_AHCI, 0, ATA_SA300, "Patsburg" },
+ { ATA_PBG_S2, 0, INTEL_6CH2, 0, ATA_SA300, "Patsburg" },
{ ATA_I31244, 0, 0, 2, ATA_SA150, "31244" },
{ ATA_ISCH, 0, 0, 1, ATA_UDMA5, "SCH" },
{ ATA_DH89XXCC, 0, INTEL_AHCI, 0, ATA_SA300, "DH89xxCC" },
diff --git a/sys/dev/ichsmb/ichsmb_pci.c b/sys/dev/ichsmb/ichsmb_pci.c
index a48371b..aa1d0cd 100644
--- a/sys/dev/ichsmb/ichsmb_pci.c
+++ b/sys/dev/ichsmb/ichsmb_pci.c
@@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$");
#define ID_6300ESB 0x25a48086
#define ID_631xESB 0x269b8086
#define ID_DH89XXCC 0x23308086
+#define ID_PATSBURG 0x1d228086
#define ID_CPT 0x1c228086
#define PCIS_SERIALBUS_SMBUS_PROGIF 0x00
@@ -179,6 +180,9 @@ ichsmb_pci_probe(device_t dev)
case ID_DH89XXCC:
device_set_desc(dev, "Intel DH89xxCC SMBus controller");
break;
+ case ID_PATSBURG:
+ device_set_desc(dev, "Intel Patsburg SMBus controller");
+ break;
case ID_CPT:
device_set_desc(dev, "Intel Cougar Point SMBus controller");
break;
diff --git a/sys/dev/ichwd/ichwd.c b/sys/dev/ichwd/ichwd.c
index 4e835e5..18c02b5 100644
--- a/sys/dev/ichwd/ichwd.c
+++ b/sys/dev/ichwd/ichwd.c
@@ -157,7 +157,9 @@ static struct ichwd_device ichwd_devices[] = {
{ DEVICEID_CPT29, "Intel Cougar Point watchdog timer", 10 },
{ DEVICEID_CPT30, "Intel Cougar Point watchdog timer", 10 },
{ DEVICEID_CPT31, "Intel Cougar Point watchdog timer", 10 },
- { DEVICEID_DH89XXCC_LPC, "Intel DH89xxCC watchdog timer", 10 },
+ { DEVICEID_DH89XXCC_LPC, "Intel DH89xxCC watchdog timer", 10 },
+ { DEVICEID_PATSBURG_LPC1, "Intel Patsburg watchdog timer", 10 },
+ { DEVICEID_PATSBURG_LPC2, "Intel Patsburg watchdog timer", 10 },
{ 0, NULL, 0 },
};
diff --git a/sys/dev/ichwd/ichwd.h b/sys/dev/ichwd/ichwd.h
index 57fbbfa..48a7b42 100644
--- a/sys/dev/ichwd/ichwd.h
+++ b/sys/dev/ichwd/ichwd.h
@@ -96,6 +96,8 @@ struct ichwd_softc {
#define DEVICEID_CPT29 0x1c5d
#define DEVICEID_CPT30 0x1c5e
#define DEVICEID_CPT31 0x1c5f
+#define DEVICEID_PATSBURG_LPC1 0x1d40
+#define DEVICEID_PATSBURG_LPC2 0x1d41
#define DEVICEID_DH89XXCC_LPC 0x2310
#define DEVICEID_82801AA 0x2410
#define DEVICEID_82801AB 0x2420
diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
index 3ab0e67..0110035 100644
--- a/sys/dev/sound/pci/hda/hdac.c
+++ b/sys/dev/sound/pci/hda/hdac.c
@@ -141,6 +141,7 @@ SND_DECLARE_FILE("$FreeBSD$");
/* Intel */
#define INTEL_VENDORID 0x8086
#define HDA_INTEL_CPT HDA_MODEL_CONSTRUCT(INTEL, 0x1c20)
+#define HDA_INTEL_PATSBURG HDA_MODEL_CONSTRUCT(INTEL, 0x1d20)
#define HDA_INTEL_82801F HDA_MODEL_CONSTRUCT(INTEL, 0x2668)
#define HDA_INTEL_63XXESB HDA_MODEL_CONSTRUCT(INTEL, 0x269a)
#define HDA_INTEL_82801G HDA_MODEL_CONSTRUCT(INTEL, 0x27d8)
@@ -149,6 +150,7 @@ SND_DECLARE_FILE("$FreeBSD$");
#define HDA_INTEL_82801JI HDA_MODEL_CONSTRUCT(INTEL, 0x3a3e)
#define HDA_INTEL_82801JD HDA_MODEL_CONSTRUCT(INTEL, 0x3a6e)
#define HDA_INTEL_PCH HDA_MODEL_CONSTRUCT(INTEL, 0x3b56)
+#define HDA_INTEL_PCH2 HDA_MODEL_CONSTRUCT(INTEL, 0x3b57)
#define HDA_INTEL_SCH HDA_MODEL_CONSTRUCT(INTEL, 0x811b)
#define HDA_INTEL_ALL HDA_MODEL_CONSTRUCT(INTEL, 0xffff)
@@ -492,6 +494,7 @@ static const struct {
char flags;
} hdac_devices[] = {
{ HDA_INTEL_CPT, "Intel Cougar Point", 0 },
+ { HDA_INTEL_PATSBURG,"Intel Patsburg", 0 },
{ HDA_INTEL_82801F, "Intel 82801F", 0 },
{ HDA_INTEL_63XXESB, "Intel 631x/632xESB", 0 },
{ HDA_INTEL_82801G, "Intel 82801G", 0 },
@@ -499,7 +502,8 @@ static const struct {
{ HDA_INTEL_82801I, "Intel 82801I", 0 },
{ HDA_INTEL_82801JI, "Intel 82801JI", 0 },
{ HDA_INTEL_82801JD, "Intel 82801JD", 0 },
- { HDA_INTEL_PCH, "Intel PCH", 0 },
+ { HDA_INTEL_PCH, "Intel 5 Series/3400 Series", 0 },
+ { HDA_INTEL_PCH2, "Intel 5 Series/3400 Series", 0 },
{ HDA_INTEL_SCH, "Intel SCH", 0 },
{ HDA_NVIDIA_MCP51, "NVidia MCP51", HDAC_NO_MSI },
{ HDA_NVIDIA_MCP55, "NVidia MCP55", HDAC_NO_MSI },
OpenPOWER on IntegriCloud