Subject: Re: Nvidia nForce2 / ASUS A7N8X deluxe
To: Jason R Thorpe <thorpej@wasabisystems.com>
From: Gary Duzan <gary@duzan.org>
List: current-users
Date: 01/19/2003 17:33:46
------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <409.1043015622.1@capo.xnet.duzan.org>

In Message <200301171537.h0HFbDC23993@wheel.duzan.org> ,
   Gary Duzan <gary@duzan.org> wrote:

=>In Message <20030117152553.GB2380@yeah-baby.shagadelic.org> ,
=>   Jason R Thorpe <thorpej@wasabisystems.com> wrote:
=>
=>=>On Fri, Jan 17, 2003 at 05:41:08AM -0500, Gary Duzan wrote:
=>=>
=>=> > pciide* at pci? dev ? function ? flags 0x0001
=>=> > 
=>=> > made it much happier:
=>=> > 
=>=> > pciide0 at pci0 dev 9 function 0: Nvidia Corporation product 0x0065 (rev. 0xa2)
=>=> > pciide0: bus-master DMA support present, used without full driver support
=>=> > pciide0: primary channel configured to compatibility mode
=>=> > pciide0: primary channel interrupting at irq 14
=>=> > 
=>=> > Before this change, doing a CVS update would take up to 50% of the
=>=> > CPU (as reported by "systat vm") in interrupts, and this with an
=>=> > Athlon XP 2100+.  Afterwards, it was closer to 1%, and I have
=>=> > noticed no stability problems.
=>=>
=>=>Hm.  I wonder if it's simply compatible with the Intel PCI IDE (it would
=>=>not surprise me, since the audio is compatible with the Intel AC97).
=>
=>   I expect it could very well be compatible with one of the existing
=>IDE controllers, and I considered guessing at them, but put that
=>on hold after I spotted the "flags" option. I may poke around with
=>it a bit over the weekend.

   No joy, at least not yet. I tried the PIIX, CMD680, and PDC chip
maps, but each failed in some way or another. I did go ahead and add
pcidevs entries for all the nForce2 MCP-T devices I could sort out
and added a stub vendor/product entry to pciide.c, which are attached,
along with the resulting dmesg output.

					Gary Duzan


p.s. I might try configuring the Nvidia ethernet MAC using an existing
     ethernet driver to see what I get, but I'm not very hopeful.


------- =_aaaaaaaaaa0
Content-Type: text/plain; name="nForce2-patch"; charset="us-ascii"
Content-ID: <409.1043015622.2@capo.xnet.duzan.org>
Content-Description: nForce2-patch

Index: pcidevs
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/pcidevs,v
retrieving revision 1.497
diff -u -r1.497 pcidevs
--- pcidevs	2003/01/17 00:17:35	1.497
+++ pcidevs	2003/01/19 22:14:59
@@ -1789,8 +1789,16 @@
 product NVIDIA	GEFORCE2DDR	0x0151	GeForce2 GTS (DDR)
 product NVIDIA	GEFORCE2BR	0x0152	GeForce2 GTS
 product NVIDIA	QUADRO2		0x0153	Quadro2
-product NVIDIA	NFORCE_MCP_AC	0x01b1	nForce MCP AC-97
-product NVIDIA	NFORCE2_MCPT_AC	0x006a	nForce2 MCP-T AC-97
+product NVIDIA	NFORCE_MCP_AC		0x01b1	nForce MCP AC-97
+product NVIDIA	NFORCE2_MCPT_ISA	0x0060	nForce2 MCP-T PCI to ISA Bridge
+product NVIDIA	NFORCE2_MCPT_SMB	0x0064	nForce2 MCP-T SMBus
+product NVIDIA	NFORCE2_MCPT_IDE	0x0065	nForce2 MCP-T IDE Controller
+product NVIDIA	NFORCE2_MCPT_ETHER	0x0066	nForce2 MCP-T Ethernet
+product NVIDIA	NFORCE2_MCPT_USB	0x0067	nForce2 MCP-T USB Host Adapter
+product NVIDIA	NFORCE2_MCPT_AC		0x006a	nForce2 MCP-T AC-97
+product NVIDIA	NFORCE2_MCPT_PCI	0x006c	nForce2 MCP-T PCI to PCI Bridge
+product NVIDIA	NFORCE2_MCPT_FW		0x006e	nForce2 MCP-T Firewire
+product NVIDIA	NFORCE2_MCPT_AGP	0x01e8	nForce2 MCP-T PCI to AGP Bridge
 
 /* Nvidia Corporation & SGS Thomson Microelectric */
 product NVIDIA_SGS	RIVA128	0x0018	Riva 128
