2003-09-18 03:47:34

by Allen Martin

[permalink] [raw]
Subject: [PATCH] 2.4.23-pre4 support for new nForce IDE controllers

This adds support for some new and upcoming NVIDIA nForce IDE controllers to
the combined AMD / NVIDIA IDE driver. I've also added support for udma6
(Ultra 133) as a separate patch that depends on this patch.


diff -ru -X dontdiff linux-2.4.23-pre4/drivers/ide/pci/amd74xx.c
linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.c
--- linux-2.4.23-pre4/drivers/ide/pci/amd74xx.c 2003-06-13
07:51:33.000000000 -0700
+++ linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.c 2003-09-17
19:58:46.000000000 -0700
@@ -60,7 +60,13 @@
{ PCI_DEVICE_ID_AMD_OPUS_7441, 0x00, 0x40, AMD_UDMA_100 },
/* AMD-768 Opus */
{ PCI_DEVICE_ID_AMD_8111_IDE, 0x00, 0x40, AMD_UDMA_100 },
/* AMD-8111 */
{ PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, 0x00, 0x50, AMD_UDMA_100 },
/* nVidia nForce */
- { PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE, 0x00, 0x50, AMD_UDMA_100 },
/* nVidia nForce */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE, 0x00, 0x50, AMD_UDMA_100 },
/* nVidia nForce2 */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE, 0x00, 0x50, AMD_UDMA_100 },
/* nVidia nForce2s */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA, 0x00, 0x50, AMD_UDMA_100 },
/* nVidia nForce2s SATA */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, 0x00, 0x50, AMD_UDMA_100 },
/* NVIDIA nForce3 */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, 0x00, 0x50, AMD_UDMA_100 },
/* NVIDIA nForce3s */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, 0x00, 0x50, AMD_UDMA_100 },
/* NVIDIA nForce3s SATA */
+ { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, 0x00, 0x50, AMD_UDMA_100 },
/* NVIDIA nForce3s SATA2 */

