1#ifndef __dma_defs_h 2#define __dma_defs_h 3 4/* 5 * This file is autogenerated from 6 * file: ../../inst/dma/inst/dma_common/rtl/dma_regdes.r 7 * id: dma_regdes.r,v 1.39 2005/02/10 14:07:23 janb Exp 8 * last modfied: Mon Apr 11 16:06:51 2005 9 * 10 * by /n/asic/design/tools/rdesc/src/rdes2c --outfile dma_defs.h ../../inst/dma/inst/dma_common/rtl/dma_regdes.r 11 * id: $Id: dma_defs.h,v 1.7 2005/04/24 18:30:58 starvik Exp $ 12 * Any changes here will be lost. 13 * 14 * -*- buffer-read-only: t -*- 15 */ 16/* Main access macros */ 17#ifndef REG_RD 18#define REG_RD( scope, inst, reg ) \ 19 REG_READ( reg_##scope##_##reg, \ 20 (inst) + REG_RD_ADDR_##scope##_##reg ) 21#endif 22 23#ifndef REG_WR 24#define REG_WR( scope, inst, reg, val ) \ 25 REG_WRITE( reg_##scope##_##reg, \ 26 (inst) + REG_WR_ADDR_##scope##_##reg, (val) ) 27#endif 28 29#ifndef REG_RD_VECT 30#define REG_RD_VECT( scope, inst, reg, index ) \ 31 REG_READ( reg_##scope##_##reg, \ 32 (inst) + REG_RD_ADDR_##scope##_##reg + \ 33 (index) * STRIDE_##scope##_##reg ) 34#endif 35 36#ifndef REG_WR_VECT 37#define REG_WR_VECT( scope, inst, reg, index, val ) \ 38 REG_WRITE( reg_##scope##_##reg, \ 39 (inst) + REG_WR_ADDR_##scope##_##reg + \ 40 (index) * STRIDE_##scope##_##reg, (val) ) 41#endif 42 43#ifndef REG_RD_INT 44#define REG_RD_INT( scope, inst, reg ) \ 45 REG_READ( int, (inst) + REG_RD_ADDR_##scope##_##reg ) 46#endif 47 48#ifndef REG_WR_INT 49#define REG_WR_INT( scope, inst, reg, val ) \ 50 REG_WRITE( int, (inst) + REG_WR_ADDR_##scope##_##reg, (val) ) 51#endif 52 53#ifndef REG_RD_INT_VECT 54#define REG_RD_INT_VECT( scope, inst, reg, index ) \ 55 REG_READ( int, (inst) + REG_RD_ADDR_##scope##_##reg + \ 56 (index) * STRIDE_##scope##_##reg ) 57#endif 58 59#ifndef REG_WR_INT_VECT 60#define REG_WR_INT_VECT( scope, inst, reg, index, val ) \ 61 REG_WRITE( int, (inst) + REG_WR_ADDR_##scope##_##reg + \ 62 (index) * STRIDE_##scope##_##reg, (val) ) 63#endif 64 65#ifndef REG_TYPE_CONV 66#define REG_TYPE_CONV( type, orgtype, val ) \ 67 ( { union { orgtype o; type n; } r; r.o = val; r.n; } ) 68#endif 69 70#ifndef reg_page_size 71#define reg_page_size 8192 72#endif 73 74#ifndef REG_ADDR 75#define REG_ADDR( scope, inst, reg ) \ 76 ( (inst) + REG_RD_ADDR_##scope##_##reg ) 77#endif 78 79#ifndef REG_ADDR_VECT 80#define REG_ADDR_VECT( scope, inst, reg, index ) \ 81 ( (inst) + REG_RD_ADDR_##scope##_##reg + \ 82 (index) * STRIDE_##scope##_##reg ) 83#endif 84 85/* C-code for register scope dma */ 86 87/* Register rw_data, scope dma, type rw */ 88typedef unsigned int reg_dma_rw_data; 89#define REG_RD_ADDR_dma_rw_data 0 90#define REG_WR_ADDR_dma_rw_data 0 91 92/* Register rw_data_next, scope dma, type rw */ 93typedef unsigned int reg_dma_rw_data_next; 94#define REG_RD_ADDR_dma_rw_data_next 4 95#define REG_WR_ADDR_dma_rw_data_next 4 96 97/* Register rw_data_buf, scope dma, type rw */ 98typedef unsigned int reg_dma_rw_data_buf; 99#define REG_RD_ADDR_dma_rw_data_buf 8 100#define REG_WR_ADDR_dma_rw_data_buf 8 101 102/* Register rw_data_ctrl, scope dma, type rw */ 103typedef struct { 104 unsigned int eol : 1; 105 unsigned int dummy1 : 2; 106 unsigned int out_eop : 1; 107 unsigned int intr : 1; 108 unsigned int wait : 1; 109 unsigned int dummy2 : 26; 110} reg_dma_rw_data_ctrl; 111#define REG_RD_ADDR_dma_rw_data_ctrl 12 112#define REG_WR_ADDR_dma_rw_data_ctrl 12 113 114/* Register rw_data_stat, scope dma, type rw */ 115typedef struct { 116 unsigned int dummy1 : 3; 117 unsigned int in_eop : 1; 118 unsigned int dummy2 : 28; 119} reg_dma_rw_data_stat; 120#define REG_RD_ADDR_dma_rw_data_stat 16 121#define REG_WR_ADDR_dma_rw_data_stat 16 122 123/* Register rw_data_md, scope dma, type rw */ 124typedef struct { 125 unsigned int md : 16; 126 unsigned int dummy1 : 16; 127} reg_dma_rw_data_md; 128#define REG_RD_ADDR_dma_rw_data_md 20 129#define REG_WR_ADDR_dma_rw_data_md 20 130 131/* Register rw_data_md_s, scope dma, type rw */ 132typedef struct { 133 unsigned int md_s : 16; 134 unsigned int dummy1 : 16; 135} reg_dma_rw_data_md_s; 136#define REG_RD_ADDR_dma_rw_data_md_s 24 137#define REG_WR_ADDR_dma_rw_data_md_s 24 138 139/* Register rw_data_after, scope dma, type rw */ 140typedef unsigned int reg_dma_rw_data_after; 141#define REG_RD_ADDR_dma_rw_data_after 28 142#define REG_WR_ADDR_dma_rw_data_after 28 143 144/* Register rw_ctxt, scope dma, type rw */ 145typedef unsigned int reg_dma_rw_ctxt; 146#define REG_RD_ADDR_dma_rw_ctxt 32 147#define REG_WR_ADDR_dma_rw_ctxt 32 148 149/* Register rw_ctxt_next, scope dma, type rw */ 150typedef unsigned int reg_dma_rw_ctxt_next; 151#define REG_RD_ADDR_dma_rw_ctxt_next 36 152#define REG_WR_ADDR_dma_rw_ctxt_next 36 153 154/* Register rw_ctxt_ctrl, scope dma, type rw */ 155typedef struct { 156 unsigned int eol : 1; 157 unsigned int dummy1 : 3; 158 unsigned int intr : 1; 159 unsigned int dummy2 : 1; 160 unsigned int store_mode : 1; 161 unsigned int en : 1; 162 unsigned int dummy3 : 24; 163} reg_dma_rw_ctxt_ctrl; 164#define REG_RD_ADDR_dma_rw_ctxt_ctrl 40 165#define REG_WR_ADDR_dma_rw_ctxt_ctrl 40 166 167/* Register rw_ctxt_stat, scope dma, type rw */ 168typedef struct { 169 unsigned int dummy1 : 7; 170 unsigned int dis : 1; 171 unsigned int dummy2 : 24; 172} reg_dma_rw_ctxt_stat; 173#define REG_RD_ADDR_dma_rw_ctxt_stat 44 174#define REG_WR_ADDR_dma_rw_ctxt_stat 44 175 176/* Register rw_ctxt_md0, scope dma, type rw */ 177typedef struct { 178 unsigned int md0 : 16; 179 unsigned int dummy1 : 16; 180} reg_dma_rw_ctxt_md0; 181#define REG_RD_ADDR_dma_rw_ctxt_md0 48 182#define REG_WR_ADDR_dma_rw_ctxt_md0 48 183 184/* Register rw_ctxt_md0_s, scope dma, type rw */ 185typedef struct { 186 unsigned int md0_s : 16; 187 unsigned int dummy1 : 16; 188} reg_dma_rw_ctxt_md0_s; 189#define REG_RD_ADDR_dma_rw_ctxt_md0_s 52 190#define REG_WR_ADDR_dma_rw_ctxt_md0_s 52 191 192/* Register rw_ctxt_md1, scope dma, type rw */ 193typedef unsigned int reg_dma_rw_ctxt_md1; 194#define REG_RD_ADDR_dma_rw_ctxt_md1 56 195#define REG_WR_ADDR_dma_rw_ctxt_md1 56 196 197/* Register rw_ctxt_md1_s, scope dma, type rw */ 198typedef unsigned int reg_dma_rw_ctxt_md1_s; 199#define REG_RD_ADDR_dma_rw_ctxt_md1_s 60 200#define REG_WR_ADDR_dma_rw_ctxt_md1_s 60 201 202/* Register rw_ctxt_md2, scope dma, type rw */ 203typedef unsigned int reg_dma_rw_ctxt_md2; 204#define REG_RD_ADDR_dma_rw_ctxt_md2 64 205#define REG_WR_ADDR_dma_rw_ctxt_md2 64 206 207/* Register rw_ctxt_md2_s, scope dma, type rw */ 208typedef unsigned int reg_dma_rw_ctxt_md2_s; 209#define REG_RD_ADDR_dma_rw_ctxt_md2_s 68 210#define REG_WR_ADDR_dma_rw_ctxt_md2_s 68 211 212/* Register rw_ctxt_md3, scope dma, type rw */ 213typedef unsigned int reg_dma_rw_ctxt_md3; 214#define REG_RD_ADDR_dma_rw_ctxt_md3 72 215#define REG_WR_ADDR_dma_rw_ctxt_md3 72 216 217/* Register rw_ctxt_md3_s, scope dma, type rw */ 218typedef unsigned int reg_dma_rw_ctxt_md3_s; 219#define REG_RD_ADDR_dma_rw_ctxt_md3_s 76 220#define REG_WR_ADDR_dma_rw_ctxt_md3_s 76 221 222/* Register rw_ctxt_md4, scope dma, type rw */ 223typedef unsigned int reg_dma_rw_ctxt_md4; 224#define REG_RD_ADDR_dma_rw_ctxt_md4 80 225#define REG_WR_ADDR_dma_rw_ctxt_md4 80 226 227/* Register rw_ctxt_md4_s, scope dma, type rw */ 228typedef unsigned int reg_dma_rw_ctxt_md4_s; 229#define REG_RD_ADDR_dma_rw_ctxt_md4_s 84 230#define REG_WR_ADDR_dma_rw_ctxt_md4_s 84 231 232/* Register rw_saved_data, scope dma, type rw */ 233typedef unsigned int reg_dma_rw_saved_data; 234#define REG_RD_ADDR_dma_rw_saved_data 88 235#define REG_WR_ADDR_dma_rw_saved_data 88 236 237/* Register rw_saved_data_buf, scope dma, type rw */ 238typedef unsigned int reg_dma_rw_saved_data_buf; 239#define REG_RD_ADDR_dma_rw_saved_data_buf 92 240#define REG_WR_ADDR_dma_rw_saved_data_buf 92 241 242/* Register rw_group, scope dma, type rw */ 243typedef unsigned int reg_dma_rw_group; 244#define REG_RD_ADDR_dma_rw_group 96 245#define REG_WR_ADDR_dma_rw_group 96 246 247/* Register rw_group_next, scope dma, type rw */ 248typedef unsigned int reg_dma_rw_group_next; 249#define REG_RD_ADDR_dma_rw_group_next 100 250#define REG_WR_ADDR_dma_rw_group_next 100 251 252/* Register rw_group_ctrl, scope dma, type rw */ 253typedef struct { 254 unsigned int eol : 1; 255 unsigned int tol : 1; 256 unsigned int bol : 1; 257 unsigned int dummy1 : 1; 258 unsigned int intr : 1; 259 unsigned int dummy2 : 2; 260 unsigned int en : 1; 261 unsigned int dummy3 : 24; 262} reg_dma_rw_group_ctrl; 263#define REG_RD_ADDR_dma_rw_group_ctrl 104 264#define REG_WR_ADDR_dma_rw_group_ctrl 104 265 266/* Register rw_group_stat, scope dma, type rw */ 267typedef struct { 268 unsigned int dummy1 : 7; 269 unsigned int dis : 1; 270 unsigned int dummy2 : 24; 271} reg_dma_rw_group_stat; 272#define REG_RD_ADDR_dma_rw_group_stat 108 273#define REG_WR_ADDR_dma_rw_group_stat 108 274 275/* Register rw_group_md, scope dma, type rw */ 276typedef struct { 277 unsigned int md : 16; 278 unsigned int dummy1 : 16; 279} reg_dma_rw_group_md; 280#define REG_RD_ADDR_dma_rw_group_md 112 281#define REG_WR_ADDR_dma_rw_group_md 112 282 283/* Register rw_group_md_s, scope dma, type rw */ 284typedef struct { 285 unsigned int md_s : 16; 286 unsigned int dummy1 : 16; 287} reg_dma_rw_group_md_s; 288#define REG_RD_ADDR_dma_rw_group_md_s 116 289#define REG_WR_ADDR_dma_rw_group_md_s 116 290 291/* Register rw_group_up, scope dma, type rw */ 292typedef unsigned int reg_dma_rw_group_up; 293#define REG_RD_ADDR_dma_rw_group_up 120 294#define REG_WR_ADDR_dma_rw_group_up 120 295 296/* Register rw_group_down, scope dma, type rw */ 297typedef unsigned int reg_dma_rw_group_down; 298#define REG_RD_ADDR_dma_rw_group_down 124 299#define REG_WR_ADDR_dma_rw_group_down 124 300 301/* Register rw_cmd, scope dma, type rw */ 302typedef struct { 303 unsigned int cont_data : 1; 304 unsigned int dummy1 : 31; 305} reg_dma_rw_cmd; 306#define REG_RD_ADDR_dma_rw_cmd 128 307#define REG_WR_ADDR_dma_rw_cmd 128 308 309/* Register rw_cfg, scope dma, type rw */ 310typedef struct { 311 unsigned int en : 1; 312 unsigned int stop : 1; 313 unsigned int dummy1 : 30; 314} reg_dma_rw_cfg; 315#define REG_RD_ADDR_dma_rw_cfg 132 316#define REG_WR_ADDR_dma_rw_cfg 132 317 318/* Register rw_stat, scope dma, type rw */ 319typedef struct { 320 unsigned int mode : 5; 321 unsigned int list_state : 3; 322 unsigned int stream_cmd_src : 8; 323 unsigned int dummy1 : 8; 324 unsigned int buf : 8; 325} reg_dma_rw_stat; 326#define REG_RD_ADDR_dma_rw_stat 136 327#define REG_WR_ADDR_dma_rw_stat 136 328 329/* Register rw_intr_mask, scope dma, type rw */ 330typedef struct { 331 unsigned int group : 1; 332 unsigned int ctxt : 1; 333 unsigned int data : 1; 334 unsigned int in_eop : 1; 335 unsigned int stream_cmd : 1; 336 unsigned int dummy1 : 27; 337} reg_dma_rw_intr_mask; 338#define REG_RD_ADDR_dma_rw_intr_mask 140 339#define REG_WR_ADDR_dma_rw_intr_mask 140 340 341/* Register rw_ack_intr, scope dma, type rw */ 342typedef struct { 343 unsigned int group : 1; 344 unsigned int ctxt : 1; 345 unsigned int data : 1; 346 unsigned int in_eop : 1; 347 unsigned int stream_cmd : 1; 348 unsigned int dummy1 : 27; 349} reg_dma_rw_ack_intr; 350#define REG_RD_ADDR_dma_rw_ack_intr 144 351#define REG_WR_ADDR_dma_rw_ack_intr 144 352 353/* Register r_intr, scope dma, type r */ 354typedef struct { 355 unsigned int group : 1; 356 unsigned int ctxt : 1; 357 unsigned int data : 1; 358 unsigned int in_eop : 1; 359 unsigned int stream_cmd : 1; 360 unsigned int dummy1 : 27; 361} reg_dma_r_intr; 362#define REG_RD_ADDR_dma_r_intr 148 363 364/* Register r_masked_intr, scope dma, type r */ 365typedef struct { 366 unsigned int group : 1; 367 unsigned int ctxt : 1; 368 unsigned int data : 1; 369 unsigned int in_eop : 1; 370 unsigned int stream_cmd : 1; 371 unsigned int dummy1 : 27; 372} reg_dma_r_masked_intr; 373#define REG_RD_ADDR_dma_r_masked_intr 152 374 375/* Register rw_stream_cmd, scope dma, type rw */ 376typedef struct { 377 unsigned int cmd : 10; 378 unsigned int dummy1 : 6; 379 unsigned int n : 8; 380 unsigned int dummy2 : 7; 381 unsigned int busy : 1; 382} reg_dma_rw_stream_cmd; 383#define REG_RD_ADDR_dma_rw_stream_cmd 156 384#define REG_WR_ADDR_dma_rw_stream_cmd 156 385 386 387/* Constants */ 388enum { 389 regk_dma_ack_pkt = 0x00000100, 390 regk_dma_anytime = 0x00000001, 391 regk_dma_array = 0x00000008, 392 regk_dma_burst = 0x00000020, 393 regk_dma_client = 0x00000002, 394 regk_dma_copy_next = 0x00000010, 395 regk_dma_copy_up = 0x00000020, 396 regk_dma_data_at_eol = 0x00000001, 397 regk_dma_dis_c = 0x00000010, 398 regk_dma_dis_g = 0x00000020, 399 regk_dma_idle = 0x00000001, 400 regk_dma_intern = 0x00000004, 401 regk_dma_load_c = 0x00000200, 402 regk_dma_load_c_n = 0x00000280, 403 regk_dma_load_c_next = 0x00000240, 404 regk_dma_load_d = 0x00000140, 405 regk_dma_load_g = 0x00000300, 406 regk_dma_load_g_down = 0x000003c0, 407 regk_dma_load_g_next = 0x00000340, 408 regk_dma_load_g_up = 0x00000380, 409 regk_dma_next_en = 0x00000010, 410 regk_dma_next_pkt = 0x00000010, 411 regk_dma_no = 0x00000000, 412 regk_dma_only_at_wait = 0x00000000, 413 regk_dma_restore = 0x00000020, 414 regk_dma_rst = 0x00000001, 415 regk_dma_running = 0x00000004, 416 regk_dma_rw_cfg_default = 0x00000000, 417 regk_dma_rw_cmd_default = 0x00000000, 418 regk_dma_rw_intr_mask_default = 0x00000000, 419 regk_dma_rw_stat_default = 0x00000101, 420 regk_dma_rw_stream_cmd_default = 0x00000000, 421 regk_dma_save_down = 0x00000020, 422 regk_dma_save_up = 0x00000020, 423 regk_dma_set_reg = 0x00000050, 424 regk_dma_set_w_size1 = 0x00000190, 425 regk_dma_set_w_size2 = 0x000001a0, 426 regk_dma_set_w_size4 = 0x000001c0, 427 regk_dma_stopped = 0x00000002, 428 regk_dma_store_c = 0x00000002, 429 regk_dma_store_descr = 0x00000000, 430 regk_dma_store_g = 0x00000004, 431 regk_dma_store_md = 0x00000001, 432 regk_dma_sw = 0x00000008, 433 regk_dma_update_down = 0x00000020, 434 regk_dma_yes = 0x00000001 435}; 436#endif /* __dma_defs_h */ 437