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-changelog

[Xen-changelog] [linux-2.6.18-xen] Add support for SB700 storage control

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] Add support for SB700 storage controllers.
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 May 2008 08:20:19 -0700
Delivery-date: Wed, 21 May 2008 08:20:43 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1211364660 -3600
# Node ID 1e8c3287b395f53d91c5e1951325563b5942d2c0
# Parent  8792274adfd0cab0311f3df6183743de3faa3c51
Add support for SB700 storage controllers.
Signed-off-by: Travis Betak <travis.betak@xxxxxxx>
---
 drivers/ide/pci/atiixp.c |    1 +
 drivers/pci/quirks.c     |   19 +++++++++++++++++++
 drivers/scsi/ahci.c      |   23 +++++++++++++++++++++++
 include/linux/libata.h   |    6 ++++++
 include/linux/pci_ids.h  |    4 ++++
 5 files changed, 53 insertions(+)

diff -r 8792274adfd0 -r 1e8c3287b395 drivers/ide/pci/atiixp.c
--- a/drivers/ide/pci/atiixp.c  Wed May 21 11:00:28 2008 +0100
+++ b/drivers/ide/pci/atiixp.c  Wed May 21 11:11:00 2008 +0100
@@ -348,6 +348,7 @@ static struct pci_device_id atiixp_pci_t
        { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID, 
PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID, 
PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_IDE, PCI_ANY_ID, 
PCI_ANY_ID, 0, 0, 0},
+       { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP700_IDE, PCI_ANY_ID, 
PCI_ANY_ID, 0, 0, 0},
        { 0, },
 };
 MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl);
diff -r 8792274adfd0 -r 1e8c3287b395 drivers/pci/quirks.c
--- a/drivers/pci/quirks.c      Wed May 21 11:00:28 2008 +0100
+++ b/drivers/pci/quirks.c      Wed May 21 11:11:00 2008 +0100
@@ -873,6 +873,25 @@ static void __init quirk_disable_pxb(str
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82454NX,    
quirk_disable_pxb );
 
+static void __devinit quirk_sb600_sata(struct pci_dev *pdev)
+{
+       /* set sb600/sb700/sb800 sata to ahci mode */
+       u8 tmp;
+
+       pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
+       if (tmp == 0x01) {
+               pci_read_config_byte(pdev, 0x40, &tmp);
+               pci_write_config_byte(pdev, 0x40, tmp|1);
+               pci_write_config_byte(pdev, 0x9, 1);
+               pci_write_config_byte(pdev, 0xa, 6);
+               pci_write_config_byte(pdev, 0x40, tmp);
+
+               pdev->class = PCI_CLASS_STORAGE_SATA_AHCI;
+               dev_info(&pdev->dev, "set SATA to AHCI mode\n");
+       }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP700_SATA, 
quirk_sb600_sata);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP600_SATA, 
quirk_sb600_sata);
 
 /*
  *     Serverworks CSB5 IDE does not fully support native mode
diff -r 8792274adfd0 -r 1e8c3287b395 drivers/scsi/ahci.c
--- a/drivers/scsi/ahci.c       Wed May 21 11:00:28 2008 +0100
+++ b/drivers/scsi/ahci.c       Wed May 21 11:11:00 2008 +0100
@@ -78,6 +78,7 @@ enum {
 
        board_ahci              = 0,
        board_ahci_vt8251       = 1,
+       board_ahci_sb700        = 2,
 
        /* global controller registers */
        HOST_CAP                = 0x00, /* host capabilities */
@@ -282,6 +283,16 @@ static const struct ata_port_info ahci_p
                .pio_mask       = 0x1f, /* pio0-4 */
                .udma_mask      = 0x7f, /* udma0-6 ; FIXME */
                .port_ops       = &ahci_ops,
