Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Dec 2002 08:43:07 -0500
From:      Jeff Utter <funk@softhome.net>
To:        freebsd-hackers@freebsd.org
Subject:   Patch help for Nforce2 network card/audio
Message-ID:  <20021226134307.GA12186@bsd.sadclown.net>

next in thread | raw e-mail | index | archive | help
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: <nVidia nForce 10/100BaseTX> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021226134307.GA12186>