Architecture
972
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Host Port Interface (HPI)
21.2.6.10.1 Read Bursting
When the host writes to the read address register (HPIAR), the read FIFO is flushed. Any host read data
that was in the read FIFO is discarded (the read FIFO pointers are reset). If an HPI DMA write to the read
FIFO is in progress at the time of a flush request, the HPI allows this write to complete and then performs
the flush.
Read bursting can begin in one of two ways: the host initiates an HPID read cycle with autoincrementing,
or the host initiates issues a FETCH command (writes 1 to the FETCH bit in HPIC).
If the host initiates an HPID read cycle with autoincrementing, the HPI DMA logic performs two 4-word
burst operations to fill the read FIFO. The host is initially held off by the deassertion of the UHPI_HRDY
signal until data is available to be read from the read FIFO. Once data is available in the read FIFO, the
host can read data from the read FIFO by performing subsequent reads of HPID with autoincrementing.
Once the initial read has been performed, the HPI DMA logic continues to perform 4-word burst operations
to consecutive memory addresses every time there are four empty word locations in the read FIFO. The
HPI DMA logic continues to prefetch data to keep the read FIFO full, until the occurrence of an event that
causes a read FIFO flush (see
).
As mentioned, the second way that read bursting may begin is with a FETCH command. The host should
always precede the FETCH command with the initialization of the HPIAR register or a nonautoincrement
access, so that the read FIFO is flushed beforehand. When the host initiates a FETCH command, the HPI
DMA logic begins to prefetch data to keep the read FIFO full, as described in the previous paragraph. The
FETCH bit in HPIC does not actually store the value that is written to it; rather, the decoding of a host
write of 1 to this bit is considered a FETCH command.
The FETCH command can be helpful if the host wants to minimize a stall condition on the interface. The
host can initiate prefetching by writing 1 to the FETCH bit and later perform a read. The host can make
use of the time it takes to load the read FIFO with read data, during which the HPI was not ready, by using
the CPU to service other tasks.
Both types of continuous or burst reads described in the previous paragraphs begin with a write to the HPI
address register, which causes a read FIFO flush. This is the typical way of initiating read cycles, because
the initial read address needs to be specified.
NOTE:
An HPID read cycle without autoincrementing does not initiate any prefetching activity.
Instead, it causes the read FIFO to be flushed and causes the HPI DMA logic to perform a
single-word read from the processor memory. As soon as the host activates a read cycle
without autoincrementing, prefetching activity ceases until the occurrence of a FETCH
command or an autoincrement read cycle.