From owner-freebsd-hackers Wed Dec 30 09:13:50 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA06101 for freebsd-hackers-outgoing; Wed, 30 Dec 1998 09:13:50 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from pacman.redwoodsoft.com (redwoodsoft.com [207.181.199.182]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id JAA06096 for ; Wed, 30 Dec 1998 09:13:49 -0800 (PST) (envelope-from dnelson@pacman.redwoodsoft.com) Received: (qmail 21805 invoked by uid 1000); 30 Dec 1998 17:13:28 -0000 Date: Wed, 30 Dec 1998 09:13:28 -0800 (PST) From: Dru Nelson To: freebsd-hackers@FreeBSD.ORG Subject: how to support a 21140 board with mii... Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi, I want to add to if_de.c in order to support this new 21140 board that I have. In short, it can work, but it needs a little help on the PHY side. It is a newer card, so it uses the MII interface to handle what media it is using. For those who don't know, this is a standard way of communicating to any PHY support chip with a standard set of registers. This should make things easy so you don't have to guess what General Purpose lines do what. I emailed various people who have worked with the if_de.c driver, but I haven't received any replies. The board is a Wisecom PCI board. It uses a 21140-AF and has a separate DAVICOM PHY chip that uses MII. The board can work if I explicity set the mode. However, on boot it doesn't work. It gets media timeouts. It shouldn't have this problem. Since this board uses the MII interface, I looked at the code for the only board in the driver that uses this (the Asante). I tried making my board just like the asante (adding an OUI recognizer). This, in theory should work, since any board using the 21140 and MII should work exactly the same. No joy, it still doesn't do the right thing. I don't know where I need to push or pull the code, because I don't really understand the media_poll, select, probe, set calls? Who calls who, and who is responsbile for what. There are so many states, the code is hard to read, I thought I'd see if there are others more experienced with this before I go further. The driver should just come up, read the MII (which is in autonegotiate) and notice, aha, we are in 10baseT, half duplex.. So, what should I do in order to cleanly add to the driver the necessary code to make this board work? Should I just concentrate on media_poll? The probe function for the asante, merely sets a command register. Thanks for any help on this, Dru Nelson Redwood City, California To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message