Index: pciide.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/pciide.c,v
retrieving revision 1.176
diff -u -r1.176 pciide.c
--- pciide.c	2002/12/26 20:54:03	1.176
+++ pciide.c	2003/01/19 22:15:05
@@ -604,6 +604,18 @@
 	}
 };
 
+const struct pciide_product_desc pciide_nvidia_products[] =  {
+	{ PCI_PRODUCT_NVIDIA_NFORCE2_MCPT_IDE,
+	  0,
+	  "Nvidia nForce2 MCP-T Ultra ATA/133 controller",
+	  default_chip_map,
+	},
+	{ 0,
+	  0,
+	  NULL,
+	}
+};
+
 struct pciide_vendor_desc {
 	u_int32_t ide_vendor;
 	const struct pciide_product_desc *ide_products;
@@ -624,6 +636,7 @@
 	{ PCI_VENDOR_SERVERWORKS, pciide_serverworks_products },
 	{ PCI_VENDOR_SYMPHONY, pciide_symphony_products },
 	{ PCI_VENDOR_WINBOND, pciide_winbond_products },
+	{ PCI_VENDOR_NVIDIA, pciide_nvidia_products },
 	{ 0, NULL }
 };
 

------- =_aaaaaaaaaa0
Content-Type: text/plain; name="nForce2-dmesg"; charset="us-ascii"
Content-ID: <409.1043015622.3@capo.xnet.duzan.org>
Content-Description: nForce2-dmesg

NetBSD 1.6L (CAPO) #6: Sun Jan 19 17:05:51 EST 2003
    gary@capo:/usr2/current/i386/obj/usr2/current/src/sys/arch/i386/compile/CAPO
