ALTERA_AVGEN(4)

NAME
altera_avgen - driver for generic Altera Avalon-bus-attached, memory-mapped devices

SYNOPSIS
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.geomio="rw"
hint.altera_avgen.0.mmapio="rwx"
hint.altera_avgen.0.devname="berirom"
hint.altera_avgen.0.devunit="0"

In DTS file:
avgen@0x7f00a000 {
    compatible="sri-cambridge,avgen";
    reg=<0x7f00a000 0x14>;
    sri-cambridge,width=<4>;
    sri-cambridge,fileio="rw";
    sri-cambridge,geomio="rw";
    sri-cambridge,mmapio="rwx";
    sri-cambridge,devname="berirom";
    sri-cambridge,devunit="0";
};

DESCRIPTION
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 mount(2), 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 or FDT 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 or FDT configuration entries 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).

geomio
    configures the special device to be exposed using the disk(9) interface, permitting filesystem mounting using mount(2). w authorizes block write, and r authorizes block read.

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.

altera_avgen devices may be exposed via only one of file/memory-mapped I/O or geom I/O.

SEE ALSO
mmap(2), mount(2), open(2), read(2), unmount(2), write(2), geom(4)

HISTORY
The altera_avgen device driver first appeared in FreeBSD 10.0.

AUTHORS
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.

BUGS
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.