Chapter 11. Configuring AGP

There are several choices for configuring the NVIDIA kernel module's use of AGP: you can choose to either use the NVIDIA AGP module (NVAGP), or the AGP module that comes with the FreeBSD kernel (AGPGART). This is controlled through the "NvAGP" option in your X config file:

    Option "NvAgp" "0"  ... disables AGP support
    Option "NvAgp" "1"  ... use NVAGP, if possible
    Option "NvAgp" "2"  ... use AGPGART, if possible
    Option "NvAGP" "3"  ... try AGPGART; if that fails, try NVAGP

Unlike other operating systems such as Linux, this option is not the only controlling factor at this point; because of known problems, nvidia.ko is built without support for FreeBSD's AGP driver by default. This behavior can be changed, see nv-freebsd.h for details.

Note that if you built nvidia.ko with support for the FreeBSD driver it will not load unless agp.ko is loaded. agp.ko is special in that you can not load it after the system boot is complete, you need to append the following line to /boot/loader.conf to make sure it is pre-loaded:

    # -- load FreeBSD AGP GART driver -- #
    agp_load="YES"

Also note that if agp.ko is loaded, it could conflict with the NVIDIA AGP GART driver (NvAGP), resulting in stability problems; for this reason, the NVIDIA driver will abort NvAGP initialization when it detects agp.ko.

Current FreeBSD releases are shipped with agp.ko built into the kernel; in order to allow NvAGP to work, the kernel can be rebuilt without 'device agp' or the following entry added to /boot/device.hints:

    hint.agp.0.disabled="1"

When built with support for the FreeBSD AGP driver, nvidia.ko will fall back to using NvAGP when it doesn't detect agp.ko (this will be the case when agp.ko does not support your AGP chipset or was explicitly disabled with device hints).

It is highly recommended that you use the NVIDIA AGP driver.

The following AGP chipsets are supported by the NVIDIA AGP driver; for all other chipsets it is recommended that you use the AGPGART module.

Supported AGP Chipsets
Intel 440LX
Intel 440BX
Intel 440GX
Intel 815 ("Solano")
Intel 820 ("Camino")
Intel 830M
Intel 840 ("Carmel")
Intel 845 ("Brookdale")
Intel 845G
Intel 850 ("Tehama")
Intel 855 ("Odem")
Intel 860 ("Colusa")
Intel 865G ("Springdale")
Intel 875P ("Canterwood")
Intel E7205 ("Granite Bay")
Intel E7505 ("Placer")
AMD 751 ("Irongate")
AMD 761 ("IGD4")
AMD 762 ("IGD4 MP")
AMD 8151 ("Lokar")
VIA 8371
VIA 82C694X
VIA KT133
VIA KT266
VIA KT400
VIA P4M266
VIA P4M266A
VIA P4X400
VIA K8T800
VIA K8N800
VIA PT880
VIA KT880
RCC CNB20LE
RCC 6585HE
Micron SAMDDR ("Samurai")
Micron SCIDDR ("Scimitar")
NVIDIA nForce
NVIDIA nForce2
NVIDIA nForce3
ALi 1621
ALi 1631
ALi 1647
ALi 1651
ALi 1671
SiS 630
SiS 633
SiS 635
SiS 645
SiS 646
SiS 648
SiS 648FX
SiS 650
SiS 651
SiS 655
SiS 655FX
SiS 661
SiS 730
SiS 733
SiS 735
SiS 745
SiS 755
ATI RS200M

If you are experiencing AGP stability problems, you should be aware of the following:

Additional AGP Information

AGP drive strength BIOS setting (Via-based motherboards)

Many Via-based motherboards allow adjusting the AGP drive strength in the system BIOS. The setting of this option largely affects system stability, the range between 0xEA and 0xEE seems to work best for NVIDIA hardware. Setting either nibble to 0xF generally results in severe stability problems.

If you decide to experiment with this, you need to be aware of the fact that you are doing so at your own risk and that you may render your system unbootable with improper settings until you reset the setting to a working value (w/ a PCI graphics card or by resetting the BIOS to its default values).

System BIOS version

Make sure you have the latest system BIOS provided by the motherboard manufacturer.

On ALi1541 and ALi1647 chipsets, NVIDIA drivers disable AGP to work around timing and signal integrity problems. You can force AGP to be enabled on these chipsets by setting NVreg_EnableALiAGP to 1. Note that this may cause the system to become unstable.

Early system BIOS revisions for the ASUS A7V8X-X KT400 motherboard misconfigure the chipset when an AGP 2.x graphics card is installed; if X hangs on your ASUS KT400 system with NvAGP enabled and the installed graphics card is not an AGP 8x device, make sure that you have the latest system BIOS installed.