mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 17:54:15 +00:00
7334ffa373
* Format all handwritten asm and document some * Use c preprocessor for constants * Fix * Fix PI_STATUS_ERROR, some label improvements * Avoid hi/lo for constants * Some more comments * Properly mark functions as functions and their sizes * Fix merge * Improvements * Review suggestions, rework procedure start/end macros to be more like libreultra * Move IPL3 symbol definitions into ipl3.s * Fix undefined_syms, add include and language guards to asm.h and fix the comment in gbi.h * Consistent hex capitalization, add some MIPS builtin defines to CC_CHECK to behave properly * Add -no-pad-sections assembler option and clean up alignment in gu files and bzero * Further suggestions and improvements * Matrix conversion function clarifications * Fix passing AVOID_UB to gcc * Suggestions * Suggestions, global interrupt mask improvements * Further suggestions, interrupt mask comments * Comments fixes, rdb.h * Switch from # comments to // comments, remove unnecesary .set gp=64 directives * Further review suggestions * Missed one
82 lines
2.4 KiB
C
82 lines
2.4 KiB
C
#ifndef ULTRA64_RDB_H
|
|
#define ULTRA64_RDB_H
|
|
|
|
/* U64 side address */
|
|
#define RDB_BASE_REG 0xC0000000
|
|
#define RDB_WRITE_INTR_REG (RDB_BASE_REG + 0x8)
|
|
#define RDB_READ_INTR_REG (RDB_BASE_REG + 0xC)
|
|
#define RDB_BASE_VIRTUAL_ADDR 0x80000000
|
|
|
|
/* packet type Have six bits, so can have up to 63 types */
|
|
#define RDB_TYPE_INVALID 0
|
|
#define RDB_TYPE_GtoH_PRINT 1
|
|
#define RDB_TYPE_GtoH_FAULT 2
|
|
#define RDB_TYPE_GtoH_LOG_CT 3
|
|
#define RDB_TYPE_GtoH_LOG 4
|
|
#define RDB_TYPE_GtoH_READY_FOR_DATA 5
|
|
#define RDB_TYPE_GtoH_DATA_CT 6
|
|
#define RDB_TYPE_GtoH_DATA 7
|
|
#define RDB_TYPE_GtoH_DEBUG 8
|
|
#define RDB_TYPE_GtoH_RAMROM 9
|
|
#define RDB_TYPE_GtoH_DEBUG_DONE 10
|
|
#define RDB_TYPE_GtoH_DEBUG_READY 11
|
|
#define RDB_TYPE_GtoH_KDEBUG 12
|
|
#define RDB_TYPE_GtoH_PROF_DATA 22
|
|
|
|
|
|
#define RDB_TYPE_HtoG_LOG_DONE 13
|
|
#define RDB_TYPE_HtoG_DEBUG 14
|
|
#define RDB_TYPE_HtoG_DEBUG_CT 15
|
|
#define RDB_TYPE_HtoG_DATA 16
|
|
#define RDB_TYPE_HtoG_DATA_DONE 17
|
|
#define RDB_TYPE_HtoG_REQ_RAMROM 18
|
|
#define RDB_TYPE_HtoG_FREE_RAMROM 19
|
|
#define RDB_TYPE_HtoG_KDEBUG 20
|
|
#define RDB_TYPE_HtoG_PROF_SIGNAL 21
|
|
|
|
|
|
#define RDB_PROF_ACK_SIG 1
|
|
#define RDB_PROF_FLUSH_SIG 2
|
|
#define PROF_BLOCK_SIZE 2048
|
|
|
|
#define RDB_LOG_MAX_BLOCK_SIZE 0x8000
|
|
#define RDB_DATA_MAX_BLOCK_SIZE 0x8000
|
|
|
|
/* GIO side address */
|
|
#define GIO_RDB_BASE_REG 0xBF480000
|
|
#define GIO_RDB_WRITE_INTR_REG (GIO_RDB_BASE_REG + 0x8)
|
|
#define GIO_RDB_READ_INTR_REG (GIO_RDB_BASE_REG + 0xC)
|
|
|
|
/* minor device number */
|
|
#define GIO_RDB_PRINT_MINOR 1
|
|
#define GIO_RDB_DEBUG_MINOR 2
|
|
|
|
/* interrupt bit */
|
|
#define GIO_RDB_WRITE_INTR_BIT 0x80000000
|
|
#define GIO_RDB_READ_INTR_BIT 0x40000000
|
|
|
|
/* debug command */
|
|
#define DEBUG_COMMAND_NULL 0
|
|
#define DEBUG_COMMAND_MEMORY 1
|
|
#define DEBUG_COMMAND_REGISTER 2
|
|
#define DEBUG_COMMAND_INVALID 255
|
|
|
|
/* debug state */
|
|
#define DEBUG_STATE_NULL 0
|
|
#define DEBUG_STATE_RECEIVE 1
|
|
#define DEBUG_STATE_INVALID 255
|
|
|
|
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
|
|
|
#include "types.h"
|
|
|
|
/* Structure for debug port */
|
|
typedef struct {
|
|
u32 type : 6; /* 0: invalid, 1: print, 2: debug */
|
|
u32 length : 2; /* 1, 2, or 3 */
|
|
char buf[3]; /* character buffer */
|
|
} rdbPacket;
|
|
|
|
#endif
|
|
|
|
#endif
|