From owner-freebsd-hackers Thu Nov 16 11: 0:56 2000 Delivered-To: freebsd-hackers@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 618) id E25C037B479; Thu, 16 Nov 2000 11:00:49 -0800 (PST) Subject: Re: More detail on Deskpro XL6200 NIC (was: Legacy ethernet cards in FreeBSD) In-Reply-To: <59063B5B4D98D311BC0D0001FA7E4522026D7A07@l04.research.kpn.com> from "Koster, K.J." at "Nov 16, 2000 12:11:56 pm" To: K.J.Koster@kpn.com (Koster, K.J.) Date: Thu, 16 Nov 2000 11:00:49 -0800 (PST) Cc: freebsd-hackers@freebsd.org X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20001116190049.E25C037B479@hub.freebsd.org> From: wpaul@FreeBSD.ORG (Bill Paul) Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG [Charset iso-8859-1 unsupported, filtering to ASCII...] > Dear Bill, others, > > I've been working on getting my Deskpros to use their NIC under 4.2, but no > luck. The problem is as follows: I installed 4.0, and the NIC came up under > the lnc driver, reports its MAC address and works fine. > [...] > In 4.2, the lnc driver still probes and finds the NIC, but does not report > finding a MAC address, and the NIC remains dead. [...] > Compiling a kernel with the pcn driver does not help. Booting a lnc+pcn > kernel causes the behaviour described above, booting a pcn-only kernel makes > the NIC show up as an unknown device, vendor 0x1022, device 0x2000. *ahem* How about compiling a kernel *without* the pcn driver? I want to know why you didn't consider this combination. (Well, I know why: because giving me the answer straight away rather than making me drag it out of you would have been too easy. I would never be that lucky.) The pcn driver does *not* want this card. It specifically checks for the device code in the probe routine and rejects cards it doesn't like. Note that this is *not* the PCI vendor/device ID: the way AMD did it, the PCI ID is the same for all the PCnet devices. You need to read a register in I/O space to determine exactly what device this is. That said, I think I know what the problem is. The pcn driver is probing the card first and setting it to 32-bit mode. The lnc driver wants the device to be in 16-bit mode: if it isn't, it won't be able to properly access any of its registers. This is why reading the card type and MAC address fails. Next time, *remove* the pcn device from the kernel config and leave the lnc driver. That should work. In the meantime, I need to get out the PCnet manual and check how to put the device back into 16-bit mode at the end of pcn_probe() so that the lnc driver will play nice with it. -Bill To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message