unsupported NVIDIA SATA controller
Andrey V. Elsukov
bu7cher at yandex.ru
Tue Sep 23 05:12:11 UTC 2008
Joseph Olatt wrote:
>>> none13 at pci0:0:14:0: class=0x010485 card=0x01371025 chip=0x07f810de rev=0xa2 hdr=0x00
>>> vendor = 'Nvidia Corp'
>>> class = mass storage
>>> subclass = RAID
>> Do you still have this problem?
>> It seems that your controller is AHCI-capable.
>> I can make a patch if is it needed.
>
> Yes, I'm still have the above problem. And, yes, the controller appears
> to be ACHI-capable (at least according to Ubuntu. see [1])
>
> I would greatly appreciate a patch if you can provide one.
>
> regards,
> joseph
>
>
> [1]: http://www.eskimo.com/~joji/nvidia_sata/
Hi, Joseph.
Try attached patch.
--
WBR, Andrey V. Elsukov
-------------- next part --------------
Index: src/sys/dev/ata/ata-chipset.c
===================================================================
RCS file: /ncvs/src/sys/dev/ata/ata-chipset.c,v
retrieving revision 1.225
diff -u -p -r1.225 ata-chipset.c
--- src/sys/dev/ata/ata-chipset.c 15 Aug 2008 10:55:11 -0000 1.225
+++ src/sys/dev/ata/ata-chipset.c 23 Sep 2008 05:06:28 -0000
@@ -3372,7 +3372,9 @@ ata_nvidia_ident(device_t dev)
{ ATA_NFORCE_MCP61_S3, 0, 0, NV4|NVQ, ATA_SA300, "nForce MCP61" },
{ ATA_NFORCE_MCP65, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP65" },
{ ATA_NFORCE_MCP67, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP67" },
+ { ATA_NFORCE_MCP67_A1, 0, 0, NVAHCI, ATA_SA300, "nForce MCP67" },
{ ATA_NFORCE_MCP73, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP73" },
+ { ATA_NFORCE_MCP73_A1, 0, 0, NVAHCI, ATA_SA300, "nForce MCP73" },
{ ATA_NFORCE_MCP77, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP77" },
{ 0, 0, 0, 0, 0, 0}} ;
@@ -3380,7 +3382,12 @@ ata_nvidia_ident(device_t dev)
return ENXIO;
ata_set_desc(dev);
- ctlr->chipinit = ata_nvidia_chipinit;
+
+ if (ctlr->chip->cfg2 == NVAHCI)
+ ctlr->chipinit = ata_ahci_chipinit;
+ else
+ ctlr->chipinit = ata_nvidia_chipinit;
+
return 0;
}
Index: src/sys/dev/ata/ata-pci.h
===================================================================
RCS file: /ncvs/src/sys/dev/ata/ata-pci.h,v
retrieving revision 1.89
diff -u -p -r1.89 ata-pci.h
--- src/sys/dev/ata/ata-pci.h 10 Jul 2008 21:36:53 -0000 1.89
+++ src/sys/dev/ata/ata-pci.h 23 Sep 2008 05:06:28 -0000
@@ -243,8 +243,10 @@ struct ata_connect_task {
#define ATA_NFORCE_MCP61_S2 0x03f610de
#define ATA_NFORCE_MCP61_S3 0x03f710de
#define ATA_NFORCE_MCP65 0x044810de
+#define ATA_NFORCE_MCP67_A1 0x055010de
#define ATA_NFORCE_MCP67 0x056010de
#define ATA_NFORCE_MCP73 0x056c10de
+#define ATA_NFORCE_MCP73_A1 0x07f810de
#define ATA_NFORCE_MCP77 0x075910de
#define ATA_PROMISE_ID 0x105a
@@ -450,6 +452,7 @@ struct ata_connect_task {
#define NVIDIA 0x0004
#define NV4 0x0010
#define NVQ 0x0020
+#define NVAHCI 0x0040
#define VIACLK 0x0100
#define VIABUG 0x0200
#define VIABAR 0x0400
More information about the freebsd-stable
mailing list