3 Data Structures
This section describes the 820x data structures for the command pointer ring, result ring,
free pool ring, and the command structure format.
3.1 Command Pointer Ring
The command pointer ring is a linear array of command pointers which point to the actual
commands. The 820x uses indirect command addressing to execute commands. By using
indirect command addressing, the commands themselves may be located anywhere in host
memory.
The host software must maintain the command pointer ring and ensure that the command
pointer ring base address is 8-byte aligned.
In 32-bit addressing mode, every command pointer is 4 bytes; in 64-bit addressing mode,
every command pointer is 8 bytes.
Figure 3-1. Command Pointer Ring Format
The maximum number of command pointers in the command pointer ring is configurable by
the host using the DMA control registers, specifically the DMA Configuration Register (see
Section 6.2.14, “DMA Configuration Register"). After the host software determines the
memory location of the command pointer ring and command structure, it should update the
820x related DMA control registers. The 820x will fetch the command pointer, and then
fetch the command structure. The detailed command execution flow is described in
Section 3.3, “Command Operation Sequence".
820x – Data Sheet, DS-0157-D
Page37
Hifn Confidential