altera_avgen
—
driver for generic Altera Avalon-bus-attached,
memory-mapped devices
device altera_avgen
In /boot/device.hints:
hint.altera_avgen.0.at="nexus0"
hint.altera_avgen.0.maddr=0x7f00a000
hint.altera_avgen.0.msize=20
hint.altera_avgen.0.width=4
hint.altera_avgen.0.fileio="rw"
hint.altera_avgen.0.devname="berirom"
The altera_avgen
device driver provides
generic support for memory-mapped devices on the Altera Avalon bus.
device.hints entries configure the address, size,
I/O disposition, and /dev device node name that will
be used. The
open(2),
read(2),
write(2),
and
mmap(2)
system calls (and variations) may be used on
altera_avgen
device nodes, subject to constraints
imposed using device.hints entries. Although reading
and writing mapped memory is supported, altera_avgen
does not currently support directing device interrupts to userspace.
A number of device.hints sub-fields are
available to configure altera_avgen
device
instances:
- maddr
- base physical address of the memory region to export; must be aligned to
width
- msize
- length of the memory region export; must be aligned to
width
- width
- Granularity at which
read(2)
and
write(2)
operations will be performed. Larger requests will be broken down into
width -sized
operations; smaller requests will be
rejected. I/O operations must be aligned to
width
.
- fileio
- allowed file descriptor operations;
r
authorizes
read(2);
w
authorizes
write(2).
- mmapio
- allowed
mmap(2)
permissions;
w
authorizes
PROT_WRITE
; r
authorizes
PROT_READ
; x
authorizes
PROT_EXEC
.
- devname
- specifies a device name relative to /dev.
- devunit
- specifies a device unit number; no unit number is used if this is
unspecified.
The altera_avgen
device driver first
appeared in FreeBSD 10.0.
The altera_avgen
device driver and this
manual page were developed by SRI International and the University of
Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
(“CTSRD”), as part of the DARPA CRASH research programme. This
device driver was written by Robert N. M.
Watson.
altera_avgen
is intended to support the
writing of userspace device drivers; however, it does not permit directing
interrupts to userspace, only memory-mapped I/O.
altera_avgen
supports only a
nexus
bus attachment, which is appropriate for
system-on-chip busses such as Altera's Avalon bus. If the target device is
off of another bus type, then additional bus attachments will be
required.