diff --git a/build/buildsetup/ioreg/header_generator_ioreg.pl b/build/buildsetup/ioreg/header_generator_ioreg.pl index bf3c76e..2945312 100644 --- a/build/buildsetup/ioreg/header_generator_ioreg.pl +++ b/build/buildsetup/ioreg/header_generator_ioreg.pl @@ -381,7 +381,7 @@ sub output { #define $include_guard #ifndef SDK_ASM -#include +#include #include #endif diff --git a/build/buildsetup/ioreg/io_register_list.csv b/build/buildsetup/ioreg/io_register_list.csv index b86b8d9..1c9f12c 100644 --- a/build/buildsetup/ioreg/io_register_list.csv +++ b/build/buildsetup/ioreg/io_register_list.csv @@ -3,37 +3,38 @@ 0x4000,,A9ROM,8,rw,CFG,volatile,NTR,1,1,SEC,0,1,,,,,,,,,,,, 0x4004,,CLK,16,rw,CFG,volatile,CAM_CKI,8,1,WRAM,7,1,CAM,2,1,DSP,1,0,ARM2X,0,1,,, 0x4006,,DSP_RST,8,rw,CFG,volatile,OFF,0,1,,,,,,,,,,,,,,, -0x4008,,DS_MDY,8,rw,CFG,volatile,MC,7,1,DIV,4,1,G2,3,1,REN,2,1,GEO,1,1,DMA,0,1 +0x4008,,DS_MDFY,8,rw,CFG,volatile,MC,7,1,DIV,4,1,G2,3,1,REN,2,1,GEO,1,1,DMA,0,1 0x4009,,DS_EX,8,rw,CFG,volatile,MAIM_MEM,6,2,VRAM,5,1,LCDC,4,1,INTC,0,1,,,,,, 0x400a,,TWL_EX,16,rw,CFG,volatile,CFG_E,15,1,WRAM,9,0,MC_B,8,1,DSP,2,1,CAM,1,1,DMA4,0,1 -0x4010,,MC_DET,8,rw,CFG,volatile,MODE2,6,2,DET2,4,1,MODE1,2,2,DET1,0,1,,,,,, -0x4011,,MC_SWP,8,rw,CFG,volatile,SWP,7,1,,,,,,,,,,,,,,, -0x4040,,WRAM_A0,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, -0x4041,,WRAM_A1,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, -0x4042,,WRAM_A2,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, -0x4043,,WRAM_A3,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, -0x4044,,WRAM_B0,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,, -0x4045,,WRAM_B1,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,, -0x4046,,WRAM_B2,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4047,,WRAM_B3,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4048,,WRAM_B4,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4049,,WRAM_B5,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404a,,WRAM_B6,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404b,,WRAM_B7,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404c,,WRAM_C0,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404d,,WRAM_C1,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404e,,WRAM_C2,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404f,,WRAM_C3,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4050,,WRAM_C4,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4051,,WRAM_C5,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4052,,WRAM_C6,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4053,,WRAM_C7,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4054,,WRAM_A_MAP,32,rw,CFG,volatile,END,20,9,IMG,12,2,START,4,8 -0x4058,,WRAM_B_MAP,32,rw,CFG,volatile,END,19,10,IMG,12,2,START,3,9 -0x405c,,WRAM_C_MAP,32,rw,CFG,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4060,,WRAM_A_LOCK,8,rw,CFG,volatile,A3,3,1,A2,2,1,A1,1,1,A0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4061,,WRAM_B_LOCK,8,rw,CFG,volatile,B7,7,1,B6,6,1,B5,5,1,B4,4,1,B3,3,1,B2,2,1,B1,1,1,B0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4062,,WRAM_C_LOCK,8,rw,CFG,volatile,C7,7,1,C6,6,1,C5,5,1,C4,4,1,C3,3,1,C2,2,1,C1,1,1,C0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#twl p39,,,,,,,,,,,,,,,,,,,,,,,, +0x4010,,MC_DET,8,rw,MI,volatile,MODE2,6,2,DET2,4,1,MODE1,2,2,DET1,0,1,,,,,, +0x4011,,MC_SWP,8,rw,MI,volatile,SWP,7,1,,,,,,,,,,,,,,, +0x4040,,WRAM_A0,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, +0x4041,,WRAM_A1,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, +0x4042,,WRAM_A2,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, +0x4043,,WRAM_A3,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1,,,,,,,,, +0x4044,,WRAM_B0,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,, +0x4045,,WRAM_B1,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4046,,WRAM_B2,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4047,,WRAM_B3,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4048,,WRAM_B4,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4049,,WRAM_B5,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404a,,WRAM_B6,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404b,,WRAM_B7,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404c,,WRAM_C0,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404d,,WRAM_C1,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404e,,WRAM_C2,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404f,,WRAM_C3,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4050,,WRAM_C4,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4051,,WRAM_C5,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4052,,WRAM_C6,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4053,,WRAM_C7,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4054,,WRAM_A_MAP,32,rw,MI,volatile,END,20,9,IMG,12,2,START,4,8 +0x4058,,WRAM_B_MAP,32,rw,MI,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x405c,,WRAM_C_MAP,32,rw,MI,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4060,,WRAM_A_LOCK,8,rw,MI,volatile,A3,3,1,A2,2,1,A1,1,1,A0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4061,,WRAM_B_LOCK,8,rw,MI,volatile,B7,7,1,B6,6,1,B5,5,1,B4,4,1,B3,3,1,B2,2,1,B1,1,1,B0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4062,,WRAM_C_LOCK,8,rw,MI,volatile,C7,7,1,C6,6,1,C5,5,1,C4,4,1,C3,3,1,C2,2,1,C1,1,1,C0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, # 表示コントロールレジスタ nitro p40 p59 p92 …,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x000,,DISPCNT,32,rw,GX,volatile,O,31,1,BG,30,1,BGSCREENOFFSET,27,3,BGCHAROFFSET,24,3,OH,23,1,EXOBJ,20,3,VRAM,18,2,MODE,16,2,OW,15,1,W1,14,1,W0,13,1,DISPLAY,8,5,BLANK,7,1,OBJMAP,4,3,BG02D3D,3,1,BGMODE,0,3,OBJMAP_CH,4,1,OBJMAP_BM,5,2,EXOBJ_CH,20,2,EXOBJ_BM,22,1 #表示ステータス nitro p39 / twl p83,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -45,7 +46,7 @@ 0x00c,,BG2CNT,16,rw,G2,volatile,SCREENSIZE,14,2,AREAOVER,13,1,SCREENBASE,8,5,COLORMODE,7,1,MOSAIC,6,1,CHARBASE,2,4,PRIORITY,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x00e,,BG3CNT,16,rw,G2,volatile,SCREENSIZE,14,2,AREAOVER,13,1,SCREENBASE,8,5,COLORMODE,7,1,MOSAIC,6,1,CHARBASE,2,4,PRIORITY,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, # BGデータ参照開始点設定、参照方向設定 nitro p69〜。 BG0OFSはp 175 でも登場,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x010,,BG0OFS,32,w,G2,volatile,VOFFSET,16,9,HOFFSET,0,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x010,,BG0OFS,32,w,G2,volatile,VOFFSET,16,9,HOFFSET,0,9,,, 0x010,,BG0HOFS,16,w,G2,volatile,OFFSET,0,9,,,,,, 0x012,,BG0VOFS,16,w,G2,volatile,OFFSET,0,9,,,,,, 0x014,,BG1OFS,32,w,G2,volatile,VOFFSET,16,9,HOFFSET,0,9,,, @@ -62,22 +63,22 @@ 0x024,,BG2PC,16,w,G2,volatile,S,15,1,INTEGER_DY,8,7,DECIMAL_DY,0,8 0x026,,BG2PD,16,w,G2,volatile,S,15,1,INTEGER_DMY,8,7,DECIMAL_DMY,0,8 0x028,,BG2X,32,w,G2,volatile,S,27,1,INTEGER_SX,8,19,DECIMAL_SX,0,8 -0x02c,,BG2Y,32,w,G2,volatile,S,27,1,INTEGER_SY,8,19,DECIMAL_SY,0,8,,, -0x030,,BG3PA,16,w,G2,volatile,S,15,1,INTEGER_DX,8,7,DECIMAL_DX,0,8,,, -0x032,,BG3PB,16,w,G2,volatile,S,15,1,INTEGER_DMX,8,7,DECIMAL_DMX,0,8,,, -0x034,,BG3PC,16,w,G2,volatile,S,15,1,INTEGER_DY,8,7,DECIMAL_DY,0,8,,, -0x036,,BG3PD,16,w,G2,volatile,S,15,1,INTEGER_DMY,8,7,DECIMAL_DMY,0,8,,, -0x038,,BG3X,32,w,G2,volatile,S,27,1,INTEGER_SX,8,19,DECIMAL_SX,0,8,,, -0x03c,,BG3Y,32,w,G2,volatile,S,27,1,INTEGER_SY,8,19,DECIMAL_SY,0,8,,, -#ウィンドウ nitro p95、p176,,,,,,,,,,,,,,,,,, -0x040,,WIN0H,16,w,G2,volatile,LEFTX,8,8,RIGHTX,0,8,,,,,, -0x042,,WIN1H,16,w,G2,volatile,LEFTX,8,8,RIGHTX,0,8,,,,,, -0x044,,WIN0V,16,w,G2,volatile,UPY,8,8,DOWNY,0,8,,,,,, -0x046,,WIN1V,16,w,G2,volatile,UPY,8,8,DOWNY,0,8,,,,,, -0x048,,WININ,16,rw,G2,volatile,WIN1IN,8,6,WIN0IN,0,6,,,,,, -0x04a,,WINOUT,16,rw,G2,volatile,OBJWININ,8,6,WINOUT,0,6,,,,,, -#モザイク nitro p99,,,,,,,,,,,,,,,,,, -0x04c,,MOSAIC,16,w,G2,volatile,OBJVSIZE,12,4,OBJHSIZE,8,4,BGVSIZE,4,4,BGHSIZE,0,4 +0x02c,,BG2Y,32,w,G2,volatile,S,27,1,INTEGER_SY,8,19,DECIMAL_SY,0,8 +0x030,,BG3PA,16,w,G2,volatile,S,15,1,INTEGER_DX,8,7,DECIMAL_DX,0,8 +0x032,,BG3PB,16,w,G2,volatile,S,15,1,INTEGER_DMX,8,7,DECIMAL_DMX,0,8 +0x034,,BG3PC,16,w,G2,volatile,S,15,1,INTEGER_DY,8,7,DECIMAL_DY,0,8 +0x036,,BG3PD,16,w,G2,volatile,S,15,1,INTEGER_DMY,8,7,DECIMAL_DMY,0,8 +0x038,,BG3X,32,w,G2,volatile,S,27,1,INTEGER_SX,8,19,DECIMAL_SX,0,8 +0x03c,,BG3Y,32,w,G2,volatile,S,27,1,INTEGER_SY,8,19,DECIMAL_SY,0,8 +#ウィンドウ nitro p95、p176,,,,,,,,,,,,,,, +0x040,,WIN0H,16,w,G2,volatile,LEFTX,8,8,RIGHTX,0,8,,, +0x042,,WIN1H,16,w,G2,volatile,LEFTX,8,8,RIGHTX,0,8,,, +0x044,,WIN0V,16,w,G2,volatile,UPY,8,8,DOWNY,0,8,,, +0x046,,WIN1V,16,w,G2,volatile,UPY,8,8,DOWNY,0,8,,, +0x048,,WININ,16,rw,G2,volatile,WIN1IN,8,6,WIN0IN,0,6,,, +0x04a,,WINOUT,16,rw,G2,volatile,OBJWININ,8,6,WINOUT,0,6,,, +#モザイク nitro p99,,,,,,,,,,,,,,, +0x04c,,MOSAIC,16,w,G2,volatile,OBJVSIZE,12,4,OBJHSIZE,8,4,BGVSIZE,4,4,BGHSIZE,0,4,,,,,,,,,,,,,,,,,,,,,,,, #カラー特殊効果 nitro p97、 p177〜p178,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x050,,BLDCNT,16,rw,G2,volatile,PLANE2,8,6,EFFECT,6,2,PLANE1,0,6,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x052,,BLDALPHA,16,rw,G2,volatile,EVB,8,5,EVA,0,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -93,7 +94,7 @@ #マスター輝度 nitro p50,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x06c,,MASTER_BRIGHT,16,rw,GX,volatile,E_MOD,14,2,E_VALUE,0,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, #ビデオ出力 nitro p51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x070,,TVOUTCNT,16,w,GX,volatile,COMMAND3,8,4,COMMAND2,4,4,COMMAND,0,4,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x070,,TVOUTCNT,16,w,GX,volatile,COMMAND3,8,4,COMMAND2,4,4,COMMAND,0,4,,,,,,,,,,,,,,, #DMA nitro p179,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x0b0,,DMA0SAD,32,rw,MI,volatile,DMASRC,0,28,,,,,,,,,,,,,,,,,,,,, 0x0b4,,DMA0DAD,32,rw,MI,volatile,DMADEST,0,28,,,,,,,,,,,,,,,,,,,,, @@ -109,7 +110,7 @@ 0x0dc,,DMA3CNT,32,rw,MI,volatile,E,31,1,I,30,1,MODE,27,3,SB,26,1,CM,25,1,SAR,23,2,DAR,21,2,WORDCNT,0,21 0x0e0,,DMA0_CLR_DATA,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,, 0x0e4,,DMA1_CLR_DATA,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,, -0x0e8,,DMA2_CLR_DATA,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,, +0x0e8,,DMA2_CLR_DATA,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x0ec,,DMA3_CLR_DATA,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,, # twl p53 〜 p67,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4100,,DMAGBL,32,rw,MI,volatile,ARB,31,1,YLD,16,4,,,,,,,,,,,,,,,,,,,,, @@ -141,7 +142,7 @@ 0x4168,,DMA7BCNT,32,rw,MI,volatile,PS,16,2,BI,0,16,,,,,,,,,,,,,,,,,,,,, 0x416c,,DMA7FDATA,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4170,,DMA7CNT,32,rw,MI,volatile,E,31,1,I,30,1,CM,29,1,TIMING,24,5,BSIZE,16,4,SRLD,15,1,SAR,13,2,DRLD,12,1,DAR,10,2 -#タイマ nitro p181,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#タイマ nitro p181,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x100,,TM0CNT_L,16,rw,OS,volatile,TIMER0CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x102,,TM0CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,PS,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x104,,TM1CNT_L,16,rw,OS,volatile,TIMER1CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -157,7 +158,7 @@ #キー nitro p182,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x130,,KEYINPUT,16,r,PAD,volatile,L,9,1,R,8,1,DOWN,7,1,UP,6,1,LEFT,5,1,RIGHT,4,1,START,3,1,SEL,2,1,B,1,1,A,0,1,,,,,, 0x132,,KEYCNT,16,rw,PAD,volatile,LOGIC,15,1,INTR,14,1,L,9,1,R,8,1,DOWN,7,1,UP,6,1,LEFT,5,1,RIGHT,4,1,START,3,1,SEL,2,1,B,1,1,A,0,1 -#ARM7とのインタフェース nitro p187,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#ARM7とのインタフェース nitro p187,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x180,,SUBPINTF,16,rw,PXI,volatile,I,14,1,IREQ,13,1,A9STATUS,8,4,A7STATUS,0,4,,,,,,,,,,,,,,, 0x184,,SUBP_FIFO_CNT,16,rw,PXI,volatile,E,15,1,ERR,14,1,RECV_RI,10,1,RECV_FULL,9,1,RECV_EMP,8,1,SEND_CL,3,1,SEND_TI,2,1,SEND_FULL,1,1,SEND_EMP,0,1 0x188,,SEND_FIFO,32,rw,PXI,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -173,7 +174,7 @@ 0x21a0,,MCCNT0_B,16,rw,MI,volatile,E,15,1,I,14,1,SEL,13,1,BUSY,7,1,MODE,6,1,BAUDRATE,0,2,,,,,,,,, 0x21a2,,MCD0_B,16,rw,MI,volatile,DATA,0,8,,,,,,,,,,,,,,,,,,,,,,,, 0x102010,,MCD1_B,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21a4,,MCCNT1_B,32,rw,MI,volatile,START,31,1,WR,30,1,CT,27,1,PC,24,3,RDY,23,1,L2,16,6,L1,0,13,,,,,, +0x21a4,,MCCNT1_B,32,rw,MI,volatile,START,31,1,WR,30,1,CT,27,1,PC,24,3,RDY,23,1,L2,16,6,L1,0,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x21a8,,MCCMD0_B,32,w,MI,volatile,CMD3,24,8,CMD2,16,8,CMD1,8,8,CMD0,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x21ac,,MCCMD1_B,32,w,MI,volatile,CMD7,24,8,CMD6,16,8,CMD5,8,8,CMD4,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, #外部メモリ nitro p27 / twl p85,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -189,7 +190,7 @@ 0x242,,VRAMCNT_C,8,w,GX,volatile,E,7,1,OFS,3,2,MST,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x243,,VRAMCNT_D,8,w,GX,volatile,E,7,1,OFS,3,2,MST,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x244,,WVRAMCNT,32,w,GX,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x244,,VRAMCNT_E,8,w,GX,volatile,E,7,1,MST,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x244,,VRAMCNT_E,8,w,GX,volatile,E,7,1,MST,0,3,,, 0x245,,VRAMCNT_F,8,w,GX,volatile,E,7,1,OFS,3,2,MST,0,3 0x246,,VRAMCNT_G,8,w,GX,volatile,E,7,1,OFS,3,2,MST,0,3 0x247,,VRAMCNT_WRAM,8,w,GX,volatile,BANK,0,2,,,,,, @@ -205,7 +206,7 @@ 0x298,,DIV_DENOM,64,rw,CP,volatile,,,,,,,,, 0x298,,DIV_DENOM_L,32,rw,CP,volatile,,,,,,,,, 0x29c,,DIV_DENOM_H,32,rw,CP,volatile,,,,,,,,, -0x2a0,,DIV_RESULT,64,rw,CP,volatile,,,,,,,,, +0x2a0,,DIV_RESULT,64,rw,CP,volatile,,,,,,,,,,,,,,,,,,,,, 0x2a0,,DIV_RESULT_L,32,rw,CP,volatile,,,,,,,,,,,,,,,,,,,,, 0x2a4,,DIV_RESULT_H,32,rw,CP,volatile,,,,,,,,,,,,,,,,,,,,, 0x2a8,,DIVREM_RESULT,64,rw,CP,volatile,,,,,,,,,,,,,,,,,,,,, @@ -221,7 +222,7 @@ 0x300,,PAUSE,16,rw,OS,volatile,MOD,14,2,CHK,0,1,,,,,,,,,,,,,,, #パワーコントロール nitro p35,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x304,,POWCNT,16,rw,GX,volatile,GE,3,1,RE,2,1,E2DG,1,1,LCD,0,1,LCDB,8,1,E2DGB,9,1,DSEL,15,1 -#レンダリング済みライン数カウントレジスタ p174,,,,,,,,,,,,,,,,,,,,,,,,,,, +#レンダリング済みライン数カウントレジスタ p174,,,,,,,,,,,,,,,,,,,,,,,, 0x320,,RDLINES_COUNT,16,r,G3X,volatile,RENDERED_LINES_MIN,0,6,,,,,,,,,,,,,,, #エッジカラーレジスタ nitro p170 (このフィールド名称考慮すべき),,,,,,,,,,,,,,,,,,,,,,,, #重複定義ありです。,,,,,,,,,,,,,,,,,,,,,,,, @@ -253,7 +254,7 @@ 0x360,,FOG_TABLE_0_L,16,w,G3X,volatile,DENSITY1,8,7,DENSITY0,0,7,,,,,,,,,,,, 0x362,,FOG_TABLE_0_H,16,w,G3X,volatile,DENSITY3,8,7,DENSITY2,0,7,,,,,,,,,,,, 0x364,,FOG_TABLE_1,32,w,G3X,volatile,DENSITY7,24,7,DENSITY6,16,7,DENSITY5,8,7,DENSITY4,0,7,,,,,, -0x364,,FOG_TABLE_1_L,16,w,G3X,volatile,DENSITY5,8,7,DENSITY4,0,7,,,,,,,,,,,, +0x364,,FOG_TABLE_1_L,16,w,G3X,volatile,DENSITY5,8,7,DENSITY4,0,7,,,,,, 0x366,,FOG_TABLE_1_H,16,w,G3X,volatile,DENSITY7,8,7,DENSITY6,0,7,,,,,, 0x368,,FOG_TABLE_2,32,w,G3X,volatile,DENSITY11,24,7,DENSITY10,16,7,DENSITY9,8,7,DENSITY8,0,7 0x368,,FOG_TABLE_2_L,16,w,G3X,volatile,DENSITY9,8,7,DENSITY8,0,7,,,,,, @@ -269,7 +270,7 @@ 0x376,,FOG_TABLE_5_H,16,w,G3X,volatile,DENSITY23,8,7,DENSITY22,0,7,,,,,, 0x378,,FOG_TABLE_6,32,w,G3X,volatile,DENSITY27,24,7,DENSITY26,16,7,DENSITY25,8,7,DENSITY24,0,7 0x378,,FOG_TABLE_6_L,16,w,G3X,volatile,DENSITY25,8,7,DENSITY24,0,7,,,,,, -0x37a,,FOG_TABLE_6_H,16,w,G3X,volatile,DENSITY27,8,7,DENSITY26,0,7,,,,,, +0x37a,,FOG_TABLE_6_H,16,w,G3X,volatile,DENSITY27,8,7,DENSITY26,0,7,,,,,,,,,,,, 0x37c,,FOG_TABLE_7,32,w,G3X,volatile,DENSITY31,24,7,DENSITY30,16,7,DENSITY29,8,7,DENSITY28,0,7,,,,,, 0x37c,,FOG_TABLE_7_L,16,w,G3X,volatile,DENSITY29,8,7,DENSITY28,0,7,,,,,,,,,,,, 0x37e,,FOG_TABLE_7_H,16,w,G3X,volatile,DENSITY31,8,7,DENSITY30,0,7,,,,,,,,,,,, @@ -333,7 +334,7 @@ 0x450,,MTX_RESTORE,32,w,G3,volatile,INDEX,0,5,,,,,,,,,,,,,,, 0x454,,MTX_IDENTITY,32,w,G3,volatile,,,,,,,,,,,,,,,,,, 0x458,,MTX_LOAD_4x4,32,w,G3,volatile,S,31,1,INTEGER_M44,12,19,DECIMAL_M44,0,12,,,,,,,,, -0x45c,,MTX_LOAD_4x3,32,w,G3,volatile,S,31,1,INTEGER_M43,12,19,DECIMAL_M43,0,12,,,,,,,,, +0x45c,,MTX_LOAD_4x3,32,w,G3,volatile,S,31,1,INTEGER_M43,12,19,DECIMAL_M43,0,12,,,,,,,,,,,,,,,,,, 0x460,,MTX_MULT_4x4,32,w,G3,volatile,S,31,1,INTEGER_M44,12,19,DECIMAL_M44,0,12,,,,,,,,,,,,,,,,,, 0x464,,MTX_MULT_4x3,32,w,G3,volatile,S,31,1,INTEGER_M43,12,19,DECIMAL_M43,0,12,,,,,,,,,,,,,,,,,, 0x468,,MTX_MULT_3x3,32,w,G3,volatile,S,31,1,INTEGER_M33,12,19,DECIMAL_M33,0,12,,,,,,,,,,,,,,,,,, @@ -349,7 +350,7 @@ 0x490,,VTX_10,32,w,G3,volatile,SZ,29,1,INT_Z,26,3,DECIMAL_Z,20,6,SY,19,1,INT_Y,16,3,DECIMAL_Y,10,6,SX,9,1,INT_X,6,3,DECIMAL_X,0,6 0x494,,VTX_XY,32,w,G3,volatile,SY,31,1,INT_Y,28,3,DECIMAL_Y,16,12,SX,15,1,INT_X,12,3,DECIMAL_X,0,12,,,,,,,,, 0x498,,VTX_XZ,32,w,G3,volatile,SZ,31,1,INT_Z,28,3,DECIMAL_Z,16,12,SX,15,1,INT_X,12,3,DECIMAL_X,0,12,,,,,,,,, -0x49c,,VTX_YZ,32,w,G3,volatile,SZ,31,1,INT_Z,28,3,DECIMAL_Z,16,12,SY,15,1,INT_Y,12,3,DECIMAL_Y,0,12,,,,,,,,, +0x49c,,VTX_YZ,32,w,G3,volatile,SZ,31,1,INT_Z,28,3,DECIMAL_Z,16,12,SY,15,1,INT_Y,12,3,DECIMAL_Y,0,12,,,,,,,,,,,,,,, 0x4a0,,VTX_DIFF,32,w,G3,volatile,SZ,29,1,DECIMAL_Z,20,9,SY,19,1,DECIMAL_Y,10,9,SX,9,1,DECIMAL_X,0,9,,,,,,,,,,,,,,, #ポリゴン属性 nitro p130,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4a4,,POLYGON_ATTR,32,w,G3,volatile,ID,24,6,ALPHA,16,5,FE,15,1,DT,14,1,D1,13,1,FC,12,1,XL,11,1,FR,7,1,BK,6,1,PM,4,2,LE,0,4 @@ -365,7 +366,7 @@ #ポリゴン 頂点リストの開始と終了宣言 nitro p133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x500,,BEGIN_VTXS,32,w,G3,volatile,TYPE,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x504,,END_VTXS,32,w,G3,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#レンダリングエンジン参照データスワップ nitro p115,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#レンダリングエンジン参照データスワップ nitro p115,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x540,,SWAP_BUFFERS,32,w,G3,volatile,DP,1,1,XS,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, #ビューポート nitro p116,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x580,,VIEWPORT,32,w,G3,volatile,INTEGER_Y2,24,8,INTEGER_X2,16,8,INTEGER_Y1,8,8,INTEGER_X1,0,8,,,,,,,,,,,,,,,,,,,,,,,, @@ -381,7 +382,7 @@ 0x606,,VTXRAM_COUNT,16,r,G3X,volatile,VTXCNT,0,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, #1ドットポリゴン表示境界デプス値レジスタ nitro p132,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x610,,DISP_1DOT_DEPTH,16,w,G3X,volatile,INTEGER_W,3,12,DECIMAL_W,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#計算結果取得 nitro p145,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#計算結果取得 nitro p145,,,,,,,,,,,,,,, 0x620,,POS_RESULT_X,32,r,G3X,volatile,SX,31,1,INTEGER_X,12,19,DECIMAL_X,0,12 0x624,,POS_RESULT_Y,32,r,G3X,volatile,SY,31,1,INTEGER_Y,12,19,DECIMAL_Y,0,12 0x628,,POS_RESULT_Z,32,r,G3X,volatile,SZ,31,1,INTEGER_Z,12,19,DECIMAL_Z,0,12 @@ -413,7 +414,7 @@ 0x690,,VECMTX_RESULT_4,32,r,G3X,volatile,S,31,1,INTEGER_m4,12,19,DECIMAL_m4,0,12 0x694,,VECMTX_RESULT_5,32,r,G3X,volatile,S,31,1,INTEGER_m5,12,19,DECIMAL_m5,0,12 0x698,,VECMTX_RESULT_6,32,r,G3X,volatile,S,31,1,INTEGER_m6,12,19,DECIMAL_m6,0,12 -0x69c,,VECMTX_RESULT_7,32,r,G3X,volatile,S,31,1,INTEGER_m7,12,19,DECIMAL_m7,0,12 +0x69c,,VECMTX_RESULT_7,32,r,G3X,volatile,S,31,1,INTEGER_m7,12,19,DECIMAL_m7,0,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x6a0,,VECMTX_RESULT_8,32,r,G3X,volatile,S,31,1,INTEGER_m8,12,19,DECIMAL_m8,0,12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, #2画面目関係レジスタ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x1000,,DB_DISPCNT,32,rw,GXS,volatile,O,31,1,BG,30,1,OH,23,1,EXOBJ,20,2,MODE,16,1,OW,15,1,W1,14,1,W0,13,1,DISPLAY,8,5,BLANK,7,1,OBJMAP,4,3,BGMODE,0,3,OBJMAP_CH,4,1,OBJMAP_BM,5,2,EXOBJ_CH,20,2 @@ -429,7 +430,7 @@ 0x1014,,DB_BG1HOFS,16,w,G2S,volatile,OFFSET,0,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x1016,,DB_BG1VOFS,16,w,G2S,volatile,OFFSET,0,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x1018,,DB_BG2OFS,32,w,G2S,volatile,VOFFSET,16,9,HOFFSET,0,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x1018,,DB_BG2HOFS,16,w,G2S,volatile,OFFSET,0,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x1018,,DB_BG2HOFS,16,w,G2S,volatile,OFFSET,0,9,,,,,, 0x101a,,DB_BG2VOFS,16,w,G2S,volatile,OFFSET,0,9,,,,,, 0x101c,,DB_BG3OFS,32,w,G2S,volatile,VOFFSET,16,9,HOFFSET,0,9,,, 0x101c,,DB_BG3HOFS,16,w,G2S,volatile,OFFSET,0,9,,,,,, @@ -445,7 +446,7 @@ 0x1034,,DB_BG3PC,16,w,G2S,volatile,S,15,1,INTEGER_DY,8,7,DECIMAL_DY,0,8 0x1036,,DB_BG3PD,16,w,G2S,volatile,S,15,1,INTEGER_DMY,8,7,DECIMAL_DMY,0,8 0x1038,,DB_BG3X,32,w,G2S,volatile,S,27,1,INTEGER_SX,8,19,DECIMAL_SX,0,8 -0x103c,,DB_BG3Y,32,w,G2S,volatile,S,27,1,INTEGER_SY,8,19,DECIMAL_SY,0,8 +0x103c,,DB_BG3Y,32,w,G2S,volatile,S,27,1,INTEGER_SY,8,19,DECIMAL_SY,0,8,,, 0x1040,,DB_WIN0H,16,w,G2S,volatile,LEFTX,8,8,RIGHTX,0,8,,,,,, 0x1042,,DB_WIN1H,16,w,G2S,volatile,LEFTX,8,8,RIGHTX,0,8,,,,,, 0x1044,,DB_WIN0V,16,w,G2S,volatile,UPY,8,8,DOWNY,0,8,,,,,, diff --git a/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl b/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl index f58309c..71ba70a 100644 --- a/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl +++ b/build/buildsetup/ioreg_sp/header_generator_ioreg_sp.pl @@ -386,7 +386,7 @@ sub output { #define $include_guard #ifndef SDK_ASM -#include +#include #include #endif diff --git a/build/buildsetup/ioreg_sp/io_register_list.csv b/build/buildsetup/ioreg_sp/io_register_list.csv index 13f0d55..2bceb1f 100644 --- a/build/buildsetup/ioreg_sp/io_register_list.csv +++ b/build/buildsetup/ioreg_sp/io_register_list.csv @@ -6,62 +6,63 @@ 0x4004,,CLK,16,rw,CFG,volatile,SND,8,1,WRAM,7,1,AES,2,1,WSD,1,0,SD,0,1,,,,,,,,,,,,,,,,,,,,,,,, 0x4006,,DSP_JTAG,8,rw,CFG,volatile,E,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4007,,CPU_JTAG,8,rw,CFG,volatile,E,1,1,A7,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4008,,DS_MDY,8,rw,CFG,volatile,MC,7,1,SND,2,1,SDMA,1,1,DMA,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4008,,DS_MDFY,8,rw,CFG,volatile,MC,7,1,SND,2,1,SDMA,1,1,DMA,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4009,,DS_EX,8,rw,CFG,volatile,MAIM_MEM,6,2,VRAM,5,1,LCDC,4,1,SIO,3,1,SDMA2,2,1,SPI,1,1,INTC,0,1,,,,,,,,,,,,,,,,,, 0x400a,,TWL_EX,16,rw,CFG,volatile,CFG_E,15,1,WSD_PU,13,1,SD_PU,12,1,WRAM,9,0,MC_B,8,1,GPIO,7,1,I2C,6,1,I2S,5,1,MIC,4,1,WSD,3,1,SD,2,1,AES,1,1,DMA4,0,1 -0x4010,,MC_DET,8,rw,CFG,volatile,MODE2,6,2,DET2,4,1,MODE1,2,2,DET1,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4011,,MC_SWP,8,rw,CFG,volatile,SWP,7,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4012,,MC_CHT,16,rw,CFG,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4020,,DSWL_MAC,8,rw,CFG,volatile,E,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4024,,BONDING,8,rw,CFG,volatile,DBG,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4040,,WRAM_A0,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1 -0x4041,,WRAM_A1,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1 -0x4042,,WRAM_A2,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1 -0x4043,,WRAM_A3,8,rw,CFG,volatile,E,7,1,OFS,2,2,MST,0,1 -0x4044,,WRAM_B0,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4045,,WRAM_B1,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4046,,WRAM_B2,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4047,,WRAM_B3,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4048,,WRAM_B4,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4049,,WRAM_B5,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404a,,WRAM_B6,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404b,,WRAM_B7,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404c,,WRAM_C0,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404d,,WRAM_C1,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404e,,WRAM_C2,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x404f,,WRAM_C3,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2 -0x4050,,WRAM_C4,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4051,,WRAM_C5,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4052,,WRAM_C6,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4053,,WRAM_C7,8,rw,CFG,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4054,,WRAM_A_MAP,32,rw,CFG,volatile,END,20,9,IMG,12,2,START,4,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4058,,WRAM_B_MAP,32,rw,CFG,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x405c,,WRAM_C_MAP,32,rw,CFG,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4060,,WRAM_A_LOCK,8,rw,CFG,volatile,A3,3,1,A2,2,1,A1,1,1,A0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4061,,WRAM_B_LOCK,8,rw,CFG,volatile,B7,7,1,B6,6,1,B5,5,1,B4,4,1,B3,3,1,B2,2,1,B1,1,1,B0,0,1,,,,,,,,,,,,,,,,,,,,,,,, -0x4062,,WRAM_C_LOCK,8,rw,CFG,volatile,C7,7,1,C6,6,1,C5,5,1,C4,4,1,C3,3,1,C2,2,1,C1,1,1,C0,0,1,,,,,,,,,,,,,,,,,,,,,,,, +#twl p125,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4010,,MC_DET,8,rw,MI,volatile,MODE2,6,2,DET2,4,1,MODE1,2,2,DET1,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4011,,MC_SWP,8,rw,MI,volatile,SWP,7,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4012,,MC_CHT,16,rw,MI,volatile,,,,,,,,, +0x4040,,WRAM_A0,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1 +0x4041,,WRAM_A1,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1 +0x4042,,WRAM_A2,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1 +0x4043,,WRAM_A3,8,rw,MI,volatile,E,7,1,OFS,2,2,MST,0,1 +0x4044,,WRAM_B0,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4045,,WRAM_B1,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4046,,WRAM_B2,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4047,,WRAM_B3,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4048,,WRAM_B4,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x4049,,WRAM_B5,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404a,,WRAM_B6,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404b,,WRAM_B7,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404c,,WRAM_C0,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404d,,WRAM_C1,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404e,,WRAM_C2,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2 +0x404f,,WRAM_C3,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4050,,WRAM_C4,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4051,,WRAM_C5,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4052,,WRAM_C6,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4053,,WRAM_C7,8,rw,MI,volatile,E,7,1,OFS,2,3,MST,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4054,,WRAM_A_MAP,32,rw,MI,volatile,END,20,9,IMG,12,2,START,4,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4058,,WRAM_B_MAP,32,rw,MI,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x405c,,WRAM_C_MAP,32,rw,MI,volatile,END,19,10,IMG,12,2,START,3,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4060,,WRAM_A_LOCK,8,rw,MI,volatile,A3,3,1,A2,2,1,A1,1,1,A0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4061,,WRAM_B_LOCK,8,rw,MI,volatile,B7,7,1,B6,6,1,B5,5,1,B4,4,1,B3,3,1,B2,2,1,B1,1,1,B0,0,1,,,,,,,,,,,,,,,,,,,,,,,, +0x4062,,WRAM_C_LOCK,8,rw,MI,volatile,C7,7,1,C6,6,1,C5,5,1,C4,4,1,C3,3,1,C2,2,1,C1,1,1,C0,0,1,,,,,,,,,,,,,,,,,,,,,,,, #AES twl p164 〜 p175,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4400,,AESCNT,32,rw,AES,volatile,E,31,1,I,30,1,MODE,28,2,KEY_SEL,26,2,KEY_BUSY,25,1,KEY_SET,24,1,MAC_RSLT,21,1,MAC_ISEL,20,1,ADATA_OE,19,1,MAC_LEN,16,3,OFIFO_DREQ,14,2,IFIFO_DREQ,12,2,OFIFO_CLR,11,1,IFIFO_CLR,10,1,OFIFO_COUNT,5,5,IFIFO_COUNT,0,5 0x4404,,AES_ASO_LEN,16,rw,AES,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4406,,AES_PLD_LEN,16,rw,AES,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4408,,AES_IFIFO,32,rw,AES,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x440c,,AES_OFIFO,32,rw,AES,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x4420,,AES_NNC_CTR,128,rw,AES,volatile,,,,,,,,, -0x4430,,AES_MAC,128,rw,AES,volatile,,,,,,,,, -0x4440,,AES_KEY0,128,rw,AES,volatile,,,,,,,,, -0x4450,,AES_ID0,128,rw,AES,volatile,,,,,,,,, -0x4460,,AES_SEED0,128,rw,AES,volatile,,,,,,,,, -0x4470,,AES_KEY1,128,rw,AES,volatile,,,,,,,,, -0x4480,,AES_ID1,128,rw,AES,volatile,,,,,,,,, -0x4490,,AES_SEED1,128,rw,AES,volatile,,,,,,,,, -0x44a0,,AES_KEY2,128,rw,AES,volatile,,,,,,,,, -0x44b0,,AES_ID2,128,rw,AES,volatile,,,,,,,,, -0x44c0,,AES_SEED2,128,rw,AES,volatile,,,,,,,,, -0x44d0,,AES_KEY3,128,rw,AES,volatile,,,,,,,,, -0x44e0,,AES_ID3,128,rw,AES,volatile,,,,,,,,, -0x44f0,,AES_SEED3,128,rw,AES,volatile,,,,,,,,, -#FUSE twl p176 〜 p178,,,,,,,,,,,,,,, -0x4D00,,FUSE_ID0,32,rw,MI,volatile,WAFER,24,8,X,12,12,Y,0,12 +0x440c,,AES_OFIFO,32,rw,AES,volatile +0x4420,,AES_NNC_CTR,128,rw,AES,volatile +0x4430,,AES_MAC,128,rw,AES,volatile +0x4440,,AES_KEY0,128,rw,AES,volatile +0x4450,,AES_ID0,128,rw,AES,volatile +0x4460,,AES_SEED0,128,rw,AES,volatile +0x4470,,AES_KEY1,128,rw,AES,volatile +0x4480,,AES_ID1,128,rw,AES,volatile +0x4490,,AES_SEED1,128,rw,AES,volatile +0x44a0,,AES_KEY2,128,rw,AES,volatile +0x44b0,,AES_ID2,128,rw,AES,volatile +0x44c0,,AES_SEED2,128,rw,AES,volatile +0x44d0,,AES_KEY3,128,rw,AES,volatile +0x44e0,,AES_ID3,128,rw,AES,volatile +0x44f0,,AES_SEED3,128,rw,AES,volatile +#FUSE twl p176 〜 p178,,,,,, +0x4D00,,FUSE_ID0,32,rw,MI,volatile,WAFER,24,8,X,12,12,Y,0,12,,,,,,,,,,,,,,,,,,,,, 0x4D04,,FUSE_ID1,32,rw,MI,volatile,FAB,20,9,LOT,0,20,,,,,,,,,,,,,,,,,,,,,,,, #GPIO2 twl p214 〜 p218,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4C00,,GPIO2DATA,8,rw,EXI,volatile,IO33_3,7,1,IO33_2,6,1,IO33_1,5,1,IO33_0,4,1,IO18_2,2,1,IO18_1,1,1,IO18_0,0,1,,,,,,,,, @@ -77,7 +78,7 @@ 0x4700,,I2SCNT,8,rw,SND,volatile,E,15,1,MUTE,14,1,CODEC_SMP,13,1,MIX_RATIO,0,4,,,,,,,,,,,,,,,,,, #MIC twl p200 〜 p203,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4600,,MICCNT,8,rw,SND,volatile,E,15,1,IM,13,2,FIFO_CLR,12,1,FIFO_ERR,11,1,FIFO_FUL,10,1,FIFO_HALF,9,1,FIFO_EMP,8,1,FIFO_SMP,2,2,NR,1,1,NL,0,1 -0x4604,,MIC_FIFO,32,rw,SND,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x4604,,MIC_FIFO,32,rw,SND,volatile,,,,,,,,,,,,,,,,,,,,,,,, #表示ステータス nitro p215 / twl p222,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x004,,DISPSTAT,16,rw,GX,volatile,VCOUNTER,7,9,LD_INI,6,1,VQI,5,1,HBI,4,1,VBI,3,1,LYC,2,1,HBLK,1,1,VBLK,0,1 0x006,,VCOUNT,16,rw,GX,volatile,VCOUNTER,0,10,,,,,,,,,,,,,,,,,,,,, @@ -93,7 +94,7 @@ 0x0d0,,DMA2CNT,32,rw,MI,volatile,E,31,1,I,30,1,TIMING,28,2,SB,26,1,CM,25,1,SAR,23,2,DAR,21,2,WORDCNT,0,16 0x0d4,,DMA3SAD,32,rw,MI,volatile,DMASRC,0,28,,,,,,,,,,,,,,,,,,,,, 0x0d8,,DMA3DAD,32,rw,MI,volatile,DMADEST,0,28,,,,,,,,,,,,,,,,,,,,, -0x0dc,,DMA3CNT,32,rw,MI,volatile,E,31,1,I,30,1,TIMING,28,2,SB,26,1,CM,25,1,SAR,23,2,DAR,21,2,WORDCNT,0,16 +0x0dc,,DMA3CNT,32,rw,MI,volatile,E,31,1,I,30,1,TIMING,28,2,SB,26,1,CM,25,1,SAR,23,2,DAR,21,2,WORDCNT,0,16,,, # twl p150 〜 p163,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x4100,,DMAGBL,32,rw,MI,volatile,ARB,31,1,YLD,16,4,,,,,,,,,,,,,,,,,,,,, 0x4104,,DMA4SAD,32,rw,MI,volatile,DMASRC,2,30,,,,,,,,,,,,,,,,,,,,,,,, @@ -126,22 +127,22 @@ 0x4170,,DMA7CNT,32,rw,MI,volatile,E,31,1,I,30,1,CM,29,1,TIMING,24,5,BSIZE,16,4,SRLD,15,1,SAR,13,2,DRLD,12,1,DAR,10,2 #タイマ nitro p213,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x100,,TM0CNT_L,16,rw,OS,volatile,TIMER0CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,, -0x102,,TM0CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,PS,0,2,,,,,,,,,,,,,,,,,,,,, -0x104,,TM1CNT_L,16,rw,OS,volatile,TIMER1CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x106,,TM1CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,,,,, -0x108,,TM2CNT_L,16,rw,OS,volatile,TIMER2CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x10a,,TM2CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,,,,, -0x10c,,TM3CNT_L,16,rw,OS,volatile,TIMER2CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x10e,,TM3CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,,,,, -#SIO ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -"#レジスタ0x128,0x12aは状況でビットの意味が大きく変わるので多重に定義してあります。",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x120,,SIODATA32,32,rw,EXI,volatile,H,16,16,L,0,16,,,,,,,,,,,,,,,,,,,,,,,, -0x120,,SIOMULTI0,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x122,,SIOMULTI1,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x124,,SIOMULTI2,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x126,,SIOMULTI3,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x128,,SIOCNT,16,rw,EXI,volatile,CKUP,15,1,I,14,1,MD1,13,1,BITLEN,12,1,START,7,1,TSEND,3,1,TRECV,2,1,SCLOCKHZ,1,1,SCLOCK,0,1,,, -0x128,,SIOCNT_MULTI,16,rw,EXI,volatile,CKUP,15,1,I,14,1,MD1,13,1,MD0,12,1,START,7,1,ERROR,6,1,MULTIID,4,2,SDMON,3,1,SIMON,2,1,BAUD,0,2 +0x102,,TM0CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,PS,0,2,,,,,,,,,,,,,,,,,, +0x104,,TM1CNT_L,16,rw,OS,volatile,TIMER1CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x106,,TM1CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,, +0x108,,TM2CNT_L,16,rw,OS,volatile,TIMER2CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x10a,,TM2CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,, +0x10c,,TM3CNT_L,16,rw,OS,volatile,TIMER2CNT,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x10e,,TM3CNT_H,16,rw,OS,volatile,E,7,1,I,6,1,CH,2,1,PS,0,2,,,,,,,,,,,,,,, +#SIO ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"#レジスタ0x128,0x12aは状況でビットの意味が大きく変わるので多重に定義してあります。",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x120,,SIODATA32,32,rw,EXI,volatile,H,16,16,L,0,16,,,,,,,,,,,,,,,,,,,,, +0x120,,SIOMULTI0,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x122,,SIOMULTI1,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x124,,SIOMULTI2,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x126,,SIOMULTI3,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,, +0x128,,SIOCNT,16,rw,EXI,volatile,CKUP,15,1,I,14,1,MD1,13,1,BITLEN,12,1,START,7,1,TSEND,3,1,TRECV,2,1,SCLOCKHZ,1,1,SCLOCK,0,1 +0x128,,SIOCNT_MULTI,16,rw,EXI,volatile,CKUP,15,1,I,14,1,MD1,13,1,MD0,12,1,START,7,1,ERROR,6,1,MULTIID,4,2,SDMON,3,1,SIMON,2,1,BAUD,0,2,,,,,,,,,,,,,,,,,, 0x128,,SIOCNT_UART,16,rw,EXI,volatile,CKUP,15,1,MD1,13,1,MD0,12,1,RECVEF,11,1,SENDEF,10,1,PARITYEF,9,1,FIFOEF,8,1,DATALEN,7,1,ERROR,6,1,RECV,5,1,SEND,4,1,PARITYCNT,3,1,CTS,2,1,BAUD,0,2,,,,,, 0x12a,,SIOCNT_H,16,rw,EXI,volatile,RFFUL,15,1,TFEMP,14,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x12a,,SIOMLT_SEND,16,rw,EXI,volatile,DATA,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -157,7 +158,7 @@ 0x138,!defined(SDK_TS),RCNT1,16,rw,EXI,volatile,DIR_RB,7,1,DIR_RA,6,1,DIR_R9,5,1,DIR_R8,4,1,DATA_RB,3,1,DATA_RA,2,1,DATA_R9,1,1,DATA_R8,0,1,,,,,,,,,,,,,,,,,,,,,,,, 0x138,defined(SDK_TS),RCNT1,16,rw,EXI,volatile,DIR_RF,15,1,DIR_RE,14,1,DIR_RD,13,1,DIR_RC,12,1,DATA_RF,11,1,DATA_RE,10,1,DATA_RD,9,1,DATA_RC,8,1,DIR_RB,7,1,DIR_RA,6,1,DIR_R9,5,1,DIR_R8,4,1,DATA_RB,3,1,DATA_RA,2,1,DATA_R9,1,1,DATA_R8,0,1 #JOY,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x140,,JOYCNT,16,rw,EXI,volatile,MOD,7,1,I,6,1,SEND,2,1,RECV,1,1,RESET,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x140,,JOYCNT,16,rw,EXI,volatile,MOD,7,1,I,6,1,SEND,2,1,RECV,1,1,RESET,0,1,,,,,,,,,,,, 0x150,,JOY_RECV,32,rw,EXI,volatile,RECVDATA,0,32,,,,,,,,,,,,,,,,,,,,,,,, 0x154,,JOY_TRANS,32,rw,EXI,volatile,SENDDATA,0,32,,,,,,,,,,,,,,,,,,,,,,,, 0x158,,JOY_STAT,16,rw,EXI,volatile,GEN,4,2,SSTATUS,3,1,RSTATUS,1,1,,,,,,,,,,,,,,,,,, @@ -173,39 +174,39 @@ 0x1a4,,MCCNT1,32,rw,MI,volatile,START,31,1,WR,30,1,CT,27,1,PC,24,3,RDY,23,1,L2,16,6,L1,0,13,,,,,, 0x1a8,,MCCMD0,32,w,MI,volatile,CMD3,24,8,CMD2,16,8,CMD1,8,8,CMD0,0,8,,,,,,,,,,,,,,, 0x1ac,,MCCMD1,32,w,MI,volatile,CMD7,24,8,CMD6,16,8,CMD5,8,8,CMD4,0,8,,,,,,,,,,,,,,, -#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21a0,,MCCNT0_B,16,rw,MI,volatile,E,15,1,I,14,1,SEL,13,1,BUSY,7,1,MODE,6,1,BAUDRATE,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21a2,,MCD0_B,16,rw,MI,volatile,DATA,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x102010,,MCD1_B,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21a4,,MCCNT1_B,32,rw,MI,volatile,START,31,1,WR,30,1,CT,27,1,PC,24,3,RDY,23,1,L2,16,6,L1,0,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21a8,,MCCMD0_B,32,w,MI,volatile,CMD3,24,8,CMD2,16,8,CMD1,8,8,CMD0,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21ac,,MCCMD1_B,32,w,MI,volatile,CMD7,24,8,CMD6,16,8,CMD5,8,8,CMD4,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -# twl p220 〜 p221,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x1c0,!defined(SDK_TS),SPICNT,16,rw,SPI,volatile,E,15,1,I,14,1,SEL,13,1,MODE,12,1,BUSY,7,1,BAUDRATE,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x1c0,defined(SDK_TS),SPICNT,16,rw,SPI,volatile,E,15,1,I,14,1,MODE,11,1,CLKMODE,10,1,SEL,8,2,BUSY,7,1,BAUDRATE,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x1c2,,SPID,16,rw,SPI,volatile,DATA,0,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#外部メモリ nitro p19-26 / twl p223,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x204,,EXMEMCNT_L,16,rw,MI,volatile,EP,15,1,MP,11,1,MP_B,10,1,CP,7,1,PHI,5,2,ROM2nd,4,1,ROM1st,2,2,RAM,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x206,,EXMEMCNT_H,16,rw,MI,volatile,PHI33M,7,1,WW1_2nd,5,1,WW1_1st,3,2,WW0_2nd,2,1,WW0_1st,0,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#割り込み twl p141 〜 149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x208,,IME,16,rw,OS,volatile,IME,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x21a0,,MCCNT0_B,16,rw,MI,volatile,E,15,1,I,14,1,SEL,13,1,BUSY,7,1,MODE,6,1,BAUDRATE,0,2,,,,,, +0x21a2,,MCD0_B,16,rw,MI,volatile,DATA,0,8,,,,,,,,,,,,,,,,,,,,, +0x102010,,MCD1_B,32,rw,MI,volatile,,,,,,,,,,,,,,,,,,,,,,,, +0x21a4,,MCCNT1_B,32,rw,MI,volatile,START,31,1,WR,30,1,CT,27,1,PC,24,3,RDY,23,1,L2,16,6,L1,0,13,,, +0x21a8,,MCCMD0_B,32,w,MI,volatile,CMD3,24,8,CMD2,16,8,CMD1,8,8,CMD0,0,8,,,,,,,,,,,, +0x21ac,,MCCMD1_B,32,w,MI,volatile,CMD7,24,8,CMD6,16,8,CMD5,8,8,CMD4,0,8,,,,,,,,,,,, +# twl p220 〜 p221,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x1c0,!defined(SDK_TS),SPICNT,16,rw,SPI,volatile,E,15,1,I,14,1,SEL,13,1,MODE,12,1,BUSY,7,1,BAUDRATE,0,3,,,,,, +0x1c0,defined(SDK_TS),SPICNT,16,rw,SPI,volatile,E,15,1,I,14,1,MODE,11,1,CLKMODE,10,1,SEL,8,2,BUSY,7,1,BAUDRATE,0,2,,, +0x1c2,,SPID,16,rw,SPI,volatile,DATA,0,8,,,,,,,,,,,,,,,,,,,,, +#外部メモリ nitro p19-26 / twl p223,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x204,,EXMEMCNT_L,16,rw,MI,volatile,EP,15,1,MP,11,1,MP_B,10,1,CP,7,1,PHI,5,2,ROM2nd,4,1,ROM1st,2,2,RAM,0,2 +0x206,,EXMEMCNT_H,16,rw,MI,volatile,PHI33M,7,1,WW1_2nd,5,1,WW1_1st,3,2,WW0_2nd,2,1,WW0_1st,0,2,,,,,,,,, +#割り込み twl p141 〜 149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x208,,IME,16,rw,OS,volatile,IME,0,1,,,,,,,,,,,,,,,,,,,,, 0x210,,IE,32,rw,OS,volatile,D7,31,1,D6,30,1,D5,29,1,D4,28,1,MI_B,27,1,MC_B,26,1,J_TX,25,1,WL,24,1,SPI,23,1,PM,22,1,J_RX,21,1,MI,20,1,MC,19,1,IFN,18,1,IFE,17,1,A7,16,1,MC_B_DET,15,1,MC_DET,14,1,I_D,13,1,K,12,1,D3,11,1,D2,10,1,D1,9,1,D0,8,1,T3,6,1,T2,5,1,T1,4,1,T0,3,1,VE,2,1,HB,1,1,VB,0,1 -0x214,,IF,32,rw,OS,volatile,D7,31,1,D6,30,1,D5,29,1,D4,28,1,MI_B,27,1,MC_B,26,1,J_TX,25,1,SPI,23,1,PM,22,1,MI,20,1,J_RX,21,1,MC,19,1,IFN,18,1,IFE,17,1,A7,16,1,MC_B_DET,15,1,MC_DET,14,1,I_D,13,1,K,12,1,D3,11,1,D2,10,1,D1,9,1,D0,8,1,T3,6,1,T2,5,1,T1,4,1,T0,3,1,VE,2,1,HB,1,1,VB,0,1 -0x218,,IE2,32,rw,OS,volatile,MIC,14,1,I2C,13,1,AES,12,1,WSDIO,11,1,WSD,10,1,SDIO,9,1,SD,8,1,IO33_3,7,1,IO33_2,6,1,IO33_1,5,1,IO33_0,4,1,IO18_2,2,1,IO18_1,1,1,IO18_0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x21c,,IF2,32,rw,OS,volatile,MIC,14,1,I2C,13,1,AES,12,1,WSDIO,11,1,WSD,10,1,SDIO,9,1,SD,8,1,IO33_3,7,1,IO33_2,6,1,IO33_1,5,1,IO33_0,4,1,IO18_2,2,1,IO18_1,1,1,IO18_0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#本体内メモリ nitro p194,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x240,,WVRAMSTAT,16,rw,MI,volatile,WRAM_1,9,1,WRAM_0,8,1,VRAM_D,1,1,VRAM_C,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#PAUSE page 19-43,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x300,,PAUSE,16,rw,OS,volatile,MOD,14,2,CHK,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#パワーコントロール nitro p200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x304,,POWCNT,16,rw,SND,volatile,EWL,1,1,SPE,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -#サウンド,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x400,,SOUND0CNT,32,rw,SND,volatile,E,31,1,FORMAT,29,2,REPEAT,27,2,DUTY,24,3,PAN,16,7,HOLD,15,1,SHIFT,8,2,VOLUME,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x400,,SOUND0CNT_VOL_16,16,rw,SND,volatile,HOLD,15,1,SHIFT,8,2,VOLUME,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x400,,SOUND0CNT_VOL,8,rw,SND,volatile,VOLUME,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x402,,SOUND0CNT_PAN,8,rw,SND,volatile,PAN,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x403,,SOUND0CNT_8,8,rw,SND,volatile,E,7,1,FORMAT,5,2,REPEAT,3,2,DUTY,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0x404,,SOUND0SAD,32,w,SND,volatile,SRC,0,27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x214,,IF,32,rw,OS,volatile,D7,31,1,D6,30,1,D5,29,1,D4,28,1,MI_B,27,1,MC_B,26,1,J_TX,25,1,SPI,23,1,PM,22,1,MI,20,1,J_RX,21,1,MC,19,1,IFN,18,1,IFE,17,1,A7,16,1,MC_B_DET,15,1,MC_DET,14,1,I_D,13,1,K,12,1,D3,11,1,D2,10,1,D1,9,1,D0,8,1,T3,6,1,T2,5,1,T1,4,1,T0,3,1,VE,2,1,HB,1,1,VB,0,1,,, +0x218,,IE2,32,rw,OS,volatile,MIC,14,1,I2C,13,1,AES,12,1,WSDIO,11,1,WSD,10,1,SDIO,9,1,SD,8,1,IO33_3,7,1,IO33_2,6,1,IO33_1,5,1,IO33_0,4,1,IO18_2,2,1,IO18_1,1,1,IO18_0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x21c,,IF2,32,rw,OS,volatile,MIC,14,1,I2C,13,1,AES,12,1,WSDIO,11,1,WSD,10,1,SDIO,9,1,SD,8,1,IO33_3,7,1,IO33_2,6,1,IO33_1,5,1,IO33_0,4,1,IO18_2,2,1,IO18_1,1,1,IO18_0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#本体内メモリ nitro p194,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x240,,WVRAMSTAT,16,rw,MI,volatile,WRAM_1,9,1,WRAM_0,8,1,VRAM_D,1,1,VRAM_C,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#PAUSE page 19-43,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x300,,PAUSE,16,rw,OS,volatile,MOD,14,2,CHK,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#パワーコントロール nitro p200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x304,,POWCNT,16,rw,SND,volatile,EWL,1,1,SPE,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +#サウンド,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x400,,SOUND0CNT,32,rw,SND,volatile,E,31,1,FORMAT,29,2,REPEAT,27,2,DUTY,24,3,PAN,16,7,HOLD,15,1,SHIFT,8,2,VOLUME,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x400,,SOUND0CNT_VOL_16,16,rw,SND,volatile,HOLD,15,1,SHIFT,8,2,VOLUME,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x400,,SOUND0CNT_VOL,8,rw,SND,volatile,VOLUME,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x402,,SOUND0CNT_PAN,8,rw,SND,volatile,PAN,0,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x403,,SOUND0CNT_8,8,rw,SND,volatile,E,7,1,FORMAT,5,2,REPEAT,3,2,DUTY,0,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0x404,,SOUND0SAD,32,w,SND,volatile,SRC,0,27,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x408,,SOUND0TMR,16,w,SND,volatile,TIMER,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x40a,,SOUND0RPT_PT,16,w,SND,volatile,POINT,0,16,,,,,,,,,,,,,,,,,,,,,,,,,,, 0x40c,,SOUND0RPT_LEN,32,w,SND,volatile,LEN,0,22,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/build/libraries/mi/ARM7/Makefile b/build/libraries/mi/ARM7/Makefile index 66a1834..5ac5306 100644 --- a/build/libraries/mi/ARM7/Makefile +++ b/build/libraries/mi/ARM7/Makefile @@ -33,7 +33,9 @@ SRCDIR += $(TWL_NITROSDK_ROOT)/build/libraries/mi/common/src \ INCDIR = ../common INCDIR += $(TWL_NITROSDK_ROOT)/build/libraries/mi/common/include \ -SRCS = mi_dma.c \ +SRCS = \ + mi_dma.c \ + mi_edma.c \ mi_dma_hblank.c \ mi_dma_vblank.c \ mi_dma_mainmem.c \ diff --git a/build/libraries/mi/ARM9/Makefile b/build/libraries/mi/ARM9/Makefile index 7fa323c..5138f6d 100644 --- a/build/libraries/mi/ARM9/Makefile +++ b/build/libraries/mi/ARM9/Makefile @@ -31,6 +31,7 @@ INCDIR += $(TWL_NITROSDK_ROOT)/build/libraries/mi/common/include \ SRCS = mi_wram.c \ mi_dma.c \ + mi_edma.c \ mi_dma_hblank.c \ mi_dma_vblank.c \ mi_dma_mainmem.c \ diff --git a/include/twl.h b/include/twl.h index 25171bd..3d6fa0f 100644 --- a/include/twl.h +++ b/include/twl.h @@ -18,7 +18,7 @@ #include -//#include +#include #include /* TWL_H_ */ diff --git a/include/twl/ioreg.h b/include/twl/ioreg.h new file mode 100644 index 0000000..e74926c --- /dev/null +++ b/include/twl/ioreg.h @@ -0,0 +1,18 @@ +/*---------------------------------------------------------------------------* + Project: TwlSDK - IO Register List - + File: twl/ioreg.h + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + *---------------------------------------------------------------------------*/ +#ifdef SDK_ARM9 +#include // should be twl/... +#else //SDK_ARM7 +#include // should be twl/... +#endif diff --git a/include/twl/mi.h b/include/twl/mi.h new file mode 100644 index 0000000..7d1ee1a --- /dev/null +++ b/include/twl/mi.h @@ -0,0 +1,35 @@ +/*---------------------------------------------------------------------------* + Project: TwlSDK - include - MI + File: mi.h + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Log: $ + $NoKeywords: $ + *---------------------------------------------------------------------------*/ + +#ifndef TWL_MI_H_ +#define TWL_MI_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +/* TWL_MI_H_ */ +#endif diff --git a/include/twl/mi/ex_dma.h b/include/twl/mi/ex_dma.h new file mode 100644 index 0000000..166fff9 --- /dev/null +++ b/include/twl/mi/ex_dma.h @@ -0,0 +1,564 @@ +/*---------------------------------------------------------------------------* + Project: TwlSDK - MI - include + File: edma.h + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Log: $ + $NoKeywords: $ + *---------------------------------------------------------------------------*/ +#ifndef TWL_MI_DMA_H_ +#define TWL_MI_DMA_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +//---------------------------------------------------------------------- +//---- DMA channel +typedef enum +{ + MI_EDMA_NONE = -1, + MI_EDMA_0 = 0, + MI_EDMA_1 = 1, + MI_EDMA_2 = 2, + MI_EDMA_3 = 3, + MI_EDMA_NO_MIN = MI_EDMA_0, + MI_EDMA_NO_MAX = MI_EDMA_3 +} +MIExDmaNo; + +//---- timing +typedef enum +{ + MI_EDMA_TIMING_IMM = (0x10UL << REG_MI_DMA4CNT_TIMING_SHIFT), // start immediately + MI_EDMA_TIMING_TM0 = (0x0UL << REG_MI_DMA4CNT_TIMING_SHIFT), // timer 0 + MI_EDMA_TIMING_TM1 = (0x1UL << REG_MI_DMA4CNT_TIMING_SHIFT), // timer 1 + MI_EDMA_TIMING_TM2 = (0x2UL << REG_MI_DMA4CNT_TIMING_SHIFT), // timer 2 + MI_EDMA_TIMING_TM3 = (0x3UL << REG_MI_DMA4CNT_TIMING_SHIFT), // timer 3 + MI_EDMA_TIMING_V_BLANK = (0x4UL << REG_MI_DMA4CNT_TIMING_SHIFT), // VBlank + MI_EDMA_TIMING_GCD = (0x7UL << REG_MI_DMA4CNT_TIMING_SHIFT), // card + MI_EDMA_TIMING_SD = (0x8UL << REG_MI_DMA4CNT_TIMING_SHIFT), // SD + MI_EDMA_TIMING_CAMERA = (0x9UL << REG_MI_DMA4CNT_TIMING_SHIFT), // camera + MI_EDMA_TIMING_AES_IN = (0xAUL << REG_MI_DMA4CNT_TIMING_SHIFT), // AES input + MI_EDMA_TIMING_AES_OUT = (0xBUL << REG_MI_DMA4CNT_TIMING_SHIFT), // AES output + MI_EDMA_TIMING_MIC = (0xCUL << REG_MI_DMA4CNT_TIMING_SHIFT) // MIC +} +MIEDmaTiming; + +//---- block size +typedef enum +{ + MI_EDMA_BLOCK_4B = (0x0UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_8B = (0x1UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_16B = (0x2UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_32B = (0x3UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_64B = (0x4UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_128B = (0x5UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_256B = (0x6UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_512B = (0x7UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_1KB = (0x8UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_2KB = (0x9UL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_4KB = (0xAUL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_8KB = (0xBUL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_16KB = (0xCUL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_32KB = (0xDUL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_64KB = (0xEUL << REG_MI_DMA4CNT_BSIZE_SHIFT), + MI_EDMA_BLOCK_128KB = (0xFUL << REG_MI_DMA4CNT_BSIZE_SHIFT) +} +MIEDmaBlockSize; + +//---- pre-scaler +typedef enum +{ + MI_EDMA_PRESCALER_1 = (0UL << REG_MI_DMA4BCNT_PS_SHIFT), // x 1 + MI_EDMA_PRESCALER_4 = (1UL << REG_MI_DMA4BCNT_PS_SHIFT), // x 4 + MI_EDMA_PRESCALER_16 = (2UL << REG_MI_DMA4BCNT_PS_SHIFT), // x 16 + MI_EDMA_PRESCALER_64 = (3UL << REG_MI_DMA4BCNT_PS_SHIFT) // x 64 +} +MIEDmaPrescaler; + +//---- yield cycle +typedef enum +{ + MI_EDMAGBL_YLD_CYCLE_0 = (0x0UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_1 = (0x1UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_2 = (0x2UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_4 = (0x3UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_8 = (0x4UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_16 = (0x5UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_32 = (0x6UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_64 = (0x7UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_128 = (0x8UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_256 = (0x9UL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_512 = (0xAUL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_1K = (0xBUL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_2K = (0xCUL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_4K = (0xDUL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_8K = (0xEUL << REG_MI_DMAGBL_YLD_SHIFT), + MI_EDMAGBL_YLD_CYCLE_16K = (0xFUL << REG_MI_DMAGBL_YLD_SHIFT) +} +MIEDmaYieldCycles; + +//---- arbotration +typedef u32 MIEDmaArbitration; + +#define MI_EDMAGBL_ARB_PRIORITY (0UL << REG_MI_DMAGBL_ARB_SHIFT) // arbotration by priority +#define MI_EDMAGBL_ARB_ROUND_ROBIN (1UL << REG_MI_DMAGBL_ARB_SHIFT) // arbotration by round robin + + +//---- registers +typedef struct +{ + const void * src; + void * dest; + u32 totalCount; + u32 wordCount; + u32 blockInterval; + u32 fillData; + u32 ctrl; +} +t_MIEDmaChanRegs; + +typedef volatile t_MIEDmaChanRegs MIEDmaChanRegs; + + +//================================================================================ +// DMA control definition +//================================================================================ +//---- maximum DMA channel No. +#define MI_EDMA_MAX_NUM 3 + +//---- enable +#define MI_EDMA_ENABLE (1UL << REG_MI_DMA4CNT_E_SHIFT) // DMA enable +#define MI_EDMA_IF_ENABLE (1UL << REG_MI_DMA4CNT_I_SHIFT) // interrupt enable + +//---- continuous mode +#define MI_EDMA_CONTINUOUS_OFF (0UL << REG_MI_DMA4CNT_CM_SHIFT) // continuous mode off +#define MI_EDMA_CONTINUOUS_ON (1UL << REG_MI_DMA4CNT_CM_SHIFT) // continuous mode on + +//---- DMA timing +#if 0 +# define MI_EDMA_TIMING_MASK (REG_MI_DMA4CNT_TIMING_MASK) // mask of start field +# define MI_EDMA_TIMING_SHIFT (REG_MI_DMA4CNT_TIMING_SHIFT) // shift of start field +# define MI_EDMA_TIMING_IMM (0UL << REG_MI_DMA4CNT_TIMING_SHIFT) // start immediately +# define MI_EDMA_TIMING_V_BLANK (1UL << REG_MI_DMA4CNT_TIMING_SHIFT) // start by VBlank +# define MI_EDMA_TIMING_CARD (2UL << REG_MI_DMA4CNT_TIMING_SHIFT) // card +# define MI_EDMA_TIMING_WIRELESS (3UL << REG_MI_DMA4CNT_TIMING_SHIFT) // DMA4,2:wireless interrupt +# define MI_EDMA_TIMING_CARTRIDGE MI_DMA_TIMING_WIRELESS // DMA1,3:cartridge warning +#endif + +//---- block size +#define MI_EDMA_BLOCK_SIZE_MASK (REG_MI_DMA4CNT_BSIZE_MASK) // mask of block size +#define MI_EDMA_BLOCK_SIZE_SHIFT (REG_MI_DMA4CNT_BSIZE_SHIFT) // shift of block size + +//---- direction of src/destination address +#define MI_EDMA_SRC_INC (0UL << REG_MI_DMA4CNT_SAR_SHIFT) // increment source address +#define MI_EDMA_SRC_DEC (1UL << REG_MI_DMA4CNT_SAR_SHIFT) // decrement source address +#define MI_EDMA_SRC_FIX (2UL << REG_MI_DMA4CNT_SAR_SHIFT) // fix source address +#define MI_EDMA_SRC_FILLREG (3UL << REG_MI_DMA4CNT_SAR_SHIFT) // source is fill data register +#define MI_EDMA_DEST_INC (0UL << REG_MI_DMA4CNT_DAR_SHIFT) // imcrement destination address +#define MI_EDMA_DEST_DEC (1UL << REG_MI_DMA4CNT_DAR_SHIFT) // decrement destination address +#define MI_EDMA_DEST_FIX (2UL << REG_MI_DMA4CNT_DAR_SHIFT) // fix destination address + +//---- reload of src/destination address +#define MI_EDMA_SRC_RLD_OFF (0UL << REG_MI_DMA4CNT_SRLD_SHIFT) // source address reload off +#define MI_EDMA_SRC_RLD_ON (1UL << REG_MI_DMA4CNT_SRLD_SHIFT) // source address reload on +#define MI_EDMA_DEST_RLD_OFF (0UL << REG_MI_DMA4CNT_DRLD_SHIFT) // destination address reload off +#define MI_EDMA_DEST_RLD_ON (1UL << REG_MI_DMA4CNT_DRLD_SHIFT) // destination address reload on + +//================================================================================ +// DMA block interval control definition +//================================================================================ + +//---- block interval +#define MI_EDMABCNT_INTERVAL_MASK (REG_MI_DMA4BCNT_BI_MASK) // mask of block interval +#define MI_EDMABCNT_INTERVAL_SHIFT (REG_MI_DMA4BCNT_BI_SHIFT) // shift of block interval + +//---- block interval pre-scaler +#define MI_EDMABCNT_PRESCALER_MASK (REG_MI_DMA4BCNT_PS_MASK) // mask of pre-scaler +#define MI_EDMABCNT_PRESCALER_SHIFT (REG_MI_DMA4BCNT_PS_SHIFT) // shift of pre-scaler + + +//================================================================================ +// DMA WAIT +//================================================================================ +/*---------------------------------------------------------------------------* + Name: MIi_IsExDmaBusy + + Description: check whether extended DMA is busy or not + + Arguments: dmaNo : DMA channel No. + + Returns: TRUE if extended DMA is busy, FALSE if not + *---------------------------------------------------------------------------*/ +BOOL MIi_IsExDmaBusy( MIExDmaNo dmaNo ); + +/*---------------------------------------------------------------------------* + Name: MIi_WaitExDma + + Description: wait while extended DMA is busy + + Arguments: dmaNo : DMA channel No. + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_WaitExDma( MIExDmaNo dmaNo ); + +/*---------------------------------------------------------------------------* + Name: MIi_StopExDma + + Description: stop extended DMA + + Arguments: dmaNo : DMA channel No. + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_StopExDma( MIExDmaNo dmaNo ); + +//================================================================================ +// memory operation using DMA +//================================================================================ +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaFill + + Description: fill memory with specified data. + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + data : fill data + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaFill( MIExDmaNo dmaNo, void *dest, u32 data, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaCopy + + Description: copy memory with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaCopy( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaSend + + Description: send data with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaSend( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaRecv + + Description: receive data with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaRecv( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaFillAsync + + Description: fill memory with specified data. + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + data : fill data + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaFillAsync( MIExDmaNo dmaNo, void *dest, u32 data, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaCopyAsync + + Description: copy memory with DMA + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaCopyAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaSendAsync + + Description: send data with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaSendAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaRecvAsync + + Description: receive data with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaRecvAsync( MIExDmaNo dmaNo, const void *src, void *dest, u32 size ); + +//----------------- internel functions ------------------- + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaFillCore + + Description: fill memory with specified data. + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaFillCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaCopyCore + + Description: copy memory with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaCopyCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaSendCore + + Description: copy memory with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaSendCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaRecvCore + + Description: copy memory with DMA + sync version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaRecvCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaFillAsyncCore + + Description: fill memory with specified data. + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaFillAsyncCore( MIExDmaNo dmaNo, void *dest, u32 data, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaCopyAsyncCore + + Description: copy memory with DMA + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaCopyAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaSendAsyncCore + + Description: copy memory with DMA + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaSendAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaRecvAsyncCore + + Description: copy memory with DMA + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaRecvAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_ExDmaBypassAsyncCore + + Description: copy memory with DMA + async version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_ExDmaBypassAsyncCore( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing ); + +/*---------------------------------------------------------------------------* + Name: MIi_SetDmaParams + + Description: copy memory with DMA + sync 32bit version + + Arguments: dmaNo : DMA channel No. + dest : destination address + src : source address + size : size (byte) + blockSize : block size + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_SetDmaParams( MIExDmaNo dmaNo, const void *src, void *dest, u32 size, u32 oneShotSize, + MIEDmaBlockSize blockSize, u32 interval, MIEDmaPrescaler prescale, + u32 continuous, u32 srcRld, u32 destRld, + MIEDmaTiming timing, + u32 fillData, u32 srcDir, u32 destDir); + +/*---------------------------------------------------------------------------* + Name: MIi_SetExDmaArbiter + + Description: set DMA arbitration + + Arguments: arb : arbitration algorism + yld : yield cycles for round robin + + Returns: None + *---------------------------------------------------------------------------*/ +void MIi_SetExDmaArbiter( MIEDmaArbitration arb, MIEDmaYieldCycles yld ); + + +#ifdef __cplusplus +} /* extern "C" */ + +#endif + +/* TWL_MI_DMA_H_ */ +#endif diff --git a/include/twl/mi/ex_wram.h b/include/twl/mi/ex_wram.h new file mode 100644 index 0000000..6787134 --- /dev/null +++ b/include/twl/mi/ex_wram.h @@ -0,0 +1,93 @@ +/*---------------------------------------------------------------------------* + Project: TwlSDK - MI - include + File: ex_wram.h + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Log: $ + $NoKeywords: $ + *---------------------------------------------------------------------------*/ + +#ifndef TWL_MI_EXWRAM_H_ +#define TWL_MI_EXWRAM_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +//---------------------------------------------------------------- +// enum definition +// +typedef enum +{ + MI_WRAM_A_ARM9 = 0 << REG_MI_WRAM_A0_MST_SHIFT, + MI_WRAM_A_ARM7 = 1 << REG_MI_WRAM_A0_MST_SHIFT +} +MIWramA; + +typedef enum +{ + MI_WRAM_B_ARM9 = 0 << REG_MI_WRAM_B0_MST_SHIFT, + MI_WRAM_B_ARM7 = 1 << REG_MI_WRAM_B0_MST_SHIFT, + MI_WRAM_B_DSP = 2 << REG_MI_WRAM_B0_MST_SHIFT +} +MIWramB; + +typedef enum +{ + MI_WRAM_C_ARM9 = 0 << REG_MI_WRAM_C0_MST_SHIFT, + MI_WRAM_C_ARM7 = 1 << REG_MI_WRAM_C0_MST_SHIFT, + MI_WRAM_C_DSP = 2 << REG_MI_WRAM_C0_MST_SHIFT +} +MIWramC; + +typedef enum +{ + MI_WRAM_A_OFS_0KB = 0 << REG_MI_WRAM_A0_OFS_SHIFT, + MI_WRAM_A_OFS_64KB = 1 << REG_MI_WRAM_A0_OFS_SHIFT, + MI_WRAM_A_OFS_128KB = 2 << REG_MI_WRAM_A0_OFS_SHIFT, + MI_WRAM_A_OFS_192KB = 1 << REG_MI_WRAM_A0_OFS_SHIFT +} +MIOfsWramA; + +typedef enum +{ + MI_WRAM_B_OFS_0KB = 0 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_32KB = 1 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_64KB = 2 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_96KB = 3 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_128KB = 4 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_160KB = 5 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_192KB = 6 << REG_MI_WRAM_B0_OFS_SHIFT, + MI_WRAM_B_OFS_224KB = 7 << REG_MI_WRAM_B0_OFS_SHIFT +} +MIOfsWramB; + +typedef enum +{ + MI_WRAM_C_OFS_0KB = 0 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_32KB = 1 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_64KB = 2 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_96KB = 3 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_128KB = 4 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_160KB = 5 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_192KB = 6 << REG_MI_WRAM_C0_OFS_SHIFT, + MI_WRAM_C_OFS_224KB = 7 << REG_MI_WRAM_C0_OFS_SHIFT +} +MIOfsWramC; + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +/* TWL_MI_EXWRAM_H_ */ +#endif