total memory = 511 MB
avail memory = 369 MB
using 6144 buffers containing 127 MB of memory
BIOS32 rev. 0 found at 0xfb390
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: AMD Athlon XP 2100+ (686-class), 1737.36 MHz, id 0x662
cpu0: features c3c3fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features c3c3fbff<PGE,MCA,CMOV,PAT,PSE36,MMXX,MMX>
cpu0: features c3c3fbff<FXSR,SSE,3DNOW2,3DNOW>
cpu0: I-cache 64 KB 64b/line 2-way, D-cache 64 KB 64b/line 2-way
cpu0: L2 cache 256 KB 64b/line 16-way
cpu0: ITLB 16 4 KB entries fully associative, 8 4 MB entries fully associative
cpu0: DTLB 32 4 KB entries fully associative, 8 4 MB entries 4-way
cpu0: 8 page colors
acpi0 at mainbus0
acpi0: X/RSDT: OemId <Nvidia,AWRDACPI,42302e31>, AslId <AWRD,00000000>
acpi0: SCI interrupting at int 9
acpi0: fixed-feature power button present
ACPI Object Type 'Processor' (0x0c) at acpi0 not configured
PNP0C02 [Plug and Play motherboard register resources] at acpi0 not configured
PNP0C02 [Plug and Play motherboard register resources] at acpi0 not configured
acpibut0 at acpi0 (PNP0C0C): ACPI Power Button
PNP0C01 [System Board] at acpi0 not configured
PNP0A03 [PCI Bus] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C0F [PCI interrupt link device] at acpi0 not configured
PNP0C02 [Plug and Play motherboard register resources] at acpi0 not configured
PNP0000 [AT Interrupt Controller] at acpi0 not configured
PNP0200 [AT DMA Controller] at acpi0 not configured
PNP0100 [AT Timer] at acpi0 not configured
PNP0B00 [AT Real-Time Clock] at acpi0 not configured
PNP0800 [AT-style speaker sound] at acpi0 not configured
npx0 at acpi0 (PNP0C04)
npx0: io 0xf0-0xff irq 13
npx0: using exception 16
fdc0 at acpi0 (PNP0700)
fdc0: io 0x3f0-0x3f5,0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
com0 at acpi0 (PNP0501-1)
com0: io 0x3f8-0x3ff irq 4
com0: ns16550a, working fifo
pckbc0 at acpi0 (PNP0303): kbd port
pckbc0: io 0x60,0x64 irq 1
PNPB006 [MPU401 compatible ] at acpi0 not configured
PNP0C0B [ACPI Fan] at acpi0 not configured
acpitz0 at acpi0 (): ACPI Thermal Zone
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Nvidia Corporation product 0x01e0 (rev. 0xa2)
agp at pchb0 not configured
Nvidia Corporation product 0x01eb (RAM memory, revision 0xa2) at pci0 dev 0 function 1 not configured
Nvidia Corporation product 0x01ee (RAM memory, revision 0xa2) at pci0 dev 0 function 2 not configured
Nvidia Corporation product 0x01ed (RAM memory, revision 0xa2) at pci0 dev 0 function 3 not configured
Nvidia Corporation product 0x01ec (RAM memory, revision 0xa2) at pci0 dev 0 function 4 not configured
Nvidia Corporation product 0x01ef (RAM memory, revision 0xa2) at pci0 dev 0 function 5 not configured
pcib0 at pci0 dev 1 function 0
pcib0: Nvidia Corporation nForce2 MCP-T PCI to ISA Bridge (rev. 0xa3)
Nvidia Corporation nForce2 MCP-T SMBus (SMBus serial bus, revision 0xa2) at pci0 dev 1 function 1 not configured
ohci0 at pci0 dev 2 function 0: Nvidia Corporation nForce2 MCP-T USB Host Adapter (rev. 0xa3)
ohci0: interrupting at irq 7
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
uhub0 at usb0
uhub0: Nvidia Corporat OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
ohci1 at pci0 dev 2 function 1: Nvidia Corporation nForce2 MCP-T USB Host Adapter (rev. 0xa3)
ohci1: interrupting at irq 5
ohci1: OHCI version 1.0, legacy support
usb1 at ohci1: USB revision 1.0
uhub1 at usb1
uhub1: Nvidia Corporat OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
Nvidia Corporation nForce2 MCP-T Ethernet (ethernet network, revision 0xa1) at pci0 dev 4 function 0 not configured
Nvidia Corporation product 0x006b (audio multimedia, revision 0xa2) at pci0 dev 5 function 0 not configured
auich0 at pci0 dev 6 function 0: nForce2 MCP-T AC-97 Audio
auich0: interrupting at irq 3
auich0: Avance Logic ALC650 codec; 20 bit DAC, 18 bit ADC, Realtek 3D
auich0: variable rate audio, double rate output, S/PDIF, center DAC, surround DAC, LFE DAC
audio0 at auich0: full duplex, mmap, independent
ppb0 at pci0 dev 8 function 0: Nvidia Corporation nForce2 MCP-T PCI to PCI Bridge (rev. 0xa3)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
rtk0 at pci1 dev 8 function 0: D-Link Systems DFE 530TX+
rtk0: interrupting at irq 11
rtk0: Ethernet address 00:50:ba:60:0e:19
ukphy0 at rtk0 phy 7: Generic IEEE 802.3u media interface
ukphy0: OUI 0x000000, model 0x0000, rev. 0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pciide0 at pci0 dev 9 function 0: Nvidia nForce2 MCP-T Ultra ATA/133 controller (rev. 0xa2)
pciide0: bus-master DMA support present, used without full driver support
pciide0: primary channel configured to compatibility mode
pciide0: primary channel interrupting at irq 14
wd0 at pciide0 channel 0 drive 0: <ST320423A>
wd0: drive supports 32-sector PIO transfers, LBA addressing
wd0: 19536 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 40011300 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
pciide0: secondary channel configured to compatibility mode
pciide0: secondary channel interrupting at irq 15
atapibus0 at pciide0 channel 1: 2 targets
cd0 at atapibus0 drive 0: <SONY CD-ROM CDU4821, MT1198-B Firmware, S0.Q> cdrom removable
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
wdc_atapi_get_params: drive 1 not present
wd1 at pciide0 channel 1 drive 1: <MAXTOR 6L080L4>
wd1: drive supports 16-sector PIO transfers, LBA addressing
wd1: 76345 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 156355584 sectors
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
pciide0:0:0: using DMA data transfers
pciide0:1:0: using DMA data transfers
pciide0:1:1: using DMA data transfers
fwohci0 at pci0 dev 13 function 0: Nvidia Corporation nForce2 MCP-T Firewire (rev. 0xa3)
fwohci0: interrupting at irq 11
fwohci0: OHCI 1.1, 00:30:04:00:01:02:90:a6, 400Mb/s, 2048 max_rec, 4 ir_ctx, 4 it_ctx
ppb1 at pci0 dev 30 function 0: Nvidia Corporation nForce2 MCP-T PCI to AGP Bridge (rev. 0xa2)
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled
vga0 at pci2 dev 0 function 0: ATI Technologies Radeon 7000/VE (rev. 0x00)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
wsmux1: connecting to wsdisplay0
isa0 at pcib0
pcppi0 at isa0 port 0x61
sysbeep0 at pcppi0
auich0: measured ac97 link rate at 42471 Hz, will use 48000 Hz
fw0 at fwohci0: 00:30:04:00:01:02:90:a6:0a:02:ff:ff:f0:01:00:00
uhub0: device problem, disabling port 1
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
IP Filter: v3.4.29 initialized.  Default = pass all, Logging = enabled
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
wsdisplay0: screen 5 added (80x25, vt100 emulation)
wsdisplay0: screen 6 added (80x25, vt100 emulation)
wsdisplay0: screen 7 added (80x25, vt100 emulation)

------- =_aaaaaaaaaa0--