sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
dma_registers.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# (c) 2005 Naomi Peori <naomi@peori.ca>
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16
17#ifndef __DMA_REGISTERS_H__
18#define __DMA_REGISTERS_H__
19
20#include <tamtypes.h>
21
23#define DMA_REG_CTRL (volatile u32 *)0x1000E000
25#define DMA_REG_STAT (volatile u32 *)0x1000E010
27#define DMA_REG_PCR (volatile u32 *)0x1000E020
29#define DMA_REG_SQWC (volatile u32 *)0x1000E030
31#define DMA_REG_RBSR (volatile u32 *)0x1000E040
33#define DMA_REG_RBOR (volatile u32 *)0x1000E050
35#define DMA_REG_STADR (volatile u32 *)0x1000E060
37#define DMA_REG_ENABLER (volatile u32 *)0x1000F520
39#define DMA_REG_ENABLEW (volatile u32 *)0x1000F590
40
42#define DMAE_DISABLE 0
43#define DMAE_ENABLE 1
44
46#define RELE_OFF 0
47#define RELE_ON 1
48
50#define MFD_OFF 0
51#define MFD_RES 1
52#define MFD_VIF 2
53#define MFD_GIF 3
54
56#define STS_UNSPEC 0
57#define STS_SIF 1
58#define STS_SPR 2
59#define STS_IPU 3
60
62#define STD_OFF 0
63#define STD_VIF 1
64#define STD_GIF 2
65#define STD_SIF 3
66
68#define RCYC_8 0
69#define RCYC_16 1
70#define RCYC_32 2
71#define RCYC_64 3
72#define RCYC_128 4
73#define RCYC_256 5
74
75#define DMA_SET_CTRL(DMAE,RELE,MFD,STS,STD,RCYC) \
76 (u32)(A & 0x00000001) << 0 | (u32)(RELE & 0x00000001) << 1 | \
77 (u32)(MFD & 0x00000003) << 2 | (u32)(STS & 0x00000003) << 4 | \
78 (u32)(STD & 0x00000003) << 6 | (u32)(RCYC & 0x00000007) << 8
79
80#define DMA_SET_STAT(CIS,SIS,MEIS,BEIS,CIM,SIM,MEIM) \
81 (u32)((CIS) & 0x000003FF) << 0 | (u32)((SIS) & 0x00000001) << 13 | \
82 (u32)((MEIS) & 0x00000001) << 14 | (u32)((BEIS) & 0x00000001) << 15 | \
83 (u32)((CIM) & 0x000003FF) << 16 | (u32)((SIM) & 0x00000001) << 29 | \
84 (u32)((MEIM) & 0x00000001) << 30
85
86#define DMA_SET_PCR(CPCOND,CDE,PCE) \
87 (u32)((CPCOND) & 0x000003FF) << 0 | (u32)((CDE) & 0x000003FF) << 16 | \
88 (u32)((PCE) & 0x00000001) << 31
89
90#define DMA_SET_SQWC(SQWC,TQWC) \
91 (u32)((SQWC) & 0x000000FF) << 0 | (u32)((TQWC) & 0x000000FF) << 16
92
93#define DMA_SET_RBOR(ADDR) (u32)((ADDR) & 0x00007FFF)
94
95#define DMA_SET_RBSR(RMSK) (u32)((RMSK) & 0x00007FFF)
96
97#define DMA_SET_STADR(ADDR) (u32)((ADDR) & 0x00007FFF)
98
99#define DMA_SET_ENABLEW(A) (u32)((A) & 0x00000001) << 16
100
101#define DMA_SET_ENABLER(A) (u32)((A) & 0x00000001) << 16
102
104#define DMA_SET_CHCR(DIR,MODE,ASP,TTE,TIE,STR,TAG) \
105 (u32)((DIR) & 0x00000001) << 0 | (u32)((MODE) & 0x00000003) << 2 | \
106 (u32)((ASP) & 0x00000003) << 4 | (u32)((TTE ) & 0x00000001) << 6 | \
107 (u32)((TIE) & 0x00000001) << 7 | (u32)((STR ) & 0x00000001) << 8 | \
108 (u32)((TAG) & 0x0000FFFF) << 16
109
110#define DMA_SET_MADR(ADDR,SPR) \
111 (u32)((ADDR) & 0x7FFFFFFF) << 0 | (u32)((SPR) & 0x00000001) << 31
112
113#define DMA_SET_TADR(ADDR,SPR) \
114 (u32)((ADDR) & 0x7FFFFFFF) << 0 | (u32)((SPR) & 0x00000001) << 31
115
116#define DMA_SET_ASR0(ADDR,SPR) \
117 (u32)((ADDR) & 0x7FFFFFFF) << 0 | (u32)((SPR) & 0x00000001) << 31
118
119#define DMA_SET_ASR1(ADDR,SPR) \
120 (u32)((ADDR) & 0x7FFFFFFF) << 0 | (u32)((SPR) & 0x00000001) << 31
121
122#define DMA_SET_SADR(ADDR) (u32)((ADDR) & 0x00003FFF)
123
124#define DMA_SET_QWC(QWC) (u32)((QWC) & 0x0000FFFF)
125
126#endif /* __DMA_REGISTERS_H__ */