{ 0 }
};
@@ -454,6 +460,12 @@
{ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8111_IDE, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 4},
{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 5},
{ PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6},
+ { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 7},
+ { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 8},
+ { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9},
+ { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10},
+ { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
+ { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
{ 0, },
};

diff -ru -X dontdiff linux-2.4.23-pre4/drivers/ide/pci/amd74xx.h
linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.h
--- linux-2.4.23-pre4/drivers/ide/pci/amd74xx.h 2003-09-17
18:59:27.000000000 -0700
+++ linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.h 2003-09-17
19:59:15.000000000 -0700
@@ -124,6 +124,90 @@
.bootable = ON_BOARD,
.extra = 0,
},
+ { /* 7 */
+ .vendor = PCI_VENDOR_ID_NVIDIA,
+ .device = PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE,
+ .name = "NFORCE2",
+ .init_chipset = init_chipset_amd74xx,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_amd74xx,
+ .init_dma = init_dma_amd74xx,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },
+ { /* 8 */
+ .vendor = PCI_VENDOR_ID_NVIDIA,
+ .device = PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA,
+ .name = "NFORCE2",
+ .init_chipset = init_chipset_amd74xx,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_amd74xx,
+ .init_dma = init_dma_amd74xx,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },
+ { /* 9 */
+ .vendor = PCI_VENDOR_ID_NVIDIA,
+ .device = PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE,
+ .name = "NFORCE3",
+ .init_chipset = init_chipset_amd74xx,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_amd74xx,
+ .init_dma = init_dma_amd74xx,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },
+ { /* 10 */
+ .vendor = PCI_VENDOR_ID_NVIDIA,
+ .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE,
+ .name = "NFORCE3",
+ .init_chipset = init_chipset_amd74xx,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_amd74xx,
+ .init_dma = init_dma_amd74xx,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },
+ { /* 11 */
+ .vendor = PCI_VENDOR_ID_NVIDIA,
+ .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA,
+ .name = "NFORCE3",
+ .init_chipset = init_chipset_amd74xx,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_amd74xx,
+ .init_dma = init_dma_amd74xx,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },
+ { /* 12 */
+ .vendor = PCI_VENDOR_ID_NVIDIA,
+ .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2,
+ .name = "NFORCE3",
+ .init_chipset = init_chipset_amd74xx,
+ .init_iops = NULL,
+ .init_hwif = init_hwif_amd74xx,
+ .init_dma = init_dma_amd74xx,
+ .channels = 2,
+ .autodma = AUTODMA,
+ .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
+ .bootable = ON_BOARD,
+ .extra = 0,
+ },
{
.vendor = 0,
.device = 0,
diff -ru -X dontdiff linux-2.4.23-pre4/include/linux/pci_ids.h
linux-2.4.23-pre4-nvide/include/linux/pci_ids.h
--- linux-2.4.23-pre4/include/linux/pci_ids.h 2003-09-17
18:56:36.000000000 -0700
+++ linux-2.4.23-pre4-nvide/include/linux/pci_ids.h 2003-09-17
19:58:46.000000000 -0700
@@ -966,7 +966,13 @@
#define PCI_DEVICE_ID_NVIDIA_VTNT2 0x002C
#define PCI_DEVICE_ID_NVIDIA_UVTNT2 0x002D
#define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065
+#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
+#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
#define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
+#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
+#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3
+#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
+#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
#define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100
#define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101
#define PCI_DEVICE_ID_NVIDIA_QUADRO 0x0103


2003-09-18 04:08:24

by Allen Martin

[permalink] [raw]
Subject: RE: [PATCH] 2.4.23-pre4 support for new nForce IDE controllers

Sorry, my mailer added newlines, resending as attachment.

-Allen

> -----Original Message-----
> From: Allen Martin
> Sent: Wednesday, September 17, 2003 8:47 PM
> To: Andre Hedrick ([email protected])
> Cc: LKML ([email protected])
> Subject: [PATCH] 2.4.23-pre4 support for new nForce IDE controllers
>
>
> This adds support for some new and upcoming NVIDIA nForce IDE
> controllers to
> the combined AMD / NVIDIA IDE driver. I've also added
> support for udma6
> (Ultra 133) as a separate patch that depends on this patch.
>
>
> diff -ru -X dontdiff linux-2.4.23-pre4/drivers/ide/pci/amd74xx.c
> linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.c
> --- linux-2.4.23-pre4/drivers/ide/pci/amd74xx.c 2003-06-13
> 07:51:33.000000000 -0700
> +++ linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.c 2003-09-17
> 19:58:46.000000000 -0700
> @@ -60,7 +60,13 @@
> { PCI_DEVICE_ID_AMD_OPUS_7441, 0x00, 0x40, AMD_UDMA_100 },
> /* AMD-768 Opus */
> { PCI_DEVICE_ID_AMD_8111_IDE, 0x00, 0x40, AMD_UDMA_100 },
> /* AMD-8111 */
> { PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, 0x00, 0x50,
> AMD_UDMA_100 },
> /* nVidia nForce */
> - { PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE, 0x00, 0x50,
> AMD_UDMA_100 },
> /* nVidia nForce */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE, 0x00, 0x50,
> AMD_UDMA_100 },
> /* nVidia nForce2 */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE, 0x00, 0x50,
> AMD_UDMA_100 },
> /* nVidia nForce2s */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA, 0x00, 0x50,
> AMD_UDMA_100 },
> /* nVidia nForce2s SATA */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, 0x00, 0x50,
> AMD_UDMA_100 },
> /* NVIDIA nForce3 */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, 0x00, 0x50,
> AMD_UDMA_100 },
> /* NVIDIA nForce3s */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, 0x00, 0x50,
> AMD_UDMA_100 },
> /* NVIDIA nForce3s SATA */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, 0x00, 0x50,
> AMD_UDMA_100 },
> /* NVIDIA nForce3s SATA2 */
>
> { 0 }
> };
> @@ -454,6 +460,12 @@
> { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8111_IDE,
> PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 4},
> { PCI_VENDOR_ID_NVIDIA,
> PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 5},
> { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 7},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 8},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
> { 0, },
> };
>
> diff -ru -X dontdiff linux-2.4.23-pre4/drivers/ide/pci/amd74xx.h
> linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.h
> --- linux-2.4.23-pre4/drivers/ide/pci/amd74xx.h 2003-09-17
> 18:59:27.000000000 -0700
> +++ linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.h 2003-09-17
> 19:59:15.000000000 -0700
> @@ -124,6 +124,90 @@
> .bootable = ON_BOARD,
> .extra = 0,
> },
> + { /* 7 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE,
> + .name = "NFORCE2",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 8 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA,
> + .name = "NFORCE2",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 9 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 10 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 11 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 12 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> {
> .vendor = 0,
> .device = 0,
> diff -ru -X dontdiff linux-2.4.23-pre4/include/linux/pci_ids.h
> linux-2.4.23-pre4-nvide/include/linux/pci_ids.h
> --- linux-2.4.23-pre4/include/linux/pci_ids.h 2003-09-17
> 18:56:36.000000000 -0700
> +++ linux-2.4.23-pre4-nvide/include/linux/pci_ids.h 2003-09-17
> 19:58:46.000000000 -0700
> @@ -966,7 +966,13 @@
> #define PCI_DEVICE_ID_NVIDIA_VTNT2 0x002C
> #define PCI_DEVICE_ID_NVIDIA_UVTNT2 0x002D
> #define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
> #define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
> #define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100
> #define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101
> #define PCI_DEVICE_ID_NVIDIA_QUADRO 0x0103
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


Attachments:
linux-2.4.23-pre4-nvide.patch (5.92 kB)

2003-09-18 11:56:38

by Alan

[permalink] [raw]
Subject: RE: [PATCH] 2.4.23-pre4 support for new nForce IDE controllers

On Iau, 2003-09-18 at 05:08, Allen Martin wrote:
> Sorry, my mailer added newlines, resending as attachment.

Thanks will look over these.

One first question - does the serial ata stuff need to
avoid cable detect too ?

2003-09-18 18:08:46

by Allen Martin

[permalink] [raw]
Subject: RE: [PATCH] 2.4.23-pre4 support for new nForce IDE controllers

>
> Thanks will look over these.
>
> One first question - does the serial ata stuff need to
> avoid cable detect too ?

Actually cable detect is a problem even with PATA. The driver is reading a
register at offset 0x52 in config space of the controller (AMD_CABLE_DETECT)
to determine cable type, but this register doesn't exist on nForce chips.
The cable detect signal is wired to a GPIO pin on the nForce southbridge,
unfortunately some board makers have chosen different GPIO pins to wire this
up to, so only the BIOS knows for sure where the cable detect signal is.

Under Windows OS'es this isn't a problem because UDMA modes are set via an
ACPI method, so the driver doesn't have to know anything about the registers
or cable validation.

I saw the driver tries to detect if this bit is not working and turn it on,
but it only seems to happen on the primary channel. As far as I can tell it
doesn't prevent setting higher DMA modes though. Even when the driver
reports 40pin on the secondary channel I can still set dma modes >UDMA2.

-Allen

2003-09-21 07:53:47

by Andre Hedrick

[permalink] [raw]
Subject: Re: [PATCH] 2.4.23-pre4 support for new nForce IDE controllers


Allen,

Thanks for bringing this forward, the community welcomes vendors open to
the process of public support.

Cheers,

Andre Hedrick
LAD Storage Consulting Group

On Wed, 17 Sep 2003, Allen Martin wrote:

> This adds support for some new and upcoming NVIDIA nForce IDE controllers to
> the combined AMD / NVIDIA IDE driver. I've also added support for udma6
> (Ultra 133) as a separate patch that depends on this patch.
>
>
> diff -ru -X dontdiff linux-2.4.23-pre4/drivers/ide/pci/amd74xx.c
> linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.c
> --- linux-2.4.23-pre4/drivers/ide/pci/amd74xx.c 2003-06-13
> 07:51:33.000000000 -0700
> +++ linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.c 2003-09-17
> 19:58:46.000000000 -0700
> @@ -60,7 +60,13 @@
> { PCI_DEVICE_ID_AMD_OPUS_7441, 0x00, 0x40, AMD_UDMA_100 },
> /* AMD-768 Opus */
> { PCI_DEVICE_ID_AMD_8111_IDE, 0x00, 0x40, AMD_UDMA_100 },
> /* AMD-8111 */
> { PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, 0x00, 0x50, AMD_UDMA_100 },
> /* nVidia nForce */
> - { PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE, 0x00, 0x50, AMD_UDMA_100 },
> /* nVidia nForce */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE, 0x00, 0x50, AMD_UDMA_100 },
> /* nVidia nForce2 */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE, 0x00, 0x50, AMD_UDMA_100 },
> /* nVidia nForce2s */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA, 0x00, 0x50, AMD_UDMA_100 },
> /* nVidia nForce2s SATA */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, 0x00, 0x50, AMD_UDMA_100 },
> /* NVIDIA nForce3 */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, 0x00, 0x50, AMD_UDMA_100 },
> /* NVIDIA nForce3s */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, 0x00, 0x50, AMD_UDMA_100 },
> /* NVIDIA nForce3s SATA */
> + { PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, 0x00, 0x50, AMD_UDMA_100 },
> /* NVIDIA nForce3s SATA2 */
>
> { 0 }
> };
> @@ -454,6 +460,12 @@
> { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8111_IDE, PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 4},
> { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_IDE, PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 5},
> { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 7},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 8},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11},
> + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2,
> PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
> { 0, },
> };
>
> diff -ru -X dontdiff linux-2.4.23-pre4/drivers/ide/pci/amd74xx.h
> linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.h
> --- linux-2.4.23-pre4/drivers/ide/pci/amd74xx.h 2003-09-17
> 18:59:27.000000000 -0700
> +++ linux-2.4.23-pre4-nvide/drivers/ide/pci/amd74xx.h 2003-09-17
> 19:59:15.000000000 -0700
> @@ -124,6 +124,90 @@
> .bootable = ON_BOARD,
> .extra = 0,
> },
> + { /* 7 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE,
> + .name = "NFORCE2",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 8 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA,
> + .name = "NFORCE2",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 9 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 10 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 11 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> + { /* 12 */
> + .vendor = PCI_VENDOR_ID_NVIDIA,
> + .device = PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2,
> + .name = "NFORCE3",
> + .init_chipset = init_chipset_amd74xx,
> + .init_iops = NULL,
> + .init_hwif = init_hwif_amd74xx,
> + .init_dma = init_dma_amd74xx,
> + .channels = 2,
> + .autodma = AUTODMA,
> + .enablebits = {{0x50,0x02,0x02}, {0x50,0x01,0x01}},
> + .bootable = ON_BOARD,
> + .extra = 0,
> + },
> {
> .vendor = 0,
> .device = 0,
> diff -ru -X dontdiff linux-2.4.23-pre4/include/linux/pci_ids.h
> linux-2.4.23-pre4-nvide/include/linux/pci_ids.h
> --- linux-2.4.23-pre4/include/linux/pci_ids.h 2003-09-17
> 18:56:36.000000000 -0700
> +++ linux-2.4.23-pre4-nvide/include/linux/pci_ids.h 2003-09-17
> 19:58:46.000000000 -0700
> @@ -966,7 +966,13 @@
> #define PCI_DEVICE_ID_NVIDIA_VTNT2 0x002C
> #define PCI_DEVICE_ID_NVIDIA_UVTNT2 0x002D
> #define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
> #define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
> #define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100
> #define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101
> #define PCI_DEVICE_ID_NVIDIA_QUADRO 0x0103
>