Controlling The Rsp From The Cpu; Starting Rsp Tasks; Rsp Boot Microcode - Nintendo Ultra64 Programmer's Manual

Rsp
Table of Contents

Advertisement

Advanced Information

Controlling the RSP from the CPU

142
The operating system running on the CPU includes facilities to control the
RSP. The major function calls and some RSP details are explained in this
section.

Starting RSP Tasks

The man page for osSpTaskStart() explains the CPU-side details of
managing the RSP. The include file sptask.h contains additional
information in the comments.
The algorithm to start a task is as follows:
Halt the RSP (if it is not halted already).
DMA the OSTask structure into the low part of DMEM
(0x1000 - sizeof(OSTask)).
DMA the RSP boot microcode into IMEM at 0x0.
Set the RSP PC to 0x0.
Clear the HALT bit of the RSP status register.
Once the HALT bit is cleared, the RSP begins execution using the current PC
and contents of IMEM.

RSP Boot Microcode

The boot microcode copies the task microcode into IMEM (at 0x80) and the
task data into DMEM (at 0x0). Since the task data might overwrite the
OSTask structure, it is the task's responsibility to either not need the
OSTask or guarantee that it is not overwritten (by initializing less than 4K
bytes of DMEM).
Each microcode task typically has "initialization" work of its own; usually
this is performed immediately, possibly loading in additional microcode.

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents