agp(4)
NAME
- agp - generic interface to the Accelerated Graphics Port
- (AGP)
SYNOPSIS
device agp
DESCRIPTION
- The agp driver provides uniform, abstract methods for con
- trolling the
following devices: - ALI: M1541, M1621 and M1671 host to AGP bridges
AMD: 751, 761 and 762 host to AGP bridges
ATI: RS100, RS200, RS250 and RS300 AGP bridges
Intel: i820, i840, i845, i850, and i860 host to AGP bridge
Intel: i810, i810-DC100, i810E, i815, 830M, 845G, 852GM, - 852GME, 855GM,
- 855GME, 865G, 915G and 915GM SVGA controllers
- Intel: 82443BX, 82443GX, 82443LX, 82815, 82820, 82830,
- 82840, 82845,
- 82845G, 82850, 82855, 82855GM, 82860, 82865, 82875P
- and E7205
host to AGP bridges - NVIDIA: nForce and nForce2 AGP controllers
SiS: 530, 540, 550, 620, 630, 645, 645DX, 648, 650, 651, - 655, 661,
- 730, 735, 740, 741, 745, 746, 760 and 5591 host to
- AGP bridges
- VIA: 3296, 82C597, 82C598, 82C691, 82C694X, 82C8363,
- 8235, 8237,
- 8361, 8367, 8371, 8377, 8501, 8601, 862x, 8633,
- 8653, 8703,
8753, 8754, 8763, 8783, KT880, PM800, PM880, PN800, - PN880,
PT880, XM266 and XN266 host to PCI bridges - The most common application of agp is for running X(7) on
- the Intel i81x
controllers.
IOCTLS
- The following ioctl(2) operations can be performed on
- /dev/agpgart, which
are defined in - AGPIOC_INFO
- Returns state of the agp system. The result is a
- pointer to the
following structure: - typedef struct _agp_info {
agp_version version; /* version of thedriver */
u_int32_t bridge_id; /* bridge vendor/device */
u_int32_t agp_mode; /* mode info of bridge*/
off_t aper_base; /* base of aperture*/
size_t aper_size; /* size of aperture*/
size_t pg_total; /* max pages (swap +system) */
size_t pg_system; /* max pages (system)*/
size_t pg_used; /* current pages used*/ - } agp_info;
- AGPIOC_ACQUIRE
- Acquire control of the AGP chipset for use by this
- client.
Returns EBUSY if the AGP chipset is already acquired - by another
client. - AGPIOC_RELEASE
- Release control of the AGP chipset. This does not
- unbind or free
any allocated memory, which is the responsibility of - the client
to handle if necessary. - AGPIOC_SETUP
- Enable the AGP hardware with the relevant mode.
- This ioctl(2)
takes the following structure: - typedef struct _agp_setup {
u_int32_t agp_mode; /* mode info of bridge*/
- } agp_setup;
- The mode bits are defined in
- AGPIOC_ALLOCATE
- Allocate physical memory suitable for mapping into
- the AGP aperture. This ioctl(2) takes the following structure:
- typedef struct _agp_allocate {
int key; /* tag of allocation*/
size_t pg_count; /* number of pages*/
u_int32_t type; /* 0 == normal, otherdevspec */
u_int32_t physical; /* device specific(some devices* need a phys addressof the
* actual page behindthe gatt
* table)*/} agp_allocate;Returns a handle to the allocated memory. - AGPIOC_DEALLOCATE
- Free the previously allocated memory associated with
- the handle
passed. - AGPIOC_BIND
- Bind the allocated memory at given offset with the
- AGP aperture.
Returns EINVAL if the memory is already bound or the - offset is
not at AGP page boundary. This ioctl(2) takes the - following
structure: - typedef struct _agp_bind {
int key; /* tag of allocation*/
off_t pg_start; /* starting page to populate */ - } agp_bind;
- The tag of allocation is the handle returned by AG
- PIOC_ALLOCATE.
- AGPIOC_UNBIND
- Unbind memory from the AGP aperture. Returns EINVAL
- if the memory is not bound. This ioctl(2) takes the following
- structure:
- typedef struct _agp_unbind {
int key; /* tag of allocation*/
u_int32_t priority; /* priority for paging out */ - } agp_unbind;
FILES
/dev/agpgart AGP device node.
SEE ALSO
X(7) (ports/x11/xorg)
HISTORY
- The agp driver first appeared in FreeBSD 4.1.
- BSD December 20, 2005