While working on some desktop machines for the network consulting company that I recently co-founded, Zero Millimeter, a problem with certain VIA chipsets was brought to my attention. Many AMD Athlon based motherboards, including the ones that our machines are built around, have some data corruption issues under high load. While I haven't personally experienced any known data corruption on our machines, countless others running both FreeBSD and Linux have had serious problems with these same chipsets. This problem affects the VIA chips on many different manufacturer's motherboards.
Since I don't run either FreeBSD or Linux, if I can help it, but rather have thrown in with the small BSD/OS lot, I immediately sent some email to some of the engineers that I know inside of the BSD/OS engineering team about this problem. I also sent along detailed references as to the causes of the problem. And some references to the existing Linux workarounds. No response. Not even an acknowledgement of the problem existing, much less a fix.
Left to my own devices, I coded up a pseudo-device driver that takes
care of the chipset issues on my machine that I was most worried about.
While I was hacking on the code, I figured that I would extend the driver
a little to make it handle other chipset workarounds, if possible. As
such, the driver also should be able to replace the BSD/OS provided
saturn(4) chipset driver in functionality. This hasn't been
tested, as of this writing (15-Jan-2002). If someone can test that this
works and report back to me, I'll be happy to update this
movntq) are used to move blocks of memory within the system. I doubt this problem actually occurs on a stock BSD/OS system, as the kernel isn't optimized to use this AMD extension. User programs that use this instruction might cause memory corruption in the system.
GENERICkernel configuration configuration and the
i386/pcidirectory to install the new documentation.
To install this driver, you'll need to do the following. If any of the following steps sound unclear or confusing, you probably will want to find someone a little more experienced to help you out. Or, contact a competent consultant. (Check the link at the top of this file for a least one company that can do this work for you!)
configon your kernel configuration file