From owner-freebsd-hackers Thu Dec 26 16:34: 1 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7638337B405 for ; Thu, 26 Dec 2002 16:33:57 -0800 (PST) Received: from mailout5-0.nyroc.rr.com (mailout5-0.nyroc.rr.com [24.92.226.122]) by mx1.FreeBSD.org (Postfix) with ESMTP id 783EB43EC2 for ; Thu, 26 Dec 2002 16:33:51 -0800 (PST) (envelope-from sirfunk@sadclown.net) Received: from bsd.sadclown.net (syr-24-59-59-213.twcny.rr.com [24.59.59.213]) by mailout5-0.nyroc.rr.com (8.11.6/RoadRunner 1.20) with ESMTP id gBR0XlF27818 for ; Thu, 26 Dec 2002 19:33:48 -0500 (EST) Received: by bsd.sadclown.net (Postfix, from userid 1000) id 84EF711902; Thu, 26 Dec 2002 01:09:21 -0500 (EST) Date: Thu, 26 Dec 2002 01:09:21 -0500 From: Jeff Utter To: freebsd-hackers@freebsd.org Subject: Patch help for Nforce2 network card/audio Message-ID: <20021226060921.GA10575@bsd.sadclown.net> Reply-To: Jeff Utter Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hello there, Recently I obtained a nforce2 motherboard and am trying to get the onboard sound/nic working. (havn't tried the sound yet) The manual claims that the network card is a RTL8201BL nic, and the kernel already has drivers for RTL8201L cards, so assume their similar enough and the rl driver would work for both of them. I figure that all that would have to be done is to add the device id's to the kernel source, and it "should" work. Included below is my systems pciconf so you can see the id's for the nic: hostb0@pci0:0:0: class=0x060000 card=0x00000000 chip=0x01e010de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = bridge subclass = HOST-PCI none0@pci0:0:1: class=0x050000 card=0x10001695 chip=0x01eb10de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = memory subclass = RAM none1@pci0:0:2: class=0x050000 card=0x10001695 chip=0x01ee10de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = memory subclass = RAM none2@pci0:0:3: class=0x050000 card=0x10001695 chip=0x01ed10de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = memory subclass = RAM none3@pci0:0:4: class=0x050000 card=0x10001695 chip=0x01ec10de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = memory subclass = RAM none4@pci0:0:5: class=0x050000 card=0x10001695 chip=0x01ef10de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = memory subclass = RAM isab0@pci0:1:0: class=0x060100 card=0x10001695 chip=0x006010de rev=0xa3 hdr=0x00 vendor = 'Nvidia Corporation' class = bridge subclass = PCI-ISA none5@pci0:1:1: class=0x0c0500 card=0x10001695 chip=0x006410de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = serial bus subclass = SMBus ohci0@pci0:2:0: class=0x0c0310 card=0x10001695 chip=0x006710de rev=0xa3 hdr=0x00 vendor = 'Nvidia Corporation' class = serial bus subclass = USB ohci1@pci0:2:1: class=0x0c0310 card=0x10001695 chip=0x006710de rev=0xa3 hdr=0x00 vendor = 'Nvidia Corporation' class = serial bus subclass = USB none6@pci0:2:2: class=0x0c0320 card=0x10001695 chip=0x006810de rev=0xa3 hdr=0x00 vendor = 'Nvidia Corporation' class = serial bus subclass = USB none7@pci0:4:0: class=0x020000 card=0x10001695 chip=0x006610de rev=0xa1 hdr=0x00 vendor = 'Nvidia Corporation' class = network subclass = ethernet none8@pci0:5:0: class=0x040100 card=0x10001695 chip=0x006b10de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = multimedia subclass = audio none9@pci0:6:0: class=0x040100 card=0x10001695 chip=0x006a10de rev=0xa1 hdr=0x00 vendor = 'Nvidia Corporation' class = multimedia subclass = audio pcib1@pci0:8:0: class=0x060400 card=0x00000000 chip=0x006c10de rev=0xa3 hdr=0x01 vendor = 'Nvidia Corporation' class = bridge subclass = PCI-PCI atapci0@pci0:9:0: class=0x01018a card=0x10001695 chip=0x006510de rev=0xa2 hdr=0x00 vendor = 'Nvidia Corporation' class = mass storage subclass = ATA none10@pci0:13:0: class=0x0c0010 card=0x10001695 chip=0x006e10de rev=0xa3 hdr=0x00 vendor = 'Nvidia Corporation' class = serial bus subclass = FireWire pcib2@pci0:30:0: class=0x060400 card=0x00000000 chip=0x01e810de rev=0xa2 hdr=0x01 vendor = 'Nvidia Corporation' class = bridge subclass = PCI-PCI xl0@pci1:7:0: class=0x020000 card=0x905510b7 chip=0x905510b7 rev=0x30 hdr=0x00 vendor = '3COM Corp, Networking Division' device = '3C905B-TX Fast Etherlink 10/100 PCI TX NIC' class = network subclass = ethernet none11@pci1:8:0: class=0x040000 card=0x13eb0070 chip=0x036e109e rev=0x02 hdr=0x00 vendor = 'Brooktree Corporation' device = 'Bt878 MediaStream Controller' class = multimedia subclass = video none12@pci1:8:1: class=0x048000 card=0x13eb0070 chip=0x0878109e rev=0x02 hdr=0x00 vendor = 'Brooktree Corporation' device = 'Bt878 Video Capture (Audio Section)' class = multimedia nvidia0@pci3:0:0: class=0x030000 card=0x6108147b chip=0x011010de rev=0xb2 hdr=0x00 vendor = 'Nvidia Corporation' device = 'NV11 GeForce 2 MX / MX 400' class = display subclass = VGA (the 3com card there is the nic i'm using for the time being, until i can get the onboard one to work. The other ethernet card is the built in nvidia one) A friend of mine and I put together this patch to add this card to the rl driver in the kernel (applied from the /usr/src/sys/pci/ directory): --- if_rlreg.h.orig Sat Sep 7 14:48:57 2002 +++ if_rlreg.h Thu Dec 26 10:23:17 2002 @@ -486,6 +486,15 @@ #define COREGA_DEVICEID_CBTXD 0xa117 /* + * nVidia vendor ID. + */ +#define NVIDIA_VENDORID 0x10DE + +/* + * nVidia nForce device ID + */ +#define NVIDIA_DEVICEID_RTL8201BTL 0x0066 +/* * PCI low memory base and low I/O base register, and * other PCI registers. */ --- if_rl.c.orig Fri Nov 15 13:52:49 2002 +++ if_rl.c Thu Dec 26 10:31:38 2002 @@ -152,6 +152,8 @@ "Addtron Technolgy 8139 10/100BaseTX" }, { DLINK_VENDORID, DLINK_DEVICEID_530TXPLUS, "D-Link DFE-530TX+ 10/100BaseTX" }, + { NVIDIA_VENDORID, NVIDIA_DEVICEID_RTL8201BTL, + "nVidia nForce 10/100BaseTX" }, { DLINK_VENDORID, DLINK_DEVICEID_690TXD, "D-Link DFE-690TXD 10/100BaseTX" }, { NORTEL_VENDORID, ACCTON_DEVICEID_5030, @@ -980,7 +982,7 @@ if (rl_did == RT_DEVICEID_8139 || rl_did == ACCTON_DEVICEID_5030 || rl_did == DELTA_DEVICEID_8139 || rl_did == ADDTRON_DEVICEID_8139 || rl_did == RT_DEVICEID_8138 || rl_did == DLINK_DEVICEID_530TXPLUS || - rl_did == DLINK_DEVICEID_690TXD || rl_did == COREGA_DEVICEID_CBTXD) + rl_did == DLINK_DEVICEID_690TXD || rl_did == COREGA_DEVICEID_CBTXD || rl_did == NVIDIA_DEVICEID_RTL8201BTL) sc->rl_type = RL_8139; else if (rl_did == RT_DEVICEID_8129) sc->rl_type = RL_8129; With this patch in place, and the kernel re-compiled. The system now recognizes the card as using the rl driver, however it fails to load with the message: rl0: port 0xc400-0xc407 mem 0xe5083000-0xe5083fff irq 5 at device 4.0 on pci0 rl0: couldn't map ports/memory device_probe_and_attach: rl0 attach returned 6 I'm not much of a kernel hacker or even a coder, so i'm not quite sure what this means, or where to go from here. Any insignt on this would be greatly appreciated, feel free to ask for additional information. Thanks, Jeff Utter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message