MPC563XM Reference Manual, Rev. 1
886
Freescale Semiconductor
Preliminary—Subject to Change Without Notice
23.4.9.1
SPRAM Microoperations
The access to SPRAM is made by providing an address and a register to perform a data transfer, except
semaphore operations, which are also classified in the SPRAM group. Only P and DIOB registers can
exchange data with SPRAM. Microengine always addresses SPRAM in 32-bit boundaries, for 8, 24, or 32
bit wide data.
Direction is determined by the field RW in all addressing modes: RW=0 selects read and RW=1 selects
write.
23.4.9.1.1
SPRAM Addressing Modes
There are 4 addressing modes in eTPU:
•
Absolute
•
Selected Channel Relative
•
Indirect
•
Engine Relative
The addressing modes Absolute and Selected Channel Relative use immediate bits to form the physical
address of SPRAM, which is identified in microinstruction as a field called AID. AID field can be 3-, 7-,
or 8-bit wide depending on the addressing mode.
Absolute Addressing Mode
In Absolute addressing mode, the address range is 256 parameters, addressed by field AID, which in this
mode is 8-bit wide. These parameters are located in SPRAM addresses from 0 to 255.
physical_address = AID[7:0]
Selected Channel Relative Addressing Mode
In Selected Channel Relative addressing mode, only the first 8 (with 3-bit AID) or 128 (with 7-bit AID)
parameters of the selected channel are accessible, depending on the microinstruction format. Physical
address is calculated using the channel parameter base address that is specified in field CPBA of
ETPUCxCR register (see
). AID field is added to channel parameter base address to
compose the physical address. The equation is:
physical_address = selected_channel_parameter_base_a AID[6:0], or
physical_address = selected_channel_parameter_base_a AID[2:0]
Indirect Addressing Mode
In Indirect Addressing mode the physical address is taken from DIOB register. Only DIOB bits 13 to 2 are
relevant. Since the SPRAM word address is shifted two bits up in DIOB, its contents hold the same
parameter address value used by Host. The equation is:
physical_address = DIOB[13:2], or
physical_address = (truncated) DIOB / 4