Revision 1.0
Controlling the RDP
101
Examples
The XBUS is a direct memory path between the RSP (and DMEM) and the
RDP. This example uses a portion of DMEM as a circular FIFO to send data
to the RDP.
This example uses an “open” and “close” interface; the “open” reserves
space in the circular buffer, then the data is written, the “close” advances the
RDP command buffer registers.
The first code fragment illustrates the initial conditions for the RDP
command buffer registers.
Figure 4-4
RDP Initialization Using the XBUS
The
OutputOpen
function contains the most complicated part of the
algorithm, handling the “wrapping” condition of the circular FIFO. The
wrapping condition waits for
CMD_CURRENT
to advance before
re-programming new
CMD_START
and
CMD_END
registers.
# XBUS initialization
addi $4, zero, DPC_SET_XBUS_DMEM_DMA
addi outp, zero, 0x1000 # DP init conditions
mtc0 $4, CMD_STATUS
mtc0 outp, CMD_START
mtc0 outp, CMD_END
Summary of Contents for Ultra64
Page 2: ...2 ...
Page 10: ...10 ...
Page 12: ...12 Figure 6 2 buildtask Operation 137 ...
Page 14: ...14 ...
Page 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Page 104: ...104 RSP Coprocessor 0 ...
Page 150: ...150 Advanced Information ...
Page 155: ...Revision 1 0 155 ...
Page 248: ...248 Exceptions None ...
Page 251: ...Revision 1 0 251 Exceptions None ...
Page 254: ...254 Exceptions None ...
Page 257: ...Revision 1 0 257 Exceptions None ...
Page 293: ...Revision 1 0 293 Exceptions None ...
Page 316: ...316 Exceptions None ...