From owner-freebsd-current@FreeBSD.ORG Fri Aug 29 07:12:01 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 26C5616A4BF for ; Fri, 29 Aug 2003 07:12:01 -0700 (PDT) Received: from zcars04f.nortelnetworks.com (zcars04f.nortelnetworks.com [47.129.242.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id E0F9F43FE0 for ; Fri, 29 Aug 2003 07:11:59 -0700 (PDT) (envelope-from atrens@nortelnetworks.com) Received: from zcard309.ca.nortel.com (zcard309.ca.nortel.com [47.129.242.69]) id h7TEBKL03611; Fri, 29 Aug 2003 10:11:20 -0400 (EDT) Received: from zcard031.ca.nortel.com ([47.129.242.121]) by zcard309.ca.nortel.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id RYZ08T0T; Fri, 29 Aug 2003 10:11:20 -0400 Received: from nortelnetworks.com (artpt4ws.us.nortel.com [47.140.42.14]) by zcard031.ca.nortel.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id R2391Q7C; Fri, 29 Aug 2003 10:11:19 -0400 Message-ID: <3F4F5F80.8050205@nortelnetworks.com> Date: Fri, 29 Aug 2003 10:13:20 -0400 X-Sybari-Space: 00000000 00000000 00000000 00000000 From: Andrew Atrens User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.4) Gecko/20030807 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Hendrik Hasenbein References: <200308281540.h7SFeUV22668@accms33.physik.rwth-aachen.de> <20030828201301.GA14685@gattaca.yadt.co.uk> <3F4F57FA.4030605@techfak.uni-bielefeld.de> In-Reply-To: <3F4F57FA.4030605@techfak.uni-bielefeld.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-current@freebsd.org Subject: Re: nvidia.ko freezes system in -current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Aug 2003 14:12:01 -0000 Hendrik Hasenbein wrote: > > Does somebody use the nvidia driver together with a nforce2 chipset? > The driver won't enable the agp port: > > nvidia0: 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.