WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] Add ICH10 chipset support

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] Add ICH10 chipset support
From: donald.d.dugger@xxxxxxxxx (Donald D Dugger)
Date: Tue, 25 Mar 2008 12:34:50 -0800 (PST)
Delivery-date: Tue, 25 Mar 2008 13:02:13 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
This simple patch adds the new Intel ICH10 chipset PCI IDs to the Xen Linux
kernel.

Signed-off-by: Don Dugger <donald.d.dugger@xxxxxxxxx>

diff -Naur linux-2.6.18-xen.hg-/arch/i386/pci/irq.c 
linux-2.6.18-xen.hg/arch/i386/pci/irq.c
--- linux-2.6.18-xen.hg-/arch/i386/pci/irq.c    2008-02-11 15:09:45.000000000 
-0700
+++ linux-2.6.18-xen.hg/arch/i386/pci/irq.c     2008-02-11 16:28:50.000000000 
-0700
@@ -549,6 +549,10 @@
                case PCI_DEVICE_ID_INTEL_ICH9_3:
                case PCI_DEVICE_ID_INTEL_ICH9_4:
                case PCI_DEVICE_ID_INTEL_ICH9_5:
+               case PCI_DEVICE_ID_INTEL_ICH10_0:
+               case PCI_DEVICE_ID_INTEL_ICH10_1:
+               case PCI_DEVICE_ID_INTEL_ICH10_2:
+               case PCI_DEVICE_ID_INTEL_ICH10_3:
                        r->name = "PIIX/ICH";
                        r->get = pirq_piix_get;
                        r->set = pirq_piix_set;
diff -Naur linux-2.6.18-xen.hg-/Documentation/i2c/busses/i2c-i801 
linux-2.6.18-xen.hg/Documentation/i2c/busses/i2c-i801
--- linux-2.6.18-xen.hg-/Documentation/i2c/busses/i2c-i801      2008-02-11 
15:09:18.000000000 -0700
+++ linux-2.6.18-xen.hg/Documentation/i2c/busses/i2c-i801       2008-02-11 
16:29:34.000000000 -0700
@@ -10,6 +10,11 @@
   * Intel 6300ESB
   * Intel 82801FB/FR/FW/FRW (ICH6)
   * Intel ICH7
+  * Intel 82801G (ICH7)
+  * Intel 82801H (ICH9)
+  * Intel 82801I (ICH9)
+  * Intel Tolapai
+  * Intel ICH10
     Datasheets: Publicly available at the Intel website
 
 Authors: 
diff -Naur linux-2.6.18-xen.hg-/drivers/i2c/busses/i2c-i801.c 
linux-2.6.18-xen.hg/drivers/i2c/busses/i2c-i801.c
--- linux-2.6.18-xen.hg-/drivers/i2c/busses/i2c-i801.c  2008-02-11 
15:10:44.000000000 -0700
+++ linux-2.6.18-xen.hg/drivers/i2c/busses/i2c-i801.c   2008-02-11 
16:30:35.000000000 -0700
@@ -34,6 +34,8 @@
     ESB2               269B
     ICH8               283E
     ICH9               2930
+    ICH10              3A30
+    ICH10              3A60
     This driver supports several versions of Intel's I/O Controller Hubs (ICH).
     For SMBus support, they are similar to the PIIX4 and are part
     of Intel's '810' and other chipsets.
@@ -459,6 +461,8 @@
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_17) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_5) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH9_6) },
+       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_4) },
+       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_5) },
        { 0, }
 };
 
diff -Naur linux-2.6.18-xen.hg-/drivers/i2c/busses/Kconfig 
linux-2.6.18-xen.hg/drivers/i2c/busses/Kconfig
--- linux-2.6.18-xen.hg-/drivers/i2c/busses/Kconfig     2008-02-11 
15:10:44.000000000 -0700
+++ linux-2.6.18-xen.hg/drivers/i2c/busses/Kconfig      2008-02-11 
16:31:11.000000000 -0700
@@ -126,6 +126,7 @@
            ESB2
            ICH8
            ICH9