+       },
+       {
+               .sht            = &ahci_sht,
+               .host_flags     = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
+                                 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
+                                 ATA_FLAG_ACPI_SATA | ATA_FLAG_AN |
+                                 ATA_FLAG_IPM,
+               .pio_mask       = 0x1f, /* pio0-4 */
+               .udma_mask      = 0x7f,
+               .port_ops       = &ahci_ops,
        },
 };
 
@@ -363,6 +374,18 @@ static const struct pci_device_id ahci_p
          board_ahci }, /* ATI SB600 non-raid */
        { PCI_VENDOR_ID_ATI, 0x4381, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
          board_ahci }, /* ATI SB600 raid */
+       { PCI_VENDOR_ID_ATI, 0x4390, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci_sb700 },
+       { PCI_VENDOR_ID_ATI, 0x4391, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci_sb700 },
+       { PCI_VENDOR_ID_ATI, 0x4392, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci_sb700 },
+       { PCI_VENDOR_ID_ATI, 0x4393, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci_sb700 },
+       { PCI_VENDOR_ID_ATI, 0x4394, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci_sb700 },
+       { PCI_VENDOR_ID_ATI, 0x4395, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+         board_ahci_sb700 },
 
        /* VIA */
        { PCI_VENDOR_ID_VIA, 0x3349, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
diff -r 8792274adfd0 -r 1e8c3287b395 include/linux/libata.h
--- a/include/linux/libata.h    Wed May 21 11:00:28 2008 +0100
+++ b/include/linux/libata.h    Wed May 21 11:11:00 2008 +0100
@@ -162,6 +162,12 @@ enum {
        ATA_FLAG_SKIP_D2H_BSY   = (1 << 12), /* can't wait for the first D2H
                                              * Register FIS clearing BSY */
        ATA_FLAG_DEBUGMSG       = (1 << 13),
+       ATA_FLAG_IGN_SIMPLEX    = (1 << 15), /* ignore SIMPLEX */
+       ATA_FLAG_NO_IORDY       = (1 << 16), /* controller lacks iordy */
+       ATA_FLAG_ACPI_SATA      = (1 << 17), /* need native SATA ACPI layout */
+       ATA_FLAG_AN             = (1 << 18), /* controller supports AN */
+       ATA_FLAG_PMP            = (1 << 19), /* controller supports PMP */
+       ATA_FLAG_IPM            = (1 << 20), /* driver can handle IPM */
 
        /* The following flag belongs to ap->pflags but is kept in
         * ap->flags because it's referenced in many LLDs and will be
diff -r 8792274adfd0 -r 1e8c3287b395 include/linux/pci_ids.h
--- a/include/linux/pci_ids.h   Wed May 21 11:00:28 2008 +0100
+++ b/include/linux/pci_ids.h   Wed May 21 11:11:00 2008 +0100
@@ -15,6 +15,8 @@
 #define PCI_CLASS_STORAGE_FLOPPY       0x0102
 #define PCI_CLASS_STORAGE_IPI          0x0103
 #define PCI_CLASS_STORAGE_RAID         0x0104
+#define PCI_CLASS_STORAGE_SATA          0x0106
+#define PCI_CLASS_STORAGE_SATA_AHCI     0x010601
 #define PCI_CLASS_STORAGE_SAS          0x0107
 #define PCI_CLASS_STORAGE_OTHER                0x0180
 
@@ -363,6 +365,8 @@
 #define PCI_DEVICE_ID_ATI_IXP600_SATA  0x4380
 #define PCI_DEVICE_ID_ATI_IXP600_SRAID 0x4381
 #define PCI_DEVICE_ID_ATI_IXP600_IDE   0x438c
+#define PCI_DEVICE_ID_ATI_IXP700_SATA  0x4390
+#define PCI_DEVICE_ID_ATI_IXP700_IDE   0x439c
 
 #define PCI_VENDOR_ID_VLSI             0x1004
 #define PCI_DEVICE_ID_VLSI_82C592      0x0005

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] Add support for SB700 storage controllers., Xen patchbot-linux-2.6.18-xen <=