1/* 2 * DO NOT EDIT - This file is automatically generated 3 * from the following source files: 4 * 5 * $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#120 $ 6 * $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#77 $ 7 */ 8 9#include "aic79xx_osm.h" 10 11static const ahd_reg_parse_entry_t INTSTAT_parse_table[] = { 12 { "SPLTINT", 0x01, 0x01 }, 13 { "CMDCMPLT", 0x02, 0x02 }, 14 { "SEQINT", 0x04, 0x04 }, 15 { "SCSIINT", 0x08, 0x08 }, 16 { "PCIINT", 0x10, 0x10 }, 17 { "SWTMINT", 0x20, 0x20 }, 18 { "BRKADRINT", 0x40, 0x40 }, 19 { "HWERRINT", 0x80, 0x80 }, 20 { "INT_PEND", 0xff, 0xff } 21}; 22 23int 24ahd_intstat_print(u_int regvalue, u_int *cur_col, u_int wrap) 25{ 26 return (ahd_print_register(INTSTAT_parse_table, 9, "INTSTAT", 27 0x01, regvalue, cur_col, wrap)); 28} 29 30static const ahd_reg_parse_entry_t HS_MAILBOX_parse_table[] = { 31 { "ENINT_COALESCE", 0x40, 0x40 }, 32 { "HOST_TQINPOS", 0x80, 0x80 } 33}; 34 35int 36ahd_hs_mailbox_print(u_int regvalue, u_int *cur_col, u_int wrap) 37{ 38 return (ahd_print_register(HS_MAILBOX_parse_table, 2, "HS_MAILBOX", 39 0x0b, regvalue, cur_col, wrap)); 40} 41 42static const ahd_reg_parse_entry_t SEQINTSTAT_parse_table[] = { 43 { "SEQ_SPLTINT", 0x01, 0x01 }, 44 { "SEQ_PCIINT", 0x02, 0x02 }, 45 { "SEQ_SCSIINT", 0x04, 0x04 }, 46 { "SEQ_SEQINT", 0x08, 0x08 }, 47 { "SEQ_SWTMRTO", 0x10, 0x10 } 48}; 49 50int 51ahd_seqintstat_print(u_int regvalue, u_int *cur_col, u_int wrap) 52{ 53 return (ahd_print_register(SEQINTSTAT_parse_table, 5, "SEQINTSTAT", 54 0x0c, regvalue, cur_col, wrap)); 55} 56 57static const ahd_reg_parse_entry_t INTCTL_parse_table[] = { 58 { "SPLTINTEN", 0x01, 0x01 }, 59 { "SEQINTEN", 0x02, 0x02 }, 60 { "SCSIINTEN", 0x04, 0x04 }, 61 { "PCIINTEN", 0x08, 0x08 }, 62 { "AUTOCLRCMDINT", 0x10, 0x10 }, 63 { "SWTIMER_START", 0x20, 0x20 }, 64 { "SWTMINTEN", 0x40, 0x40 }, 65 { "SWTMINTMASK", 0x80, 0x80 } 66}; 67 68int 69ahd_intctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 70{ 71 return (ahd_print_register(INTCTL_parse_table, 8, "INTCTL", 72 0x18, regvalue, cur_col, wrap)); 73} 74 75static const ahd_reg_parse_entry_t DFCNTRL_parse_table[] = { 76 { "DIRECTIONEN", 0x01, 0x01 }, 77 { "FIFOFLUSH", 0x02, 0x02 }, 78 { "FIFOFLUSHACK", 0x02, 0x02 }, 79 { "DIRECTION", 0x04, 0x04 }, 80 { "DIRECTIONACK", 0x04, 0x04 }, 81 { "HDMAEN", 0x08, 0x08 }, 82 { "HDMAENACK", 0x08, 0x08 }, 83 { "SCSIEN", 0x20, 0x20 }, 84 { "SCSIENACK", 0x20, 0x20 }, 85 { "SCSIENWRDIS", 0x40, 0x40 }, 86 { "PRELOADEN", 0x80, 0x80 } 87}; 88 89int 90ahd_dfcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap) 91{ 92 return (ahd_print_register(DFCNTRL_parse_table, 11, "DFCNTRL", 93 0x19, regvalue, cur_col, wrap)); 94} 95 96static const ahd_reg_parse_entry_t DFSTATUS_parse_table[] = { 97 { "FIFOEMP", 0x01, 0x01 }, 98 { "FIFOFULL", 0x02, 0x02 }, 99 { "DFTHRESH", 0x04, 0x04 }, 100 { "HDONE", 0x08, 0x08 }, 101 { "MREQPEND", 0x10, 0x10 }, 102 { "PKT_PRELOAD_AVAIL", 0x40, 0x40 }, 103 { "PRELOAD_AVAIL", 0x80, 0x80 } 104}; 105 106int 107ahd_dfstatus_print(u_int regvalue, u_int *cur_col, u_int wrap) 108{ 109 return (ahd_print_register(DFSTATUS_parse_table, 7, "DFSTATUS", 110 0x1a, regvalue, cur_col, wrap)); 111} 112 113static const ahd_reg_parse_entry_t SG_CACHE_SHADOW_parse_table[] = { 114 { "LAST_SEG_DONE", 0x01, 0x01 }, 115 { "LAST_SEG", 0x02, 0x02 }, 116 { "ODD_SEG", 0x04, 0x04 }, 117 { "SG_ADDR_MASK", 0xf8, 0xf8 } 118}; 119 120int 121ahd_sg_cache_shadow_print(u_int regvalue, u_int *cur_col, u_int wrap) 122{ 123 return (ahd_print_register(SG_CACHE_SHADOW_parse_table, 4, "SG_CACHE_SHADOW", 124 0x1b, regvalue, cur_col, wrap)); 125} 126 127static const ahd_reg_parse_entry_t SCSISEQ0_parse_table[] = { 128 { "SCSIRSTO", 0x01, 0x01 }, 129 { "FORCEBUSFREE", 0x10, 0x10 }, 130 { "ENARBO", 0x20, 0x20 }, 131 { "ENSELO", 0x40, 0x40 }, 132 { "TEMODEO", 0x80, 0x80 } 133}; 134 135int 136ahd_scsiseq0_print(u_int regvalue, u_int *cur_col, u_int wrap) 137{ 138 return (ahd_print_register(SCSISEQ0_parse_table, 5, "SCSISEQ0", 139 0x3a, regvalue, cur_col, wrap)); 140} 141 142static const ahd_reg_parse_entry_t SCSISEQ1_parse_table[] = { 143 { "ALTSTIM", 0x01, 0x01 }, 144 { "ENAUTOATNP", 0x02, 0x02 }, 145 { "MANUALP", 0x0c, 0x0c }, 146 { "ENRSELI", 0x10, 0x10 }, 147 { "ENSELI", 0x20, 0x20 }, 148 { "MANUALCTL", 0x40, 0x40 } 149}; 150 151int 152ahd_scsiseq1_print(u_int regvalue, u_int *cur_col, u_int wrap) 153{ 154 return (ahd_print_register(SCSISEQ1_parse_table, 6, "SCSISEQ1", 155 0x3b, regvalue, cur_col, wrap)); 156} 157 158static const ahd_reg_parse_entry_t DFFSTAT_parse_table[] = { 159 { "CURRFIFO_0", 0x00, 0x03 }, 160 { "CURRFIFO_1", 0x01, 0x03 }, 161 { "CURRFIFO_NONE", 0x03, 0x03 }, 162 { "FIFO0FREE", 0x10, 0x10 }, 163 { "FIFO1FREE", 0x20, 0x20 }, 164 { "CURRFIFO", 0x03, 0x03 } 165}; 166 167int 168ahd_dffstat_print(u_int regvalue, u_int *cur_col, u_int wrap) 169{ 170 return (ahd_print_register(DFFSTAT_parse_table, 6, "DFFSTAT", 171 0x3f, regvalue, cur_col, wrap)); 172} 173 174static const ahd_reg_parse_entry_t SCSISIGI_parse_table[] = { 175 { "P_DATAOUT", 0x00, 0xe0 }, 176 { "P_DATAOUT_DT", 0x20, 0xe0 }, 177 { "P_DATAIN", 0x40, 0xe0 }, 178 { "P_DATAIN_DT", 0x60, 0xe0 }, 179 { "P_COMMAND", 0x80, 0xe0 }, 180 { "P_MESGOUT", 0xa0, 0xe0 }, 181 { "P_STATUS", 0xc0, 0xe0 }, 182 { "P_MESGIN", 0xe0, 0xe0 }, 183 { "ACKI", 0x01, 0x01 }, 184 { "REQI", 0x02, 0x02 }, 185 { "BSYI", 0x04, 0x04 }, 186 { "SELI", 0x08, 0x08 }, 187 { "ATNI", 0x10, 0x10 }, 188 { "MSGI", 0x20, 0x20 }, 189 { "IOI", 0x40, 0x40 }, 190 { "CDI", 0x80, 0x80 }, 191 { "PHASE_MASK", 0xe0, 0xe0 } 192}; 193 194int 195ahd_scsisigi_print(u_int regvalue, u_int *cur_col, u_int wrap) 196{ 197 return (ahd_print_register(SCSISIGI_parse_table, 17, "SCSISIGI", 198 0x41, regvalue, cur_col, wrap)); 199} 200 201static const ahd_reg_parse_entry_t SCSIPHASE_parse_table[] = { 202 { "DATA_OUT_PHASE", 0x01, 0x03 }, 203 { "DATA_IN_PHASE", 0x02, 0x03 }, 204 { "DATA_PHASE_MASK", 0x03, 0x03 }, 205 { "MSG_OUT_PHASE", 0x04, 0x04 }, 206 { "MSG_IN_PHASE", 0x08, 0x08 }, 207 { "COMMAND_PHASE", 0x10, 0x10 }, 208 { "STATUS_PHASE", 0x20, 0x20 } 209}; 210 211int 212ahd_scsiphase_print(u_int regvalue, u_int *cur_col, u_int wrap) 213{ 214 return (ahd_print_register(SCSIPHASE_parse_table, 7, "SCSIPHASE", 215 0x42, regvalue, cur_col, wrap)); 216} 217 218int 219ahd_scsibus_print(u_int regvalue, u_int *cur_col, u_int wrap) 220{ 221 return (ahd_print_register(NULL, 0, "SCSIBUS", 222 0x46, regvalue, cur_col, wrap)); 223} 224 225static const ahd_reg_parse_entry_t SELID_parse_table[] = { 226 { "ONEBIT", 0x08, 0x08 }, 227 { "SELID_MASK", 0xf0, 0xf0 } 228}; 229 230int 231ahd_selid_print(u_int regvalue, u_int *cur_col, u_int wrap) 232{ 233 return (ahd_print_register(SELID_parse_table, 2, "SELID", 234 0x49, regvalue, cur_col, wrap)); 235} 236 237static const ahd_reg_parse_entry_t SIMODE0_parse_table[] = { 238 { "ENARBDO", 0x01, 0x01 }, 239 { "ENSPIORDY", 0x02, 0x02 }, 240 { "ENOVERRUN", 0x04, 0x04 }, 241 { "ENIOERR", 0x08, 0x08 }, 242 { "ENSELINGO", 0x10, 0x10 }, 243 { "ENSELDI", 0x20, 0x20 }, 244 { "ENSELDO", 0x40, 0x40 } 245}; 246 247int 248ahd_simode0_print(u_int regvalue, u_int *cur_col, u_int wrap) 249{ 250 return (ahd_print_register(SIMODE0_parse_table, 7, "SIMODE0", 251 0x4b, regvalue, cur_col, wrap)); 252} 253 254static const ahd_reg_parse_entry_t SSTAT0_parse_table[] = { 255 { "ARBDO", 0x01, 0x01 }, 256 { "SPIORDY", 0x02, 0x02 }, 257 { "OVERRUN", 0x04, 0x04 }, 258 { "IOERR", 0x08, 0x08 }, 259 { "SELINGO", 0x10, 0x10 }, 260 { "SELDI", 0x20, 0x20 }, 261 { "SELDO", 0x40, 0x40 }, 262 { "TARGET", 0x80, 0x80 } 263}; 264 265int 266ahd_sstat0_print(u_int regvalue, u_int *cur_col, u_int wrap) 267{ 268 return (ahd_print_register(SSTAT0_parse_table, 8, "SSTAT0", 269 0x4b, regvalue, cur_col, wrap)); 270} 271 272static const ahd_reg_parse_entry_t SSTAT1_parse_table[] = { 273 { "REQINIT", 0x01, 0x01 }, 274 { "STRB2FAST", 0x02, 0x02 }, 275 { "SCSIPERR", 0x04, 0x04 }, 276 { "BUSFREE", 0x08, 0x08 }, 277 { "PHASEMIS", 0x10, 0x10 }, 278 { "SCSIRSTI", 0x20, 0x20 }, 279 { "ATNTARG", 0x40, 0x40 }, 280 { "SELTO", 0x80, 0x80 } 281}; 282 283int 284ahd_sstat1_print(u_int regvalue, u_int *cur_col, u_int wrap) 285{ 286 return (ahd_print_register(SSTAT1_parse_table, 8, "SSTAT1", 287 0x4c, regvalue, cur_col, wrap)); 288} 289 290static const ahd_reg_parse_entry_t SSTAT2_parse_table[] = { 291 { "BUSFREE_LQO", 0x40, 0xc0 }, 292 { "BUSFREE_DFF0", 0x80, 0xc0 }, 293 { "BUSFREE_DFF1", 0xc0, 0xc0 }, 294 { "DMADONE", 0x01, 0x01 }, 295 { "SDONE", 0x02, 0x02 }, 296 { "WIDE_RES", 0x04, 0x04 }, 297 { "BSYX", 0x08, 0x08 }, 298 { "EXP_ACTIVE", 0x10, 0x10 }, 299 { "NONPACKREQ", 0x20, 0x20 }, 300 { "BUSFREETIME", 0xc0, 0xc0 } 301}; 302 303int 304ahd_sstat2_print(u_int regvalue, u_int *cur_col, u_int wrap) 305{ 306 return (ahd_print_register(SSTAT2_parse_table, 10, "SSTAT2", 307 0x4d, regvalue, cur_col, wrap)); 308} 309 310static const ahd_reg_parse_entry_t PERRDIAG_parse_table[] = { 311 { "DTERR", 0x01, 0x01 }, 312 { "DGFORMERR", 0x02, 0x02 }, 313 { "CRCERR", 0x04, 0x04 }, 314 { "AIPERR", 0x08, 0x08 }, 315 { "PARITYERR", 0x10, 0x10 }, 316 { "PREVPHASE", 0x20, 0x20 }, 317 { "HIPERR", 0x40, 0x40 }, 318 { "HIZERO", 0x80, 0x80 } 319}; 320 321int 322ahd_perrdiag_print(u_int regvalue, u_int *cur_col, u_int wrap) 323{ 324 return (ahd_print_register(PERRDIAG_parse_table, 8, "PERRDIAG", 325 0x4e, regvalue, cur_col, wrap)); 326} 327 328int 329ahd_soffcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 330{ 331 return (ahd_print_register(NULL, 0, "SOFFCNT", 332 0x4f, regvalue, cur_col, wrap)); 333} 334 335static const ahd_reg_parse_entry_t LQISTAT0_parse_table[] = { 336 { "LQIATNCMD", 0x01, 0x01 }, 337 { "LQIATNLQ", 0x02, 0x02 }, 338 { "LQIBADLQT", 0x04, 0x04 }, 339 { "LQICRCT2", 0x08, 0x08 }, 340 { "LQICRCT1", 0x10, 0x10 }, 341 { "LQIATNQAS", 0x20, 0x20 } 342}; 343 344int 345ahd_lqistat0_print(u_int regvalue, u_int *cur_col, u_int wrap) 346{ 347 return (ahd_print_register(LQISTAT0_parse_table, 6, "LQISTAT0", 348 0x50, regvalue, cur_col, wrap)); 349} 350 351static const ahd_reg_parse_entry_t LQISTAT1_parse_table[] = { 352 { "LQIOVERI_NLQ", 0x01, 0x01 }, 353 { "LQIOVERI_LQ", 0x02, 0x02 }, 354 { "LQIBADLQI", 0x04, 0x04 }, 355 { "LQICRCI_NLQ", 0x08, 0x08 }, 356 { "LQICRCI_LQ", 0x10, 0x10 }, 357 { "LQIABORT", 0x20, 0x20 }, 358 { "LQIPHASE_NLQ", 0x40, 0x40 }, 359 { "LQIPHASE_LQ", 0x80, 0x80 } 360}; 361 362int 363ahd_lqistat1_print(u_int regvalue, u_int *cur_col, u_int wrap) 364{ 365 return (ahd_print_register(LQISTAT1_parse_table, 8, "LQISTAT1", 366 0x51, regvalue, cur_col, wrap)); 367} 368 369static const ahd_reg_parse_entry_t LQISTAT2_parse_table[] = { 370 { "LQIGSAVAIL", 0x01, 0x01 }, 371 { "LQISTOPCMD", 0x02, 0x02 }, 372 { "LQISTOPLQ", 0x04, 0x04 }, 373 { "LQISTOPPKT", 0x08, 0x08 }, 374 { "LQIWAITFIFO", 0x10, 0x10 }, 375 { "LQIWORKONLQ", 0x20, 0x20 }, 376 { "LQIPHASE_OUTPKT", 0x40, 0x40 }, 377 { "PACKETIZED", 0x80, 0x80 } 378}; 379 380int 381ahd_lqistat2_print(u_int regvalue, u_int *cur_col, u_int wrap) 382{ 383 return (ahd_print_register(LQISTAT2_parse_table, 8, "LQISTAT2", 384 0x52, regvalue, cur_col, wrap)); 385} 386 387static const ahd_reg_parse_entry_t SSTAT3_parse_table[] = { 388 { "OSRAMPERR", 0x01, 0x01 }, 389 { "NTRAMPERR", 0x02, 0x02 } 390}; 391 392int 393ahd_sstat3_print(u_int regvalue, u_int *cur_col, u_int wrap) 394{ 395 return (ahd_print_register(SSTAT3_parse_table, 2, "SSTAT3", 396 0x53, regvalue, cur_col, wrap)); 397} 398 399static const ahd_reg_parse_entry_t LQOSTAT0_parse_table[] = { 400 { "LQOTCRC", 0x01, 0x01 }, 401 { "LQOATNPKT", 0x02, 0x02 }, 402 { "LQOATNLQ", 0x04, 0x04 }, 403 { "LQOSTOPT2", 0x08, 0x08 }, 404 { "LQOTARGSCBPERR", 0x10, 0x10 } 405}; 406 407int 408ahd_lqostat0_print(u_int regvalue, u_int *cur_col, u_int wrap) 409{ 410 return (ahd_print_register(LQOSTAT0_parse_table, 5, "LQOSTAT0", 411 0x54, regvalue, cur_col, wrap)); 412} 413 414static const ahd_reg_parse_entry_t LQOSTAT1_parse_table[] = { 415 { "LQOPHACHGINPKT", 0x01, 0x01 }, 416 { "LQOBUSFREE", 0x02, 0x02 }, 417 { "LQOBADQAS", 0x04, 0x04 }, 418 { "LQOSTOPI2", 0x08, 0x08 }, 419 { "LQOINITSCBPERR", 0x10, 0x10 } 420}; 421 422int 423ahd_lqostat1_print(u_int regvalue, u_int *cur_col, u_int wrap) 424{ 425 return (ahd_print_register(LQOSTAT1_parse_table, 5, "LQOSTAT1", 426 0x55, regvalue, cur_col, wrap)); 427} 428 429static const ahd_reg_parse_entry_t LQOSTAT2_parse_table[] = { 430 { "LQOSTOP0", 0x01, 0x01 }, 431 { "LQOPHACHGOUTPKT", 0x02, 0x02 }, 432 { "LQOWAITFIFO", 0x10, 0x10 }, 433 { "LQOPKT", 0xe0, 0xe0 } 434}; 435 436int 437ahd_lqostat2_print(u_int regvalue, u_int *cur_col, u_int wrap) 438{ 439 return (ahd_print_register(LQOSTAT2_parse_table, 4, "LQOSTAT2", 440 0x56, regvalue, cur_col, wrap)); 441} 442 443static const ahd_reg_parse_entry_t SIMODE1_parse_table[] = { 444 { "ENREQINIT", 0x01, 0x01 }, 445 { "ENSTRB2FAST", 0x02, 0x02 }, 446 { "ENSCSIPERR", 0x04, 0x04 }, 447 { "ENBUSFREE", 0x08, 0x08 }, 448 { "ENPHASEMIS", 0x10, 0x10 }, 449 { "ENSCSIRST", 0x20, 0x20 }, 450 { "ENATNTARG", 0x40, 0x40 }, 451 { "ENSELTIMO", 0x80, 0x80 } 452}; 453 454int 455ahd_simode1_print(u_int regvalue, u_int *cur_col, u_int wrap) 456{ 457 return (ahd_print_register(SIMODE1_parse_table, 8, "SIMODE1", 458 0x57, regvalue, cur_col, wrap)); 459} 460 461static const ahd_reg_parse_entry_t DFFSXFRCTL_parse_table[] = { 462 { "RSTCHN", 0x01, 0x01 }, 463 { "CLRCHN", 0x02, 0x02 }, 464 { "CLRSHCNT", 0x04, 0x04 }, 465 { "DFFBITBUCKET", 0x08, 0x08 } 466}; 467 468int 469ahd_dffsxfrctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 470{ 471 return (ahd_print_register(DFFSXFRCTL_parse_table, 4, "DFFSXFRCTL", 472 0x5a, regvalue, cur_col, wrap)); 473} 474 475static const ahd_reg_parse_entry_t SEQINTSRC_parse_table[] = { 476 { "CFG4TCMD", 0x01, 0x01 }, 477 { "CFG4ICMD", 0x02, 0x02 }, 478 { "CFG4TSTAT", 0x04, 0x04 }, 479 { "CFG4ISTAT", 0x08, 0x08 }, 480 { "CFG4DATA", 0x10, 0x10 }, 481 { "SAVEPTRS", 0x20, 0x20 }, 482 { "CTXTDONE", 0x40, 0x40 } 483}; 484 485int 486ahd_seqintsrc_print(u_int regvalue, u_int *cur_col, u_int wrap) 487{ 488 return (ahd_print_register(SEQINTSRC_parse_table, 7, "SEQINTSRC", 489 0x5b, regvalue, cur_col, wrap)); 490} 491 492static const ahd_reg_parse_entry_t SEQIMODE_parse_table[] = { 493 { "ENCFG4TCMD", 0x01, 0x01 }, 494 { "ENCFG4ICMD", 0x02, 0x02 }, 495 { "ENCFG4TSTAT", 0x04, 0x04 }, 496 { "ENCFG4ISTAT", 0x08, 0x08 }, 497 { "ENCFG4DATA", 0x10, 0x10 }, 498 { "ENSAVEPTRS", 0x20, 0x20 }, 499 { "ENCTXTDONE", 0x40, 0x40 } 500}; 501 502int 503ahd_seqimode_print(u_int regvalue, u_int *cur_col, u_int wrap) 504{ 505 return (ahd_print_register(SEQIMODE_parse_table, 7, "SEQIMODE", 506 0x5c, regvalue, cur_col, wrap)); 507} 508 509static const ahd_reg_parse_entry_t MDFFSTAT_parse_table[] = { 510 { "FIFOFREE", 0x01, 0x01 }, 511 { "DATAINFIFO", 0x02, 0x02 }, 512 { "DLZERO", 0x04, 0x04 }, 513 { "SHVALID", 0x08, 0x08 }, 514 { "LASTSDONE", 0x10, 0x10 }, 515 { "SHCNTMINUS1", 0x20, 0x20 }, 516 { "SHCNTNEGATIVE", 0x40, 0x40 } 517}; 518 519int 520ahd_mdffstat_print(u_int regvalue, u_int *cur_col, u_int wrap) 521{ 522 return (ahd_print_register(MDFFSTAT_parse_table, 7, "MDFFSTAT", 523 0x5d, regvalue, cur_col, wrap)); 524} 525 526int 527ahd_seloid_print(u_int regvalue, u_int *cur_col, u_int wrap) 528{ 529 return (ahd_print_register(NULL, 0, "SELOID", 530 0x6b, regvalue, cur_col, wrap)); 531} 532 533static const ahd_reg_parse_entry_t SG_STATE_parse_table[] = { 534 { "SEGS_AVAIL", 0x01, 0x01 }, 535 { "LOADING_NEEDED", 0x02, 0x02 }, 536 { "FETCH_INPROG", 0x04, 0x04 } 537}; 538 539int 540ahd_sg_state_print(u_int regvalue, u_int *cur_col, u_int wrap) 541{ 542 return (ahd_print_register(SG_STATE_parse_table, 3, "SG_STATE", 543 0xa6, regvalue, cur_col, wrap)); 544} 545 546static const ahd_reg_parse_entry_t CCSCBCTL_parse_table[] = { 547 { "CCSCBRESET", 0x01, 0x01 }, 548 { "CCSCBDIR", 0x04, 0x04 }, 549 { "CCSCBEN", 0x08, 0x08 }, 550 { "CCARREN", 0x10, 0x10 }, 551 { "ARRDONE", 0x40, 0x40 }, 552 { "CCSCBDONE", 0x80, 0x80 } 553}; 554 555int 556ahd_ccscbctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 557{ 558 return (ahd_print_register(CCSCBCTL_parse_table, 6, "CCSCBCTL", 559 0xad, regvalue, cur_col, wrap)); 560} 561 562static const ahd_reg_parse_entry_t CCSGCTL_parse_table[] = { 563 { "CCSGRESET", 0x01, 0x01 }, 564 { "SG_FETCH_REQ", 0x02, 0x02 }, 565 { "CCSGENACK", 0x08, 0x08 }, 566 { "SG_CACHE_AVAIL", 0x10, 0x10 }, 567 { "CCSGDONE", 0x80, 0x80 }, 568 { "CCSGEN", 0x0c, 0x0c } 569}; 570 571int 572ahd_ccsgctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 573{ 574 return (ahd_print_register(CCSGCTL_parse_table, 6, "CCSGCTL", 575 0xad, regvalue, cur_col, wrap)); 576} 577 578static const ahd_reg_parse_entry_t SEQCTL0_parse_table[] = { 579 { "LOADRAM", 0x01, 0x01 }, 580 { "SEQRESET", 0x02, 0x02 }, 581 { "STEP", 0x04, 0x04 }, 582 { "BRKADRINTEN", 0x08, 0x08 }, 583 { "FASTMODE", 0x10, 0x10 }, 584 { "FAILDIS", 0x20, 0x20 }, 585 { "PAUSEDIS", 0x40, 0x40 }, 586 { "PERRORDIS", 0x80, 0x80 } 587}; 588 589int 590ahd_seqctl0_print(u_int regvalue, u_int *cur_col, u_int wrap) 591{ 592 return (ahd_print_register(SEQCTL0_parse_table, 8, "SEQCTL0", 593 0xd6, regvalue, cur_col, wrap)); 594} 595 596static const ahd_reg_parse_entry_t SEQINTCTL_parse_table[] = { 597 { "IRET", 0x01, 0x01 }, 598 { "INTMASK1", 0x02, 0x02 }, 599 { "INTMASK2", 0x04, 0x04 }, 600 { "SCS_SEQ_INT1M0", 0x08, 0x08 }, 601 { "SCS_SEQ_INT1M1", 0x10, 0x10 }, 602 { "INT1_CONTEXT", 0x20, 0x20 }, 603 { "INTVEC1DSL", 0x80, 0x80 } 604}; 605 606int 607ahd_seqintctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 608{ 609 return (ahd_print_register(SEQINTCTL_parse_table, 7, "SEQINTCTL", 610 0xd9, regvalue, cur_col, wrap)); 611} 612 613int 614ahd_sram_base_print(u_int regvalue, u_int *cur_col, u_int wrap) 615{ 616 return (ahd_print_register(NULL, 0, "SRAM_BASE", 617 0x100, regvalue, cur_col, wrap)); 618} 619 620int 621ahd_qfreeze_count_print(u_int regvalue, u_int *cur_col, u_int wrap) 622{ 623 return (ahd_print_register(NULL, 0, "QFREEZE_COUNT", 624 0x132, regvalue, cur_col, wrap)); 625} 626 627int 628ahd_kernel_qfreeze_count_print(u_int regvalue, u_int *cur_col, u_int wrap) 629{ 630 return (ahd_print_register(NULL, 0, "KERNEL_QFREEZE_COUNT", 631 0x134, regvalue, cur_col, wrap)); 632} 633 634int 635ahd_saved_mode_print(u_int regvalue, u_int *cur_col, u_int wrap) 636{ 637 return (ahd_print_register(NULL, 0, "SAVED_MODE", 638 0x136, regvalue, cur_col, wrap)); 639} 640 641static const ahd_reg_parse_entry_t SEQ_FLAGS_parse_table[] = { 642 { "NO_DISCONNECT", 0x01, 0x01 }, 643 { "SPHASE_PENDING", 0x02, 0x02 }, 644 { "DPHASE_PENDING", 0x04, 0x04 }, 645 { "CMDPHASE_PENDING", 0x08, 0x08 }, 646 { "TARG_CMD_PENDING", 0x10, 0x10 }, 647 { "DPHASE", 0x20, 0x20 }, 648 { "NO_CDB_SENT", 0x40, 0x40 }, 649 { "TARGET_CMD_IS_TAGGED",0x40, 0x40 }, 650 { "NOT_IDENTIFIED", 0x80, 0x80 } 651}; 652 653int 654ahd_seq_flags_print(u_int regvalue, u_int *cur_col, u_int wrap) 655{ 656 return (ahd_print_register(SEQ_FLAGS_parse_table, 9, "SEQ_FLAGS", 657 0x139, regvalue, cur_col, wrap)); 658} 659 660static const ahd_reg_parse_entry_t LASTPHASE_parse_table[] = { 661 { "P_DATAOUT", 0x00, 0xe0 }, 662 { "P_DATAOUT_DT", 0x20, 0xe0 }, 663 { "P_DATAIN", 0x40, 0xe0 }, 664 { "P_DATAIN_DT", 0x60, 0xe0 }, 665 { "P_COMMAND", 0x80, 0xe0 }, 666 { "P_MESGOUT", 0xa0, 0xe0 }, 667 { "P_STATUS", 0xc0, 0xe0 }, 668 { "P_MESGIN", 0xe0, 0xe0 }, 669 { "P_BUSFREE", 0x01, 0x01 }, 670 { "MSGI", 0x20, 0x20 }, 671 { "IOI", 0x40, 0x40 }, 672 { "CDI", 0x80, 0x80 }, 673 { "PHASE_MASK", 0xe0, 0xe0 } 674}; 675 676int 677ahd_lastphase_print(u_int regvalue, u_int *cur_col, u_int wrap) 678{ 679 return (ahd_print_register(LASTPHASE_parse_table, 13, "LASTPHASE", 680 0x13c, regvalue, cur_col, wrap)); 681} 682 683static const ahd_reg_parse_entry_t SEQ_FLAGS2_parse_table[] = { 684 { "PENDING_MK_MESSAGE", 0x01, 0x01 }, 685 { "TARGET_MSG_PENDING", 0x02, 0x02 }, 686 { "SELECTOUT_QFROZEN", 0x04, 0x04 } 687}; 688 689int 690ahd_seq_flags2_print(u_int regvalue, u_int *cur_col, u_int wrap) 691{ 692 return (ahd_print_register(SEQ_FLAGS2_parse_table, 3, "SEQ_FLAGS2", 693 0x14d, regvalue, cur_col, wrap)); 694} 695 696int 697ahd_mk_message_scb_print(u_int regvalue, u_int *cur_col, u_int wrap) 698{ 699 return (ahd_print_register(NULL, 0, "MK_MESSAGE_SCB", 700 0x160, regvalue, cur_col, wrap)); 701} 702 703int 704ahd_mk_message_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap) 705{ 706 return (ahd_print_register(NULL, 0, "MK_MESSAGE_SCSIID", 707 0x162, regvalue, cur_col, wrap)); 708} 709 710int 711ahd_scb_base_print(u_int regvalue, u_int *cur_col, u_int wrap) 712{ 713 return (ahd_print_register(NULL, 0, "SCB_BASE", 714 0x180, regvalue, cur_col, wrap)); 715} 716 717static const ahd_reg_parse_entry_t SCB_CONTROL_parse_table[] = { 718 { "SCB_TAG_TYPE", 0x03, 0x03 }, 719 { "DISCONNECTED", 0x04, 0x04 }, 720 { "STATUS_RCVD", 0x08, 0x08 }, 721 { "MK_MESSAGE", 0x10, 0x10 }, 722 { "TAG_ENB", 0x20, 0x20 }, 723 { "DISCENB", 0x40, 0x40 }, 724 { "TARGET_SCB", 0x80, 0x80 } 725}; 726 727int 728ahd_scb_control_print(u_int regvalue, u_int *cur_col, u_int wrap) 729{ 730 return (ahd_print_register(SCB_CONTROL_parse_table, 7, "SCB_CONTROL", 731 0x192, regvalue, cur_col, wrap)); 732} 733 734static const ahd_reg_parse_entry_t SCB_SCSIID_parse_table[] = { 735 { "OID", 0x0f, 0x0f }, 736 { "TID", 0xf0, 0xf0 } 737}; 738 739int 740ahd_scb_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap) 741{ 742 return (ahd_print_register(SCB_SCSIID_parse_table, 2, "SCB_SCSIID", 743 0x193, regvalue, cur_col, wrap)); 744} 745 746