
2.7 Architecture and Operation
2.7.1 Using the Address Registers
2.7.1.1 Single-HPIA Mode
2.7.1.2 Dual-HPIA Mode
Peripheral Architecture
www.ti.com
The HPI contains two 32-bit address registers: one for read operations (HPIAR) and one for writeoperations (HPIAW). These roles are unchanging from the viewpoint of the HPI logic. The HPI DMA logicgets the address from HPIAR when reading from processor resources (see Section 2.2 ) and gets theaddress from HPIAW when writing to processor resources (see Section 2.2 ).
However, unlike the HPI logic, the host can choose how to interact with the two HPI address registers.Using the DUALHPIA bit in the HPI control register (HPIC), the host determines whether HPIAR andHPIAW act as a single 32-bit register (single-HPIA mode) or as two independent 32-bit registers(dual-HPIA mode).
Note: The addresses loaded into the HPI address registers must be word addresses, and must be32-bit word aligned (with the least-significant two bits equal to zero), for use in addressingmemory space within the C6452. For example, to access L2 SRAM at 0x00A0_0000, HPIAshould be loaded with 0x0028_0000 (0x00A0_0000 divided by 4).
When DUALHPIA = 0 in HPIC, HPIAR and HPIAW become a single HPI address register (HPIA) from theperspective of the host. In this mode:•A host HPIA write cycle (HCNTL[1:0] = 10b, HR/ W = 0) updates HPIAR and HPIAW with the samevalue.
•Both HPI address registers are incremented during auto-increment read/write cycles(HCNTL[1:0] = 01b).•An HPIA read cycle (HCNTL[1:0] = 10b, HR/ W = 1) returns the content of HPIAR, which should beidentical to the content of HPIAW.
To maintain consistency between the contents of HPIAR and HPIAW, the host should always reinitializethe HPI address registers after changing the state of the DUALHPIA bit. In addition, when DUALHPIA = 0,the host must always reinitialize the HPI address registers when it changes the data direction (from anHPID read cycle to an HPID write cycle, or conversely). Otherwise, the memory location accessed by theHPI DMA logic might not be the location intended by the host.
When DUALHPIA = 1 in HPIC, HPIAR and HPIAW are two independent HPI address registers from theperspective of the host. In this mode:•A host HPIA access (HCNTL[1:0] = 10b) reads/updates either HPIAR or HPIAW, depending on thevalue of the HPIA read/write select (HPIASEL) bit in HPIC. This bit is programmed by the host. WhileHPIASEL = 1, only HPIAR is read or updated by the host. While HPIASEL = 0, only HPIAW is read orupdated by the host. The HPIASEL bit is only meaningful in the dual-HPIA mode.
Note: The HPIASEL bit does not affect the HPI DMA logic. Regardless of the value of HPIASEL,the HPI DMA logic uses HPIAR when reading from memory and HPIAW when writing tomemory.
•A host HPID access with auto-incrementing (HCNTL[1:0] = 01b) causes only the relevant HPIA valueto be incremented to the next consecutive memory address. In an auto-increment read cycle, HPIAR isincremented after it has been used to perform the current read from memory. In an auto-incrementwrite cycle, HPIAW is incremented after it has been used for the write operation.
Host Port Interface (HPI)14 SPRUF87A – October 2007 – Revised May 2008Submit Documentation Feedback