Date: Mon, 18 Feb 2002 10:07:36 -0800 From: Terry Lambert <tlambert2@mindspring.com> To: Andy Sporner <sporner@nentec.de> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Porting a device driver from NetBSD to FreeBSD Message-ID: <3C7142E8.E987BD6@mindspring.com> References: <XFMail.020218134232.sporner@nentec.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Andy Sporner wrote: [ ... ] At this point, lack of information about the device makes it hard to offer advice. I can only offer the following observartions, and the rest is up to you: o You indicated that the Realtek interface has ovrlapping memory, if probed and attached. Maybe it has it anyway. o You indicate that there is a register that is available through the I/O space. There has to be a reason why the vendor did this. o The following are the differences between the NetBSD and FreeBSD versions; I believe them to be significant: o The NetBSD driver does not lock up, while the FreeBSD driver does o The NetBSD "pattern write and read" is slow, but the FreeBSD version is fast My suggestion is to: 1) Print out the configuration bits on both FreeBSD and NetBSD to see if there is a difference. 2) Find out why the register is exposed in I/O space. 3) Find out why the NetBSD is slower. It may be the configuration bits. It may be the programming of the bridge chipset; it may be writeback caching; it may be something else entirely. 4) Intentionally add a delay into the FreeBSD code; for all I know about the hardware, it has DRAM on it, and accessing it at full throttle without the waits that the NetBSD version of the code has may mean that it misses too many refresh cycles and craps out. 5) Add a timeout reset to the receive interrupt; if this fixes it, the problem is in the receive interrupt getting lost. 6) "" for the transmit interrupt. 7) Consider going to NETISR based polling, where you call the ISR for the card, as if there had been an interrupt. Worst case, if everything else is equal, this will effectively poll the card, instead of waiting for interrupts, and lost interrupts will be apparent. Other than that, it's Bill Paul time... -- Terry 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?3C7142E8.E987BD6>