5 i/o transaction, 6 hash access, 5 i/o transaction 3.11.6 hash access – Intel NETWORK PROCESSOR IXP2800 User Manual

Page 130

Advertising
background image

130

Hardware Reference Manual

Intel

®

IXP2800 Network Processor

Intel XScale

®

Core

3.11.5

I/O Transaction

The Intel XScale

®

core can request an I/O transaction by asserting xsoCBI_IO concurrently with

xsoCBI_Req. The value of xsoCBI_IO is undefined when xsoCBI_Req is not asserted. When the

gasket sees an I/O request with xsoCBI_IO asserted, it will raise xsiCBR_Ack but will not
acknowledge future requests until the IO transaction is complete. The gasket will check if all of the

command FIFOs and write data FIFOs are empty or not. It will also check if the command counters

(SRAM and DRAM) are equal to 0. All of these checks are to guarantee that:

Writes are issued to the target, and targets have pulled the data.

Pending reads have their data all back to the gasket.

When the gasket sees that all of the conditions are satisfied, it will assert xsiCBR_SynchDone to

the Intel XScale

®

core. XsiCBR_SynchDone is one cycle long and does not need to coincide with

xsiCBR_DataValid.

3.11.6

Hash Access

Hash accesses are accomplished by the gasket Local_CSR accesses from the Intel XScale

®

core.

There are two sets of registers in the gasket that are involved in Hash accesses.

Four 32-bit XG_GCSR_Hash[3:0] registers for holding the data to be hashed and index

returned as well.

A XG_GCSR_CTR0(valid) register to hold the status of the Hash Access.

The procedure for the Intel XScale

®

core to setup a Hash access is as follows.

1. The Intel XScale

®

core writes data to XG_GCSR_Hash by Local_CSR access, using address

[X:yy:zz]. X selects Hash register set, yy selects hash_48, hash_64, or hash_128 mode, and zz
selects one of four Hash_Data registers.

2. The data write order is 3-2-1-0 (for hash_128) and 1-0 (for hash_48 or hash_64). When the

data write to Hash_Data[0] is performed, it triggers the Hash request to go out on the CPP bus.
At the same time, XG_GCSR_Hash(valid) is cleared by hardware.

3. The Intel XScale

®

core starts to poll Hash_Result_Valid periodically by Local_CSR read.

4. After a period of time, the Hash_Result is returned to XG_GCSR_Hash, and

XG_GCSR_CTR0(valid) is set to indicate that Hash_Result is ready to be retrieved.

5. The Intel XScale

®

core issues a Local_CSR read to read back the Hash_Result.

Note: Each Hash command requests only one index returned.

The Hash CSR is in the gasket local CSR space. See

Section 3.11.7

.

Advertising