Serial Peripheral Interface (SPI)
MPC8260 PowerQUICC II Family Reference Manual, Rev. 2
Freescale Semiconductor 38-11
Table38-5. S PI Parameter RAM Memory Map
Offset 1
1From the pointer value programmed in SPI_BASE at IMMR + 0x89FC.
Name Width Description
0x00 RBASE Hword Rx/Tx BD table base address. Indicate where the BD tables begin in the dual-port RAM.
Setting Rx/TxBD[W] in the last BD in each BD table determines how many BDs are
allocated for the Tx and Rx sections of the SPI. Initialize RBASE/TBASE before enabling
the SPI. Furthermore, do not configure BD tables of the SPI to overlap any other active
controller’s parameter RAM.
RBASE and TBASE should be divisible by eight.
0x02 TBASE Hword
0x04 RFCR Byte Rx/Tx function code registers. The function code registers contain the transaction
specification associated with SDMA channel accesses to external memory. See
Section38.5.1, “Receive/Transmit Function Code Registers (RFCR/TFCR).”
0x05 TFCR Byte
0x06 MRBLR Hword Maximum receive buffer length. The SPI has one MRBLR entry to define the maximum
number of bytes the PowerQUICCII writes to a Rx buffer before moving to the next buffer.
The PowerQUICCII can write fewer bytes than MRBLR if an error or end-of-frame
occurs, but never exceeds the MRBLR value. User-supplied buffers should be no smaller
than MRBLR.
Tx buffers are unaffected by MRBLR and can have varying lengths; the number of bytes
to be sent is programmed in TxBD[Data Length].
MRBLR is not intended to be changed while the SPI is operating. However it can be
changed in a single bus cycle with one 16-bit move (not two 8-bit bus cycles
back-to-back). The change takes effect when the CP moves control to the next RxBD.
To guarantee the exact RxBD on which the change occurs, change MRBLR only while
the SPI receiver is disabled. MRBLR should be greater than zero; it should be an even
number if the character length of the data exceeds 8 bits.
0x08 RSTATE Word Rx internal state.2 Reserved for CP use.
0x0C Word The Rx internal data pointer 2 is updated by the SDMA channels to show the next
address in the buffer to be accessed.
0x10 RBPTR Hword RxBD pointer. Points to the current Rx BD being processed or to the next BD to be
serviced when idle. After a reset or when the end of the BD table is reached, the CP
initializes RBPTR to the RBASE value. Most applications should not modify RBPTR, but
it can be updated when the receiver is disabled or when no Rx buffer is in use.
0x12 Hword The Rx internal byte count 2 is a down-count value that is initialized with the MRBLR
value and decremented with every byte the SDMA channels write.
0x14 Word Rx temp.2 Reserved for CP use.
0x18 TSTATE Word Tx internal state.2 Reserved for CP use.
0x1C Word The Tx internal data pointer2 is updated by the SDMA channels to show the next address
in the buffer to be accessed.
0x20 TBPTR Hword TxBD pointer. Points to the current Tx BD during frame transmission or the next BD to be
processed when idle. After reset or when the end of the Tx BD table is reached, the CP
initializes TBPTR to the TBASE value. Most applications do not need to modify TBPTR,
but it can be updated when the transmitter is disabled or when no Tx buffer is in use.
0x22 Hword The Tx internal byte count2 is a down-count value initialized with TxBD[Data Length] and
decremented with every byte read by the SDMA channels.
0x24 Word Tx temp.2 Reserved for CP use.
0x34 Word SDMA temp.