Software programming model, Hal system library support, Software programming model -5 – Altera Embedded Peripherals IP User Manual
Page 236: Hal system library support -5

Software Programming Model
This section describes the programming model for the DMA controller, including the register map and
software declarations to access the hardware. For Nios II processor users, Altera provides HAL system
library drivers that enable you to access the DMA controller core using the HAL API for DMA devices.
HAL System Library Support
The Altera-provided driver implements a HAL DMA device driver that integrates into the HAL system
library for Nios II systems. HAL users should access the DMA controller via the familiar HAL API, rather
than accessing the registers directly.
If your program uses the HAL device driver to access the DMA controller, accessing the device registers
directly interferes with the correct behavior of the driver.
The HAL DMA driver provides both ends of the DMA process; the driver registers itself as both a receive
channel (
alt_dma_rxchan
) and a transmit channel (
alt_dma_txchan
). The Nios II Software Develope’s
Handbook provides complete details of the HAL system library and the usage of DMA devices.
ioctl() Operations
ioctl()
operation requests are defined for both the receive and transmit channels, which allows you to
control the hardware-dependent aspects of the DMA controller. Two
ioctl()
functions are defined for
the receiver driver and the transmitter driver:
alt_dma_rxchan_ioctl()
and
alt_dma_txchan_ioctl()
.
The table below lists the available operations. These are valid for both the transmit and receive channels.
Table 23-2: Operations for alt_dma_rxchan_ioctl() and alt_dma_txchan_ioctl()
Request
Meaning
ALT_DMA_SET_MODE_8
Transfers data in units of 8 bits. The parameter
arg
is ignored.
ALT_DMA_SET_MODE_16
Transfers data in units of 16 bits. The parameter
arg
is ignored.
ALT_DMA_SET_MODE_32
Transfers data in units of 32 bits. The parameter
arg
is ignored.
ALT_DMA_SET_MODE_64
Transfers data in units of 64 bits. The parameter
arg
is ignored.
ALT_DMA_SET_MODE_128
Transfers data in units of 128 bits. The parameter
arg
is ignored.
ALT_DMA_RX_ONLY_ON
Sets a DMA receiver into streaming mode. In this case, data is read
continuously from a single location. The parameter
arg
specifies the
address to read from.
ALT_DMA_RX_ONLY_OFF
Turns off streaming mode for a receive channel. The parameter
arg
is
ignored.
ALT_DMA_TX_ONLY_ON
Sets a DMA transmitter into streaming mode. In this case, data is
written continuously to a single location. The parameter
arg
specifies
the address to write to.
ALT_DMA_TX_ONLY_OFF
Turns off streaming mode for a transmit channel. The parameter
arg
is
ignored.
UG-01085
2014.24.07
Software Programming Model
23-5
DMA Controller Core
Altera Corporation