summaryrefslogtreecommitdiff
path: root/src/boot/O2/rcp_utils.c
blob: f587fad21e520a7040d5f2038c99c60a1492a603 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "ultra64.h"

void RcpUtils_PrintRegisterStatus(void) {
    u32 spStatus = __osSpGetStatus();
    u32 dpStatus = osDpGetStatus();

    if (spStatus) {
        // stubbed debug prints
    }

    if (dpStatus) {
        // stubbed debug prints
    }
}

void RcpUtils_Reset(void) {
    RcpUtils_PrintRegisterStatus();
    // Flush the RDP pipeline and freeze clock counter
    osDpSetStatus(DPC_SET_FREEZE | DPC_SET_FLUSH);
    // Halt the RSP, disable interrupt on break and set "task done" signal
    __osSpSetStatus(SP_SET_HALT | SP_SET_TASKDONE | SP_CLR_INTR_BREAK);
    RcpUtils_PrintRegisterStatus();
}