+           ICH10
 
          This driver can also be built as a module.  If so, the module
          will be called i2c-i801.
diff -Naur linux-2.6.18-xen.hg-/drivers/scsi/ahci.c 
linux-2.6.18-xen.hg/drivers/scsi/ahci.c
--- linux-2.6.18-xen.hg-/drivers/scsi/ahci.c    2008-02-11 15:11:27.000000000 
-0700
+++ linux-2.6.18-xen.hg/drivers/scsi/ahci.c     2008-02-11 16:31:49.000000000 
-0700
@@ -339,6 +339,12 @@
          board_ahci }, /* ICH9 */
        { PCI_VENDOR_ID_INTEL, 0x294e, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
          board_ahci }, /* ICH9M */
+       { PCI_VENDOR_ID_INTEL, 0x3a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ICH10 */
+       { PCI_VENDOR_ID_INTEL, 0x3a05, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ICH10 */
+       { PCI_VENDOR_ID_INTEL, 0x3a25, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci }, /* ICH10 */
 
        /* JMicron */
        { 0x197b, 0x2360, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
diff -Naur linux-2.6.18-xen.hg-/drivers/scsi/ata_piix.c 
linux-2.6.18-xen.hg/drivers/scsi/ata_piix.c
--- linux-2.6.18-xen.hg-/drivers/scsi/ata_piix.c        2008-02-11 
15:11:28.000000000 -0700
+++ linux-2.6.18-xen.hg/drivers/scsi/ata_piix.c 2008-02-11 16:36:58.000000000 
-0700
@@ -126,6 +126,7 @@
        ich7m_sata_ahci         = 7,
        ich8_sata_ahci          = 8,
        ich9_sata_ahci          = 9,
+       ich8_2port_sata         = 10,
 
        /* constants for mapping table */
        P0                      = 0,  /* port 0 */
@@ -193,10 +194,10 @@
        { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7m_sata_ahci },
        /* Enterprise Southbridge 2 (where's the datasheet?) */
        { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
-       /* SATA Controller 1 IDE (ICH8, no datasheet yet) */
+       /* SATA Controller 1 IDE (ICH8) */
        { 0x8086, 0x2820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
-       /* SATA Controller 2 IDE (ICH8, ditto) */
-       { 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+       /* SATA Controller 2 IDE (ICH8) */
+       { 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
        /* Mobile SATA Controller IDE (ICH8M, ditto) */
        { 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
        /* SATA Controller 1 IDE (ICH9) */
@@ -211,6 +212,14 @@
        { 0x8086, 0x292d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich9_sata_ahci },
        /* Mobile SATA Controller 2 IDE (ICH9M) */
        { 0x8086, 0x292e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich9_sata_ahci },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a06, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+       /* SATA Controller IDE (ICH10) */
+       { 0x8086, 0x3a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
 
        { }     /* terminate list */
 };
@@ -394,6 +403,18 @@
        },
 };
 
+static const struct piix_map_db ich8_2port_map_db = {
+       .mask = 0x3,
+       .port_enable = 0x3,
+       .map = {
+               /* PM   PS   SM   SS       MAP */
+               {  P0,  NA,  P1,  NA }, /* 00b */
+               {  RV,  RV,  RV,  RV }, /* 01b */
+               {  RV,  RV,  RV,  RV }, /* 10b */
+               {  RV,  RV,  RV,  RV },
+       },
+};
+
 static const struct piix_map_db *piix_map_db_table[] = {
        [ich5_sata]             = &ich5_map_db,
        [esb_sata]              = &ich5_map_db,
@@ -403,6 +424,7 @@
        [ich7m_sata_ahci]       = &ich7m_map_db,
        [ich8_sata_ahci]        = &ich8_map_db,
        [ich9_sata_ahci]        = &ich9_map_db,
+       [ich8_2port_sata]       = &ich8_2port_map_db,
 };
 
 static struct ata_port_info piix_port_info[] = {
@@ -526,6 +548,18 @@
                .udma_mask      = 0x7f, /* udma0-6 */
                .port_ops       = &piix_sata_ops,
        },
+       
+       /* ich8_2port_sata: 11: */
+       {
+               .sht            = &piix_sht,
+               .host_flags     = ATA_FLAG_SATA |
+                                 PIIX_FLAG_CHECKINTR | PIIX_FLAG_SCR |
+                                 PIIX_FLAG_AHCI,
+               .pio_mask       = 0x1f, /* pio0-4 */
+               .mwdma_mask     = 0x07, /* mwdma0-2 */
+               .udma_mask      = ATA_UDMA6,
+               .port_ops       = &piix_pata_ops,
+       },
 };
 
 static struct pci_bits piix_enable_bits[] = {
diff -Naur linux-2.6.18-xen.hg-/include/linux/pci_ids.h 
linux-2.6.18-xen.hg/include/linux/pci_ids.h
--- linux-2.6.18-xen.hg-/include/linux/pci_ids.h        2008-02-11 
15:12:50.000000000 -0700
+++ linux-2.6.18-xen.hg/include/linux/pci_ids.h 2008-02-11 16:37:41.000000000 
-0700
@@ -2209,6 +2209,12 @@
 #define PCI_DEVICE_ID_INTEL_MCH_PC     0x3599
 #define PCI_DEVICE_ID_INTEL_MCH_PC1    0x359a
 #define PCI_DEVICE_ID_INTEL_E7525_MCH  0x359e
+#define PCI_DEVICE_ID_INTEL_ICH10_0    0x3a14
+#define PCI_DEVICE_ID_INTEL_ICH10_1    0x3a16
+#define PCI_DEVICE_ID_INTEL_ICH10_2    0x3a18
+#define PCI_DEVICE_ID_INTEL_ICH10_3    0x3a1a
+#define PCI_DEVICE_ID_INTEL_ICH10_4    0x3a30
+#define PCI_DEVICE_ID_INTEL_ICH10_5    0x3a60
 #define PCI_DEVICE_ID_INTEL_82371SB_0  0x7000
 #define PCI_DEVICE_ID_INTEL_82371SB_1  0x7010
 #define PCI_DEVICE_ID_INTEL_82371SB_2  0x7020
diff -Naur linux-2.6.18-xen.hg-/sound/pci/hda/hda_intel.c 
linux-2.6.18-xen.hg/sound/pci/hda/hda_intel.c
--- linux-2.6.18-xen.hg-/sound/pci/hda/hda_intel.c      2008-02-11 
15:13:24.000000000 -0700
+++ linux-2.6.18-xen.hg/sound/pci/hda/hda_intel.c       2008-02-11 
16:38:54.000000000 -0700
@@ -81,6 +81,7 @@
                         "{Intel, ESB2},"
                         "{Intel, ICH8},"
                         "{Intel, ICH9},"
+                        "{Intel, ICH10},"
                         "{ATI, SB450},"
                         "{ATI, SB600},"
                         "{ATI, RS600},"
@@ -1637,6 +1638,8 @@
        { 0x8086, 0x284b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* 
ICH8 */
        { 0x8086, 0x293e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* 
ICH9 */
        { 0x8086, 0x293f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* 
ICH9 */
+       { 0x8086, 0x3a3e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* 
ICH10 */
+       { 0x8086, 0x3a6e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* 
ICH10 */
        { 0x1002, 0x437b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* 
ATI SB450 */
        { 0x1002, 0x4383, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* 
ATI SB600 */
        { 0x1002, 0x793b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATIHDMI }, 
/* ATI RS600 HDMI */

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] Add ICH10 chipset support, Donald D Dugger <=