Re: FreeBSD-amd64 driver ?
The fundamental problem is that the FreeBSD kernel does not give drivers full control over how memory is mapped. On FreeBSD i386, this can be worked around to a certain degree, and the NVIDIA graphics driver for this platform does so as best it can*; even so, it can not currently provide the same feature set as the Linux/Solaris graphics drivers do, nor can they be expected to work reliably on the same set of configurations. On FreeBSD amd64, some of the workarounds are not feasible. Due to this and because common x86-64 hardware is most susceptible to the kinds of problems to be expected, even rudimentary graphics driver support would be inherently unreliable.
Although Linux/x86-64 has presented its own share of technical problems over time, the NVIDIA Linux graphics driver has generally had enough flexibility to work around these problems. Please note that some of the workarounds possible during the early days of Linux/x86-64 support no longer work: for example, kernels that do not provide the change_page_attr() kernel interface shipped at a time when the advanced speculative caching logic in AMD processors could be disabled. Restrictions apply when using such kernels today.
*as of FreeBSD 7.0-RELEASE, some of the workarounds have been replaced with calls to new kernel interfaces.