Date: Fri, 29 Aug 2003 10:13:20 -0400 From: Andrew Atrens <atrens@nortelnetworks.com> To: Hendrik Hasenbein <hhasenbe@techfak.uni-bielefeld.de> Cc: freebsd-current@freebsd.org Subject: Re: nvidia.ko freezes system in -current Message-ID: <3F4F5F80.8050205@nortelnetworks.com> In-Reply-To: <3F4F57FA.4030605@techfak.uni-bielefeld.de> References: <200308281540.h7SFeUV22668@accms33.physik.rwth-aachen.de> <20030828201301.GA14685@gattaca.yadt.co.uk> <3F4F57FA.4030605@techfak.uni-bielefeld.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Hendrik Hasenbein wrote: > > Does somebody use the nvidia driver together with a nforce2 chipset? > The driver won't enable the agp port: > > nvidia0: <Unknown> at device 0.1 on pci0 > nvidia0: Unable to enable PCI busmastering. > device_probe_and_attach: nvidia0 attach returned 6 These messages are actually bogus. The problem is that the driver tries to attach any devices whose vendorid is nVIDIA. In the port, there's a file called nvidia_pci.c. I've modified the probe to ignore the mb devices - Try this version - int nvidia_pci_probe(device_t dev) { U016 vendor; U016 device; char name[NV_DEVICE_NAME_LENGTH]; vendor = pci_get_vendor(dev); device = pci_get_device(dev); if (vendor != NVIDIA_VENDORID || device < 0x0020) return ENXIO; switch ( device ) { /* exclude these nForce and nForce2 devices from the probe */ case 0x01e0: /* nForce2 AGP Controller */ case 0x01e8: /* nForce2 AGP Host to PCI Bridge */ case 0x01eb: /* nForce2 Memory Controller 1 */ case 0x01ee: /* nForce2 Memory Controller 4 */ case 0x01ed: /* nForce2 Memory Controller 3 */ case 0x01ec: /* nForce2 Memory Controller 2 */ case 0x01ef: /* nForce2 Memory Controller 5 */ case 0x0060: /* nForce MCP2 ISA Bridge */ case 0x0064: /* nForce MCP-T? SMBus Controller */ case 0x0067: /* nForce MCP2 OpenHCI USB Controller */ case 0x006b: /* nForce MCP-T? Audio Processing Unit (Dolby Digital) */ case 0x006a: /* nForce MCP2 Audio Codec Interface */ case 0x006c: /* nForce PCI to PCI Bridge */ case 0x0065: /* nForce MCP2 EIDE Controller */ case 0x006d: /* Nvidia (unknown) PCI to PCI Bridge */ case 0x006e: /* nForce MCP2 OHCI Compliant IEEE 1394 Controller */ return ENXIO; break; default: break; } if (rm_get_device_name(device, NV_DEVICE_NAME_LENGTH, name) != RM_OK) { strcpy(name, "Unknown"); } device_set_desc_copy(dev, name); return 0; } Note that I don't have the usb2.0 controller (ehci) enabled, because it's not supported yet in -STABLE. Because it's not support I've disabled it in the bios and didn't add the device id to the switch statement for it (actually I don't know what it is :) )... If you have USB2.0 support enabled in your bios you can do a 'pciconf -l -v' to extract the device id, and then add that device to the 'ignore list' aka switch statement :) Here's an example snippet of pciconf output - atapci0@pci0:9:0: class=0x01018a card=0x0c111043 chip=0x006510de rev=0xa2 hdr=0x00 ^^ 0x10de is the vendorid, and the top part 0x0065 is your device id. The combination that works for me (in -STABLE) is nvidia gart and no hacks. I spent some time trying to get Matt Dodd's os agp to work, again in -STABLE, and while it does probe and attach the agp correctly - and from what I could tell seems to follow the linux code very closely - I can't get the nvidia driver to work with it. Good luck, Andrew.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3F4F5F80.8050205>