aic7xxx_reg_print.c revision 270284
1/* 2 * DO NOT EDIT - This file is automatically generated 3 * from the following source files: 4 * 5 * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#58 $ 6 * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#40 $ 7 */ 8 9#include <sys/cdefs.h> 10__FBSDID("$FreeBSD: stable/10/sys/dev/aic7xxx/aic7xxx_reg_print.c 270284 2014-08-21 17:18:21Z ian $"); 11#include <dev/aic7xxx/aic7xxx_osm.h> 12 13static ahc_reg_parse_entry_t SCSISEQ_parse_table[] = { 14 { "SCSIRSTO", 0x01, 0x01 }, 15 { "ENAUTOATNP", 0x02, 0x02 }, 16 { "ENAUTOATNI", 0x04, 0x04 }, 17 { "ENAUTOATNO", 0x08, 0x08 }, 18 { "ENRSELI", 0x10, 0x10 }, 19 { "ENSELI", 0x20, 0x20 }, 20 { "ENSELO", 0x40, 0x40 }, 21 { "TEMODE", 0x80, 0x80 } 22}; 23 24int 25ahc_scsiseq_print(u_int regvalue, u_int *cur_col, u_int wrap) 26{ 27 return (ahc_print_register(SCSISEQ_parse_table, 8, "SCSISEQ", 28 0x00, regvalue, cur_col, wrap)); 29} 30 31static ahc_reg_parse_entry_t SXFRCTL0_parse_table[] = { 32 { "CLRCHN", 0x02, 0x02 }, 33 { "SCAMEN", 0x04, 0x04 }, 34 { "SPIOEN", 0x08, 0x08 }, 35 { "CLRSTCNT", 0x10, 0x10 }, 36 { "FAST20", 0x20, 0x20 }, 37 { "DFPEXP", 0x40, 0x40 }, 38 { "DFON", 0x80, 0x80 } 39}; 40 41int 42ahc_sxfrctl0_print(u_int regvalue, u_int *cur_col, u_int wrap) 43{ 44 return (ahc_print_register(SXFRCTL0_parse_table, 7, "SXFRCTL0", 45 0x01, regvalue, cur_col, wrap)); 46} 47 48static ahc_reg_parse_entry_t SXFRCTL1_parse_table[] = { 49 { "STPWEN", 0x01, 0x01 }, 50 { "ACTNEGEN", 0x02, 0x02 }, 51 { "ENSTIMER", 0x04, 0x04 }, 52 { "ENSPCHK", 0x20, 0x20 }, 53 { "SWRAPEN", 0x40, 0x40 }, 54 { "BITBUCKET", 0x80, 0x80 }, 55 { "STIMESEL", 0x18, 0x18 } 56}; 57 58int 59ahc_sxfrctl1_print(u_int regvalue, u_int *cur_col, u_int wrap) 60{ 61 return (ahc_print_register(SXFRCTL1_parse_table, 7, "SXFRCTL1", 62 0x02, regvalue, cur_col, wrap)); 63} 64 65static ahc_reg_parse_entry_t SCSISIGI_parse_table[] = { 66 { "ACKI", 0x01, 0x01 }, 67 { "REQI", 0x02, 0x02 }, 68 { "BSYI", 0x04, 0x04 }, 69 { "SELI", 0x08, 0x08 }, 70 { "ATNI", 0x10, 0x10 }, 71 { "MSGI", 0x20, 0x20 }, 72 { "IOI", 0x40, 0x40 }, 73 { "CDI", 0x80, 0x80 }, 74 { "P_DATAOUT", 0x00, 0x00 }, 75 { "P_DATAOUT_DT", 0x20, 0x20 }, 76 { "P_DATAIN", 0x40, 0x40 }, 77 { "P_DATAIN_DT", 0x60, 0x60 }, 78 { "P_COMMAND", 0x80, 0x80 }, 79 { "P_MESGOUT", 0xa0, 0xa0 }, 80 { "P_STATUS", 0xc0, 0xc0 }, 81 { "PHASE_MASK", 0xe0, 0xe0 }, 82 { "P_MESGIN", 0xe0, 0xe0 } 83}; 84 85int 86ahc_scsisigi_print(u_int regvalue, u_int *cur_col, u_int wrap) 87{ 88 return (ahc_print_register(SCSISIGI_parse_table, 17, "SCSISIGI", 89 0x03, regvalue, cur_col, wrap)); 90} 91 92static ahc_reg_parse_entry_t SCSISIGO_parse_table[] = { 93 { "ACKO", 0x01, 0x01 }, 94 { "REQO", 0x02, 0x02 }, 95 { "BSYO", 0x04, 0x04 }, 96 { "SELO", 0x08, 0x08 }, 97 { "ATNO", 0x10, 0x10 }, 98 { "MSGO", 0x20, 0x20 }, 99 { "IOO", 0x40, 0x40 }, 100 { "CDO", 0x80, 0x80 }, 101 { "P_DATAOUT", 0x00, 0x00 }, 102 { "P_DATAIN", 0x40, 0x40 }, 103 { "P_COMMAND", 0x80, 0x80 }, 104 { "P_MESGOUT", 0xa0, 0xa0 }, 105 { "P_STATUS", 0xc0, 0xc0 }, 106 { "PHASE_MASK", 0xe0, 0xe0 }, 107 { "P_MESGIN", 0xe0, 0xe0 } 108}; 109 110int 111ahc_scsisigo_print(u_int regvalue, u_int *cur_col, u_int wrap) 112{ 113 return (ahc_print_register(SCSISIGO_parse_table, 15, "SCSISIGO", 114 0x03, regvalue, cur_col, wrap)); 115} 116 117static ahc_reg_parse_entry_t SCSIRATE_parse_table[] = { 118 { "SINGLE_EDGE", 0x10, 0x10 }, 119 { "ENABLE_CRC", 0x40, 0x40 }, 120 { "WIDEXFER", 0x80, 0x80 }, 121 { "SXFR_ULTRA2", 0x0f, 0x0f }, 122 { "SOFS", 0x0f, 0x0f }, 123 { "SXFR", 0x70, 0x70 } 124}; 125 126int 127ahc_scsirate_print(u_int regvalue, u_int *cur_col, u_int wrap) 128{ 129 return (ahc_print_register(SCSIRATE_parse_table, 6, "SCSIRATE", 130 0x04, regvalue, cur_col, wrap)); 131} 132 133static ahc_reg_parse_entry_t SCSIID_parse_table[] = { 134 { "TWIN_CHNLB", 0x80, 0x80 }, 135 { "OID", 0x0f, 0x0f }, 136 { "TWIN_TID", 0x70, 0x70 }, 137 { "SOFS_ULTRA2", 0x7f, 0x7f }, 138 { "TID", 0xf0, 0xf0 } 139}; 140 141int 142ahc_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap) 143{ 144 return (ahc_print_register(SCSIID_parse_table, 5, "SCSIID", 145 0x05, regvalue, cur_col, wrap)); 146} 147 148int 149ahc_scsidatl_print(u_int regvalue, u_int *cur_col, u_int wrap) 150{ 151 return (ahc_print_register(NULL, 0, "SCSIDATL", 152 0x06, regvalue, cur_col, wrap)); 153} 154 155int 156ahc_scsidath_print(u_int regvalue, u_int *cur_col, u_int wrap) 157{ 158 return (ahc_print_register(NULL, 0, "SCSIDATH", 159 0x07, regvalue, cur_col, wrap)); 160} 161 162static ahc_reg_parse_entry_t OPTIONMODE_parse_table[] = { 163 { "DIS_MSGIN_DUALEDGE", 0x01, 0x01 }, 164 { "AUTO_MSGOUT_DE", 0x02, 0x02 }, 165 { "SCSIDATL_IMGEN", 0x04, 0x04 }, 166 { "EXPPHASEDIS", 0x08, 0x08 }, 167 { "BUSFREEREV", 0x10, 0x10 }, 168 { "ATNMGMNTEN", 0x20, 0x20 }, 169 { "AUTOACKEN", 0x40, 0x40 }, 170 { "AUTORATEEN", 0x80, 0x80 }, 171 { "OPTIONMODE_DEFAULTS",0x03, 0x03 } 172}; 173 174int 175ahc_optionmode_print(u_int regvalue, u_int *cur_col, u_int wrap) 176{ 177 return (ahc_print_register(OPTIONMODE_parse_table, 9, "OPTIONMODE", 178 0x08, regvalue, cur_col, wrap)); 179} 180 181int 182ahc_stcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 183{ 184 return (ahc_print_register(NULL, 0, "STCNT", 185 0x08, regvalue, cur_col, wrap)); 186} 187 188int 189ahc_targcrccnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 190{ 191 return (ahc_print_register(NULL, 0, "TARGCRCCNT", 192 0x0a, regvalue, cur_col, wrap)); 193} 194 195static ahc_reg_parse_entry_t CLRSINT0_parse_table[] = { 196 { "CLRSPIORDY", 0x02, 0x02 }, 197 { "CLRSWRAP", 0x08, 0x08 }, 198 { "CLRIOERR", 0x08, 0x08 }, 199 { "CLRSELINGO", 0x10, 0x10 }, 200 { "CLRSELDI", 0x20, 0x20 }, 201 { "CLRSELDO", 0x40, 0x40 } 202}; 203 204int 205ahc_clrsint0_print(u_int regvalue, u_int *cur_col, u_int wrap) 206{ 207 return (ahc_print_register(CLRSINT0_parse_table, 6, "CLRSINT0", 208 0x0b, regvalue, cur_col, wrap)); 209} 210 211static ahc_reg_parse_entry_t SSTAT0_parse_table[] = { 212 { "DMADONE", 0x01, 0x01 }, 213 { "SPIORDY", 0x02, 0x02 }, 214 { "SDONE", 0x04, 0x04 }, 215 { "SWRAP", 0x08, 0x08 }, 216 { "IOERR", 0x08, 0x08 }, 217 { "SELINGO", 0x10, 0x10 }, 218 { "SELDI", 0x20, 0x20 }, 219 { "SELDO", 0x40, 0x40 }, 220 { "TARGET", 0x80, 0x80 } 221}; 222 223int 224ahc_sstat0_print(u_int regvalue, u_int *cur_col, u_int wrap) 225{ 226 return (ahc_print_register(SSTAT0_parse_table, 9, "SSTAT0", 227 0x0b, regvalue, cur_col, wrap)); 228} 229 230static ahc_reg_parse_entry_t CLRSINT1_parse_table[] = { 231 { "CLRREQINIT", 0x01, 0x01 }, 232 { "CLRPHASECHG", 0x02, 0x02 }, 233 { "CLRSCSIPERR", 0x04, 0x04 }, 234 { "CLRBUSFREE", 0x08, 0x08 }, 235 { "CLRSCSIRSTI", 0x20, 0x20 }, 236 { "CLRATNO", 0x40, 0x40 }, 237 { "CLRSELTIMEO", 0x80, 0x80 } 238}; 239 240int 241ahc_clrsint1_print(u_int regvalue, u_int *cur_col, u_int wrap) 242{ 243 return (ahc_print_register(CLRSINT1_parse_table, 7, "CLRSINT1", 244 0x0c, regvalue, cur_col, wrap)); 245} 246 247static ahc_reg_parse_entry_t SSTAT1_parse_table[] = { 248 { "REQINIT", 0x01, 0x01 }, 249 { "PHASECHG", 0x02, 0x02 }, 250 { "SCSIPERR", 0x04, 0x04 }, 251 { "BUSFREE", 0x08, 0x08 }, 252 { "PHASEMIS", 0x10, 0x10 }, 253 { "SCSIRSTI", 0x20, 0x20 }, 254 { "ATNTARG", 0x40, 0x40 }, 255 { "SELTO", 0x80, 0x80 } 256}; 257 258int 259ahc_sstat1_print(u_int regvalue, u_int *cur_col, u_int wrap) 260{ 261 return (ahc_print_register(SSTAT1_parse_table, 8, "SSTAT1", 262 0x0c, regvalue, cur_col, wrap)); 263} 264 265static ahc_reg_parse_entry_t SSTAT2_parse_table[] = { 266 { "DUAL_EDGE_ERR", 0x01, 0x01 }, 267 { "CRCREQERR", 0x02, 0x02 }, 268 { "CRCENDERR", 0x04, 0x04 }, 269 { "CRCVALERR", 0x08, 0x08 }, 270 { "EXP_ACTIVE", 0x10, 0x10 }, 271 { "SHVALID", 0x40, 0x40 }, 272 { "OVERRUN", 0x80, 0x80 }, 273 { "SFCNT", 0x1f, 0x1f } 274}; 275 276int 277ahc_sstat2_print(u_int regvalue, u_int *cur_col, u_int wrap) 278{ 279 return (ahc_print_register(SSTAT2_parse_table, 8, "SSTAT2", 280 0x0d, regvalue, cur_col, wrap)); 281} 282 283static ahc_reg_parse_entry_t SSTAT3_parse_table[] = { 284 { "OFFCNT", 0x0f, 0x0f }, 285 { "U2OFFCNT", 0x7f, 0x7f }, 286 { "SCSICNT", 0xf0, 0xf0 } 287}; 288 289int 290ahc_sstat3_print(u_int regvalue, u_int *cur_col, u_int wrap) 291{ 292 return (ahc_print_register(SSTAT3_parse_table, 3, "SSTAT3", 293 0x0e, regvalue, cur_col, wrap)); 294} 295 296static ahc_reg_parse_entry_t SCSIID_ULTRA2_parse_table[] = { 297 { "OID", 0x0f, 0x0f }, 298 { "TID", 0xf0, 0xf0 } 299}; 300 301int 302ahc_scsiid_ultra2_print(u_int regvalue, u_int *cur_col, u_int wrap) 303{ 304 return (ahc_print_register(SCSIID_ULTRA2_parse_table, 2, "SCSIID_ULTRA2", 305 0x0f, regvalue, cur_col, wrap)); 306} 307 308static ahc_reg_parse_entry_t SIMODE0_parse_table[] = { 309 { "ENDMADONE", 0x01, 0x01 }, 310 { "ENSPIORDY", 0x02, 0x02 }, 311 { "ENSDONE", 0x04, 0x04 }, 312 { "ENSWRAP", 0x08, 0x08 }, 313 { "ENIOERR", 0x08, 0x08 }, 314 { "ENSELINGO", 0x10, 0x10 }, 315 { "ENSELDI", 0x20, 0x20 }, 316 { "ENSELDO", 0x40, 0x40 } 317}; 318 319int 320ahc_simode0_print(u_int regvalue, u_int *cur_col, u_int wrap) 321{ 322 return (ahc_print_register(SIMODE0_parse_table, 8, "SIMODE0", 323 0x10, regvalue, cur_col, wrap)); 324} 325 326static ahc_reg_parse_entry_t SIMODE1_parse_table[] = { 327 { "ENREQINIT", 0x01, 0x01 }, 328 { "ENPHASECHG", 0x02, 0x02 }, 329 { "ENSCSIPERR", 0x04, 0x04 }, 330 { "ENBUSFREE", 0x08, 0x08 }, 331 { "ENPHASEMIS", 0x10, 0x10 }, 332 { "ENSCSIRST", 0x20, 0x20 }, 333 { "ENATNTARG", 0x40, 0x40 }, 334 { "ENSELTIMO", 0x80, 0x80 } 335}; 336 337int 338ahc_simode1_print(u_int regvalue, u_int *cur_col, u_int wrap) 339{ 340 return (ahc_print_register(SIMODE1_parse_table, 8, "SIMODE1", 341 0x11, regvalue, cur_col, wrap)); 342} 343 344int 345ahc_scsibusl_print(u_int regvalue, u_int *cur_col, u_int wrap) 346{ 347 return (ahc_print_register(NULL, 0, "SCSIBUSL", 348 0x12, regvalue, cur_col, wrap)); 349} 350 351static ahc_reg_parse_entry_t SXFRCTL2_parse_table[] = { 352 { "CMDDMAEN", 0x08, 0x08 }, 353 { "AUTORSTDIS", 0x10, 0x10 }, 354 { "ASYNC_SETUP", 0x07, 0x07 } 355}; 356 357int 358ahc_sxfrctl2_print(u_int regvalue, u_int *cur_col, u_int wrap) 359{ 360 return (ahc_print_register(SXFRCTL2_parse_table, 3, "SXFRCTL2", 361 0x13, regvalue, cur_col, wrap)); 362} 363 364int 365ahc_scsibush_print(u_int regvalue, u_int *cur_col, u_int wrap) 366{ 367 return (ahc_print_register(NULL, 0, "SCSIBUSH", 368 0x13, regvalue, cur_col, wrap)); 369} 370 371int 372ahc_shaddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 373{ 374 return (ahc_print_register(NULL, 0, "SHADDR", 375 0x14, regvalue, cur_col, wrap)); 376} 377 378static ahc_reg_parse_entry_t SELTIMER_parse_table[] = { 379 { "STAGE1", 0x01, 0x01 }, 380 { "STAGE2", 0x02, 0x02 }, 381 { "STAGE3", 0x04, 0x04 }, 382 { "STAGE4", 0x08, 0x08 }, 383 { "STAGE5", 0x10, 0x10 }, 384 { "STAGE6", 0x20, 0x20 } 385}; 386 387int 388ahc_seltimer_print(u_int regvalue, u_int *cur_col, u_int wrap) 389{ 390 return (ahc_print_register(SELTIMER_parse_table, 6, "SELTIMER", 391 0x18, regvalue, cur_col, wrap)); 392} 393 394static ahc_reg_parse_entry_t SELID_parse_table[] = { 395 { "ONEBIT", 0x08, 0x08 }, 396 { "SELID_MASK", 0xf0, 0xf0 } 397}; 398 399int 400ahc_selid_print(u_int regvalue, u_int *cur_col, u_int wrap) 401{ 402 return (ahc_print_register(SELID_parse_table, 2, "SELID", 403 0x19, regvalue, cur_col, wrap)); 404} 405 406static ahc_reg_parse_entry_t SCAMCTL_parse_table[] = { 407 { "DFLTTID", 0x10, 0x10 }, 408 { "ALTSTIM", 0x20, 0x20 }, 409 { "CLRSCAMSELID", 0x40, 0x40 }, 410 { "ENSCAMSELO", 0x80, 0x80 }, 411 { "SCAMLVL", 0x03, 0x03 } 412}; 413 414int 415ahc_scamctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 416{ 417 return (ahc_print_register(SCAMCTL_parse_table, 5, "SCAMCTL", 418 0x1a, regvalue, cur_col, wrap)); 419} 420 421int 422ahc_targid_print(u_int regvalue, u_int *cur_col, u_int wrap) 423{ 424 return (ahc_print_register(NULL, 0, "TARGID", 425 0x1b, regvalue, cur_col, wrap)); 426} 427 428static ahc_reg_parse_entry_t SPIOCAP_parse_table[] = { 429 { "SSPIOCPS", 0x01, 0x01 }, 430 { "ROM", 0x02, 0x02 }, 431 { "EEPROM", 0x04, 0x04 }, 432 { "SEEPROM", 0x08, 0x08 }, 433 { "EXT_BRDCTL", 0x10, 0x10 }, 434 { "SOFTCMDEN", 0x20, 0x20 }, 435 { "SOFT0", 0x40, 0x40 }, 436 { "SOFT1", 0x80, 0x80 } 437}; 438 439int 440ahc_spiocap_print(u_int regvalue, u_int *cur_col, u_int wrap) 441{ 442 return (ahc_print_register(SPIOCAP_parse_table, 8, "SPIOCAP", 443 0x1b, regvalue, cur_col, wrap)); 444} 445 446static ahc_reg_parse_entry_t BRDCTL_parse_table[] = { 447 { "BRDCTL0", 0x01, 0x01 }, 448 { "BRDSTB_ULTRA2", 0x01, 0x01 }, 449 { "BRDCTL1", 0x02, 0x02 }, 450 { "BRDRW_ULTRA2", 0x02, 0x02 }, 451 { "BRDRW", 0x04, 0x04 }, 452 { "BRDDAT2", 0x04, 0x04 }, 453 { "BRDCS", 0x08, 0x08 }, 454 { "BRDDAT3", 0x08, 0x08 }, 455 { "BRDSTB", 0x10, 0x10 }, 456 { "BRDDAT4", 0x10, 0x10 }, 457 { "BRDDAT5", 0x20, 0x20 }, 458 { "BRDDAT6", 0x40, 0x40 }, 459 { "BRDDAT7", 0x80, 0x80 } 460}; 461 462int 463ahc_brdctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 464{ 465 return (ahc_print_register(BRDCTL_parse_table, 13, "BRDCTL", 466 0x1d, regvalue, cur_col, wrap)); 467} 468 469static ahc_reg_parse_entry_t SEECTL_parse_table[] = { 470 { "SEEDI", 0x01, 0x01 }, 471 { "SEEDO", 0x02, 0x02 }, 472 { "SEECK", 0x04, 0x04 }, 473 { "SEECS", 0x08, 0x08 }, 474 { "SEERDY", 0x10, 0x10 }, 475 { "SEEMS", 0x20, 0x20 }, 476 { "EXTARBREQ", 0x40, 0x40 }, 477 { "EXTARBACK", 0x80, 0x80 } 478}; 479 480int 481ahc_seectl_print(u_int regvalue, u_int *cur_col, u_int wrap) 482{ 483 return (ahc_print_register(SEECTL_parse_table, 8, "SEECTL", 484 0x1e, regvalue, cur_col, wrap)); 485} 486 487static ahc_reg_parse_entry_t SBLKCTL_parse_table[] = { 488 { "XCVR", 0x01, 0x01 }, 489 { "SELWIDE", 0x02, 0x02 }, 490 { "ENAB20", 0x04, 0x04 }, 491 { "SELBUSB", 0x08, 0x08 }, 492 { "ENAB40", 0x08, 0x08 }, 493 { "AUTOFLUSHDIS", 0x20, 0x20 }, 494 { "DIAGLEDON", 0x40, 0x40 }, 495 { "DIAGLEDEN", 0x80, 0x80 } 496}; 497 498int 499ahc_sblkctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 500{ 501 return (ahc_print_register(SBLKCTL_parse_table, 8, "SBLKCTL", 502 0x1f, regvalue, cur_col, wrap)); 503} 504 505int 506ahc_busy_targets_print(u_int regvalue, u_int *cur_col, u_int wrap) 507{ 508 return (ahc_print_register(NULL, 0, "BUSY_TARGETS", 509 0x20, regvalue, cur_col, wrap)); 510} 511 512int 513ahc_ultra_enb_print(u_int regvalue, u_int *cur_col, u_int wrap) 514{ 515 return (ahc_print_register(NULL, 0, "ULTRA_ENB", 516 0x30, regvalue, cur_col, wrap)); 517} 518 519int 520ahc_disc_dsb_print(u_int regvalue, u_int *cur_col, u_int wrap) 521{ 522 return (ahc_print_register(NULL, 0, "DISC_DSB", 523 0x32, regvalue, cur_col, wrap)); 524} 525 526int 527ahc_cmdsize_table_tail_print(u_int regvalue, u_int *cur_col, u_int wrap) 528{ 529 return (ahc_print_register(NULL, 0, "CMDSIZE_TABLE_TAIL", 530 0x34, regvalue, cur_col, wrap)); 531} 532 533int 534ahc_mwi_residual_print(u_int regvalue, u_int *cur_col, u_int wrap) 535{ 536 return (ahc_print_register(NULL, 0, "MWI_RESIDUAL", 537 0x38, regvalue, cur_col, wrap)); 538} 539 540int 541ahc_next_queued_scb_print(u_int regvalue, u_int *cur_col, u_int wrap) 542{ 543 return (ahc_print_register(NULL, 0, "NEXT_QUEUED_SCB", 544 0x39, regvalue, cur_col, wrap)); 545} 546 547int 548ahc_msg_out_print(u_int regvalue, u_int *cur_col, u_int wrap) 549{ 550 return (ahc_print_register(NULL, 0, "MSG_OUT", 551 0x3a, regvalue, cur_col, wrap)); 552} 553 554static ahc_reg_parse_entry_t DMAPARAMS_parse_table[] = { 555 { "FIFORESET", 0x01, 0x01 }, 556 { "FIFOFLUSH", 0x02, 0x02 }, 557 { "DIRECTION", 0x04, 0x04 }, 558 { "HDMAEN", 0x08, 0x08 }, 559 { "HDMAENACK", 0x08, 0x08 }, 560 { "SDMAEN", 0x10, 0x10 }, 561 { "SDMAENACK", 0x10, 0x10 }, 562 { "SCSIEN", 0x20, 0x20 }, 563 { "WIDEODD", 0x40, 0x40 }, 564 { "PRELOADEN", 0x80, 0x80 } 565}; 566 567int 568ahc_dmaparams_print(u_int regvalue, u_int *cur_col, u_int wrap) 569{ 570 return (ahc_print_register(DMAPARAMS_parse_table, 10, "DMAPARAMS", 571 0x3b, regvalue, cur_col, wrap)); 572} 573 574static ahc_reg_parse_entry_t SEQ_FLAGS_parse_table[] = { 575 { "NO_DISCONNECT", 0x01, 0x01 }, 576 { "SPHASE_PENDING", 0x02, 0x02 }, 577 { "DPHASE_PENDING", 0x04, 0x04 }, 578 { "CMDPHASE_PENDING", 0x08, 0x08 }, 579 { "TARG_CMD_PENDING", 0x10, 0x10 }, 580 { "DPHASE", 0x20, 0x20 }, 581 { "NO_CDB_SENT", 0x40, 0x40 }, 582 { "TARGET_CMD_IS_TAGGED",0x40, 0x40 }, 583 { "NOT_IDENTIFIED", 0x80, 0x80 } 584}; 585 586int 587ahc_seq_flags_print(u_int regvalue, u_int *cur_col, u_int wrap) 588{ 589 return (ahc_print_register(SEQ_FLAGS_parse_table, 9, "SEQ_FLAGS", 590 0x3c, regvalue, cur_col, wrap)); 591} 592 593int 594ahc_saved_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap) 595{ 596 return (ahc_print_register(NULL, 0, "SAVED_SCSIID", 597 0x3d, regvalue, cur_col, wrap)); 598} 599 600int 601ahc_saved_lun_print(u_int regvalue, u_int *cur_col, u_int wrap) 602{ 603 return (ahc_print_register(NULL, 0, "SAVED_LUN", 604 0x3e, regvalue, cur_col, wrap)); 605} 606 607static ahc_reg_parse_entry_t LASTPHASE_parse_table[] = { 608 { "MSGI", 0x20, 0x20 }, 609 { "IOI", 0x40, 0x40 }, 610 { "CDI", 0x80, 0x80 }, 611 { "P_DATAOUT", 0x00, 0x00 }, 612 { "P_BUSFREE", 0x01, 0x01 }, 613 { "P_DATAIN", 0x40, 0x40 }, 614 { "P_COMMAND", 0x80, 0x80 }, 615 { "P_MESGOUT", 0xa0, 0xa0 }, 616 { "P_STATUS", 0xc0, 0xc0 }, 617 { "PHASE_MASK", 0xe0, 0xe0 }, 618 { "P_MESGIN", 0xe0, 0xe0 } 619}; 620 621int 622ahc_lastphase_print(u_int regvalue, u_int *cur_col, u_int wrap) 623{ 624 return (ahc_print_register(LASTPHASE_parse_table, 11, "LASTPHASE", 625 0x3f, regvalue, cur_col, wrap)); 626} 627 628int 629ahc_waiting_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap) 630{ 631 return (ahc_print_register(NULL, 0, "WAITING_SCBH", 632 0x40, regvalue, cur_col, wrap)); 633} 634 635int 636ahc_disconnected_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap) 637{ 638 return (ahc_print_register(NULL, 0, "DISCONNECTED_SCBH", 639 0x41, regvalue, cur_col, wrap)); 640} 641 642int 643ahc_free_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap) 644{ 645 return (ahc_print_register(NULL, 0, "FREE_SCBH", 646 0x42, regvalue, cur_col, wrap)); 647} 648 649int 650ahc_complete_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap) 651{ 652 return (ahc_print_register(NULL, 0, "COMPLETE_SCBH", 653 0x43, regvalue, cur_col, wrap)); 654} 655 656int 657ahc_hscb_addr_print(u_int regvalue, u_int *cur_col, u_int wrap) 658{ 659 return (ahc_print_register(NULL, 0, "HSCB_ADDR", 660 0x44, regvalue, cur_col, wrap)); 661} 662 663int 664ahc_shared_data_addr_print(u_int regvalue, u_int *cur_col, u_int wrap) 665{ 666 return (ahc_print_register(NULL, 0, "SHARED_DATA_ADDR", 667 0x48, regvalue, cur_col, wrap)); 668} 669 670int 671ahc_kernel_qinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) 672{ 673 return (ahc_print_register(NULL, 0, "KERNEL_QINPOS", 674 0x4c, regvalue, cur_col, wrap)); 675} 676 677int 678ahc_qinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) 679{ 680 return (ahc_print_register(NULL, 0, "QINPOS", 681 0x4d, regvalue, cur_col, wrap)); 682} 683 684int 685ahc_qoutpos_print(u_int regvalue, u_int *cur_col, u_int wrap) 686{ 687 return (ahc_print_register(NULL, 0, "QOUTPOS", 688 0x4e, regvalue, cur_col, wrap)); 689} 690 691int 692ahc_kernel_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) 693{ 694 return (ahc_print_register(NULL, 0, "KERNEL_TQINPOS", 695 0x4f, regvalue, cur_col, wrap)); 696} 697 698int 699ahc_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap) 700{ 701 return (ahc_print_register(NULL, 0, "TQINPOS", 702 0x50, regvalue, cur_col, wrap)); 703} 704 705static ahc_reg_parse_entry_t ARG_1_parse_table[] = { 706 { "SPARE", 0x01, 0x01 }, 707 { "CONT_TARG_SESSION", 0x02, 0x02 }, 708 { "CONT_MSG_LOOP", 0x04, 0x04 }, 709 { "EXIT_MSG_LOOP", 0x08, 0x08 }, 710 { "MSGOUT_PHASEMIS", 0x10, 0x10 }, 711 { "SEND_REJ", 0x20, 0x20 }, 712 { "SEND_SENSE", 0x40, 0x40 }, 713 { "SEND_MSG", 0x80, 0x80 } 714}; 715 716int 717ahc_arg_1_print(u_int regvalue, u_int *cur_col, u_int wrap) 718{ 719 return (ahc_print_register(ARG_1_parse_table, 8, "ARG_1", 720 0x51, regvalue, cur_col, wrap)); 721} 722 723int 724ahc_arg_2_print(u_int regvalue, u_int *cur_col, u_int wrap) 725{ 726 return (ahc_print_register(NULL, 0, "ARG_2", 727 0x52, regvalue, cur_col, wrap)); 728} 729 730int 731ahc_last_msg_print(u_int regvalue, u_int *cur_col, u_int wrap) 732{ 733 return (ahc_print_register(NULL, 0, "LAST_MSG", 734 0x53, regvalue, cur_col, wrap)); 735} 736 737static ahc_reg_parse_entry_t SCSISEQ_TEMPLATE_parse_table[] = { 738 { "ENAUTOATNP", 0x02, 0x02 }, 739 { "ENAUTOATNI", 0x04, 0x04 }, 740 { "ENAUTOATNO", 0x08, 0x08 }, 741 { "ENRSELI", 0x10, 0x10 }, 742 { "ENSELI", 0x20, 0x20 }, 743 { "ENSELO", 0x40, 0x40 } 744}; 745 746int 747ahc_scsiseq_template_print(u_int regvalue, u_int *cur_col, u_int wrap) 748{ 749 return (ahc_print_register(SCSISEQ_TEMPLATE_parse_table, 6, "SCSISEQ_TEMPLATE", 750 0x54, regvalue, cur_col, wrap)); 751} 752 753static ahc_reg_parse_entry_t HA_274_BIOSGLOBAL_parse_table[] = { 754 { "HA_274_EXTENDED_TRANS",0x01, 0x01 } 755}; 756 757int 758ahc_ha_274_biosglobal_print(u_int regvalue, u_int *cur_col, u_int wrap) 759{ 760 return (ahc_print_register(HA_274_BIOSGLOBAL_parse_table, 1, "HA_274_BIOSGLOBAL", 761 0x56, regvalue, cur_col, wrap)); 762} 763 764static ahc_reg_parse_entry_t SEQ_FLAGS2_parse_table[] = { 765 { "SCB_DMA", 0x01, 0x01 }, 766 { "TARGET_MSG_PENDING", 0x02, 0x02 } 767}; 768 769int 770ahc_seq_flags2_print(u_int regvalue, u_int *cur_col, u_int wrap) 771{ 772 return (ahc_print_register(SEQ_FLAGS2_parse_table, 2, "SEQ_FLAGS2", 773 0x57, regvalue, cur_col, wrap)); 774} 775 776static ahc_reg_parse_entry_t SCSICONF_parse_table[] = { 777 { "ENSPCHK", 0x20, 0x20 }, 778 { "RESET_SCSI", 0x40, 0x40 }, 779 { "TERM_ENB", 0x80, 0x80 }, 780 { "HSCSIID", 0x07, 0x07 }, 781 { "HWSCSIID", 0x0f, 0x0f } 782}; 783 784int 785ahc_scsiconf_print(u_int regvalue, u_int *cur_col, u_int wrap) 786{ 787 return (ahc_print_register(SCSICONF_parse_table, 5, "SCSICONF", 788 0x5a, regvalue, cur_col, wrap)); 789} 790 791static ahc_reg_parse_entry_t INTDEF_parse_table[] = { 792 { "EDGE_TRIG", 0x80, 0x80 }, 793 { "VECTOR", 0x0f, 0x0f } 794}; 795 796int 797ahc_intdef_print(u_int regvalue, u_int *cur_col, u_int wrap) 798{ 799 return (ahc_print_register(INTDEF_parse_table, 2, "INTDEF", 800 0x5c, regvalue, cur_col, wrap)); 801} 802 803int 804ahc_hostconf_print(u_int regvalue, u_int *cur_col, u_int wrap) 805{ 806 return (ahc_print_register(NULL, 0, "HOSTCONF", 807 0x5d, regvalue, cur_col, wrap)); 808} 809 810static ahc_reg_parse_entry_t HA_274_BIOSCTRL_parse_table[] = { 811 { "CHANNEL_B_PRIMARY", 0x08, 0x08 }, 812 { "BIOSMODE", 0x30, 0x30 }, 813 { "BIOSDISABLED", 0x30, 0x30 } 814}; 815 816int 817ahc_ha_274_biosctrl_print(u_int regvalue, u_int *cur_col, u_int wrap) 818{ 819 return (ahc_print_register(HA_274_BIOSCTRL_parse_table, 3, "HA_274_BIOSCTRL", 820 0x5f, regvalue, cur_col, wrap)); 821} 822 823static ahc_reg_parse_entry_t SEQCTL_parse_table[] = { 824 { "LOADRAM", 0x01, 0x01 }, 825 { "SEQRESET", 0x02, 0x02 }, 826 { "STEP", 0x04, 0x04 }, 827 { "BRKADRINTEN", 0x08, 0x08 }, 828 { "FASTMODE", 0x10, 0x10 }, 829 { "FAILDIS", 0x20, 0x20 }, 830 { "PAUSEDIS", 0x40, 0x40 }, 831 { "PERRORDIS", 0x80, 0x80 } 832}; 833 834int 835ahc_seqctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 836{ 837 return (ahc_print_register(SEQCTL_parse_table, 8, "SEQCTL", 838 0x60, regvalue, cur_col, wrap)); 839} 840 841int 842ahc_seqram_print(u_int regvalue, u_int *cur_col, u_int wrap) 843{ 844 return (ahc_print_register(NULL, 0, "SEQRAM", 845 0x61, regvalue, cur_col, wrap)); 846} 847 848int 849ahc_seqaddr0_print(u_int regvalue, u_int *cur_col, u_int wrap) 850{ 851 return (ahc_print_register(NULL, 0, "SEQADDR0", 852 0x62, regvalue, cur_col, wrap)); 853} 854 855static ahc_reg_parse_entry_t SEQADDR1_parse_table[] = { 856 { "SEQADDR1_MASK", 0x01, 0x01 } 857}; 858 859int 860ahc_seqaddr1_print(u_int regvalue, u_int *cur_col, u_int wrap) 861{ 862 return (ahc_print_register(SEQADDR1_parse_table, 1, "SEQADDR1", 863 0x63, regvalue, cur_col, wrap)); 864} 865 866int 867ahc_accum_print(u_int regvalue, u_int *cur_col, u_int wrap) 868{ 869 return (ahc_print_register(NULL, 0, "ACCUM", 870 0x64, regvalue, cur_col, wrap)); 871} 872 873int 874ahc_sindex_print(u_int regvalue, u_int *cur_col, u_int wrap) 875{ 876 return (ahc_print_register(NULL, 0, "SINDEX", 877 0x65, regvalue, cur_col, wrap)); 878} 879 880int 881ahc_dindex_print(u_int regvalue, u_int *cur_col, u_int wrap) 882{ 883 return (ahc_print_register(NULL, 0, "DINDEX", 884 0x66, regvalue, cur_col, wrap)); 885} 886 887int 888ahc_allones_print(u_int regvalue, u_int *cur_col, u_int wrap) 889{ 890 return (ahc_print_register(NULL, 0, "ALLONES", 891 0x69, regvalue, cur_col, wrap)); 892} 893 894int 895ahc_none_print(u_int regvalue, u_int *cur_col, u_int wrap) 896{ 897 return (ahc_print_register(NULL, 0, "NONE", 898 0x6a, regvalue, cur_col, wrap)); 899} 900 901int 902ahc_allzeros_print(u_int regvalue, u_int *cur_col, u_int wrap) 903{ 904 return (ahc_print_register(NULL, 0, "ALLZEROS", 905 0x6a, regvalue, cur_col, wrap)); 906} 907 908static ahc_reg_parse_entry_t FLAGS_parse_table[] = { 909 { "CARRY", 0x01, 0x01 }, 910 { "ZERO", 0x02, 0x02 } 911}; 912 913int 914ahc_flags_print(u_int regvalue, u_int *cur_col, u_int wrap) 915{ 916 return (ahc_print_register(FLAGS_parse_table, 2, "FLAGS", 917 0x6b, regvalue, cur_col, wrap)); 918} 919 920int 921ahc_sindir_print(u_int regvalue, u_int *cur_col, u_int wrap) 922{ 923 return (ahc_print_register(NULL, 0, "SINDIR", 924 0x6c, regvalue, cur_col, wrap)); 925} 926 927int 928ahc_dindir_print(u_int regvalue, u_int *cur_col, u_int wrap) 929{ 930 return (ahc_print_register(NULL, 0, "DINDIR", 931 0x6d, regvalue, cur_col, wrap)); 932} 933 934int 935ahc_function1_print(u_int regvalue, u_int *cur_col, u_int wrap) 936{ 937 return (ahc_print_register(NULL, 0, "FUNCTION1", 938 0x6e, regvalue, cur_col, wrap)); 939} 940 941int 942ahc_stack_print(u_int regvalue, u_int *cur_col, u_int wrap) 943{ 944 return (ahc_print_register(NULL, 0, "STACK", 945 0x6f, regvalue, cur_col, wrap)); 946} 947 948int 949ahc_targ_offset_print(u_int regvalue, u_int *cur_col, u_int wrap) 950{ 951 return (ahc_print_register(NULL, 0, "TARG_OFFSET", 952 0x70, regvalue, cur_col, wrap)); 953} 954 955int 956ahc_sram_base_print(u_int regvalue, u_int *cur_col, u_int wrap) 957{ 958 return (ahc_print_register(NULL, 0, "SRAM_BASE", 959 0x70, regvalue, cur_col, wrap)); 960} 961 962static ahc_reg_parse_entry_t DSCOMMAND0_parse_table[] = { 963 { "CIOPARCKEN", 0x01, 0x01 }, 964 { "USCBSIZE32", 0x02, 0x02 }, 965 { "RAMPS", 0x04, 0x04 }, 966 { "INTSCBRAMSEL", 0x08, 0x08 }, 967 { "EXTREQLCK", 0x10, 0x10 }, 968 { "MPARCKEN", 0x20, 0x20 }, 969 { "DPARCKEN", 0x40, 0x40 }, 970 { "CACHETHEN", 0x80, 0x80 } 971}; 972 973int 974ahc_dscommand0_print(u_int regvalue, u_int *cur_col, u_int wrap) 975{ 976 return (ahc_print_register(DSCOMMAND0_parse_table, 8, "DSCOMMAND0", 977 0x84, regvalue, cur_col, wrap)); 978} 979 980static ahc_reg_parse_entry_t BCTL_parse_table[] = { 981 { "ENABLE", 0x01, 0x01 }, 982 { "ACE", 0x08, 0x08 } 983}; 984 985int 986ahc_bctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 987{ 988 return (ahc_print_register(BCTL_parse_table, 2, "BCTL", 989 0x84, regvalue, cur_col, wrap)); 990} 991 992static ahc_reg_parse_entry_t BUSTIME_parse_table[] = { 993 { "BON", 0x0f, 0x0f }, 994 { "BOFF", 0xf0, 0xf0 } 995}; 996 997int 998ahc_bustime_print(u_int regvalue, u_int *cur_col, u_int wrap) 999{ 1000 return (ahc_print_register(BUSTIME_parse_table, 2, "BUSTIME", 1001 0x85, regvalue, cur_col, wrap)); 1002} 1003 1004static ahc_reg_parse_entry_t DSCOMMAND1_parse_table[] = { 1005 { "HADDLDSEL0", 0x01, 0x01 }, 1006 { "HADDLDSEL1", 0x02, 0x02 }, 1007 { "DSLATT", 0xfc, 0xfc } 1008}; 1009 1010int 1011ahc_dscommand1_print(u_int regvalue, u_int *cur_col, u_int wrap) 1012{ 1013 return (ahc_print_register(DSCOMMAND1_parse_table, 3, "DSCOMMAND1", 1014 0x85, regvalue, cur_col, wrap)); 1015} 1016 1017static ahc_reg_parse_entry_t BUSSPD_parse_table[] = { 1018 { "STBON", 0x07, 0x07 }, 1019 { "STBOFF", 0x38, 0x38 }, 1020 { "DFTHRSH_75", 0x80, 0x80 }, 1021 { "DFTHRSH", 0xc0, 0xc0 }, 1022 { "DFTHRSH_100", 0xc0, 0xc0 } 1023}; 1024 1025int 1026ahc_busspd_print(u_int regvalue, u_int *cur_col, u_int wrap) 1027{ 1028 return (ahc_print_register(BUSSPD_parse_table, 5, "BUSSPD", 1029 0x86, regvalue, cur_col, wrap)); 1030} 1031 1032static ahc_reg_parse_entry_t HS_MAILBOX_parse_table[] = { 1033 { "SEQ_MAILBOX", 0x0f, 0x0f }, 1034 { "HOST_TQINPOS", 0x80, 0x80 }, 1035 { "HOST_MAILBOX", 0xf0, 0xf0 } 1036}; 1037 1038int 1039ahc_hs_mailbox_print(u_int regvalue, u_int *cur_col, u_int wrap) 1040{ 1041 return (ahc_print_register(HS_MAILBOX_parse_table, 3, "HS_MAILBOX", 1042 0x86, regvalue, cur_col, wrap)); 1043} 1044 1045static ahc_reg_parse_entry_t DSPCISTATUS_parse_table[] = { 1046 { "DFTHRSH_100", 0xc0, 0xc0 } 1047}; 1048 1049int 1050ahc_dspcistatus_print(u_int regvalue, u_int *cur_col, u_int wrap) 1051{ 1052 return (ahc_print_register(DSPCISTATUS_parse_table, 1, "DSPCISTATUS", 1053 0x86, regvalue, cur_col, wrap)); 1054} 1055 1056static ahc_reg_parse_entry_t HCNTRL_parse_table[] = { 1057 { "CHIPRST", 0x01, 0x01 }, 1058 { "CHIPRSTACK", 0x01, 0x01 }, 1059 { "INTEN", 0x02, 0x02 }, 1060 { "PAUSE", 0x04, 0x04 }, 1061 { "IRQMS", 0x08, 0x08 }, 1062 { "SWINT", 0x10, 0x10 }, 1063 { "POWRDN", 0x40, 0x40 } 1064}; 1065 1066int 1067ahc_hcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap) 1068{ 1069 return (ahc_print_register(HCNTRL_parse_table, 7, "HCNTRL", 1070 0x87, regvalue, cur_col, wrap)); 1071} 1072 1073int 1074ahc_haddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1075{ 1076 return (ahc_print_register(NULL, 0, "HADDR", 1077 0x88, regvalue, cur_col, wrap)); 1078} 1079 1080int 1081ahc_hcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1082{ 1083 return (ahc_print_register(NULL, 0, "HCNT", 1084 0x8c, regvalue, cur_col, wrap)); 1085} 1086 1087int 1088ahc_scbptr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1089{ 1090 return (ahc_print_register(NULL, 0, "SCBPTR", 1091 0x90, regvalue, cur_col, wrap)); 1092} 1093 1094static ahc_reg_parse_entry_t INTSTAT_parse_table[] = { 1095 { "SEQINT", 0x01, 0x01 }, 1096 { "CMDCMPLT", 0x02, 0x02 }, 1097 { "SCSIINT", 0x04, 0x04 }, 1098 { "BRKADRINT", 0x08, 0x08 }, 1099 { "BAD_PHASE", 0x01, 0x01 }, 1100 { "INT_PEND", 0x0f, 0x0f }, 1101 { "SEND_REJECT", 0x11, 0x11 }, 1102 { "PROTO_VIOLATION", 0x21, 0x21 }, 1103 { "NO_MATCH", 0x31, 0x31 }, 1104 { "IGN_WIDE_RES", 0x41, 0x41 }, 1105 { "PDATA_REINIT", 0x51, 0x51 }, 1106 { "HOST_MSG_LOOP", 0x61, 0x61 }, 1107 { "BAD_STATUS", 0x71, 0x71 }, 1108 { "PERR_DETECTED", 0x81, 0x81 }, 1109 { "DATA_OVERRUN", 0x91, 0x91 }, 1110 { "MKMSG_FAILED", 0xa1, 0xa1 }, 1111 { "MISSED_BUSFREE", 0xb1, 0xb1 }, 1112 { "SCB_MISMATCH", 0xc1, 0xc1 }, 1113 { "NO_FREE_SCB", 0xd1, 0xd1 }, 1114 { "OUT_OF_RANGE", 0xe1, 0xe1 }, 1115 { "SEQINT_MASK", 0xf1, 0xf1 } 1116}; 1117 1118int 1119ahc_intstat_print(u_int regvalue, u_int *cur_col, u_int wrap) 1120{ 1121 return (ahc_print_register(INTSTAT_parse_table, 21, "INTSTAT", 1122 0x91, regvalue, cur_col, wrap)); 1123} 1124 1125static ahc_reg_parse_entry_t ERROR_parse_table[] = { 1126 { "ILLHADDR", 0x01, 0x01 }, 1127 { "ILLSADDR", 0x02, 0x02 }, 1128 { "ILLOPCODE", 0x04, 0x04 }, 1129 { "SQPARERR", 0x08, 0x08 }, 1130 { "DPARERR", 0x10, 0x10 }, 1131 { "MPARERR", 0x20, 0x20 }, 1132 { "PCIERRSTAT", 0x40, 0x40 }, 1133 { "CIOPARERR", 0x80, 0x80 } 1134}; 1135 1136int 1137ahc_error_print(u_int regvalue, u_int *cur_col, u_int wrap) 1138{ 1139 return (ahc_print_register(ERROR_parse_table, 8, "ERROR", 1140 0x92, regvalue, cur_col, wrap)); 1141} 1142 1143static ahc_reg_parse_entry_t CLRINT_parse_table[] = { 1144 { "CLRSEQINT", 0x01, 0x01 }, 1145 { "CLRCMDINT", 0x02, 0x02 }, 1146 { "CLRSCSIINT", 0x04, 0x04 }, 1147 { "CLRBRKADRINT", 0x08, 0x08 }, 1148 { "CLRPARERR", 0x10, 0x10 } 1149}; 1150 1151int 1152ahc_clrint_print(u_int regvalue, u_int *cur_col, u_int wrap) 1153{ 1154 return (ahc_print_register(CLRINT_parse_table, 5, "CLRINT", 1155 0x92, regvalue, cur_col, wrap)); 1156} 1157 1158static ahc_reg_parse_entry_t DFCNTRL_parse_table[] = { 1159 { "FIFORESET", 0x01, 0x01 }, 1160 { "FIFOFLUSH", 0x02, 0x02 }, 1161 { "DIRECTION", 0x04, 0x04 }, 1162 { "HDMAEN", 0x08, 0x08 }, 1163 { "HDMAENACK", 0x08, 0x08 }, 1164 { "SDMAEN", 0x10, 0x10 }, 1165 { "SDMAENACK", 0x10, 0x10 }, 1166 { "SCSIEN", 0x20, 0x20 }, 1167 { "WIDEODD", 0x40, 0x40 }, 1168 { "PRELOADEN", 0x80, 0x80 } 1169}; 1170 1171int 1172ahc_dfcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap) 1173{ 1174 return (ahc_print_register(DFCNTRL_parse_table, 10, "DFCNTRL", 1175 0x93, regvalue, cur_col, wrap)); 1176} 1177 1178static ahc_reg_parse_entry_t DFSTATUS_parse_table[] = { 1179 { "FIFOEMP", 0x01, 0x01 }, 1180 { "FIFOFULL", 0x02, 0x02 }, 1181 { "DFTHRESH", 0x04, 0x04 }, 1182 { "HDONE", 0x08, 0x08 }, 1183 { "MREQPEND", 0x10, 0x10 }, 1184 { "FIFOQWDEMP", 0x20, 0x20 }, 1185 { "DFCACHETH", 0x40, 0x40 }, 1186 { "PRELOAD_AVAIL", 0x80, 0x80 } 1187}; 1188 1189int 1190ahc_dfstatus_print(u_int regvalue, u_int *cur_col, u_int wrap) 1191{ 1192 return (ahc_print_register(DFSTATUS_parse_table, 8, "DFSTATUS", 1193 0x94, regvalue, cur_col, wrap)); 1194} 1195 1196int 1197ahc_dfwaddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1198{ 1199 return (ahc_print_register(NULL, 0, "DFWADDR", 1200 0x95, regvalue, cur_col, wrap)); 1201} 1202 1203int 1204ahc_dfraddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1205{ 1206 return (ahc_print_register(NULL, 0, "DFRADDR", 1207 0x97, regvalue, cur_col, wrap)); 1208} 1209 1210int 1211ahc_dfdat_print(u_int regvalue, u_int *cur_col, u_int wrap) 1212{ 1213 return (ahc_print_register(NULL, 0, "DFDAT", 1214 0x99, regvalue, cur_col, wrap)); 1215} 1216 1217static ahc_reg_parse_entry_t SCBCNT_parse_table[] = { 1218 { "SCBAUTO", 0x80, 0x80 }, 1219 { "SCBCNT_MASK", 0x1f, 0x1f } 1220}; 1221 1222int 1223ahc_scbcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1224{ 1225 return (ahc_print_register(SCBCNT_parse_table, 2, "SCBCNT", 1226 0x9a, regvalue, cur_col, wrap)); 1227} 1228 1229int 1230ahc_qinfifo_print(u_int regvalue, u_int *cur_col, u_int wrap) 1231{ 1232 return (ahc_print_register(NULL, 0, "QINFIFO", 1233 0x9b, regvalue, cur_col, wrap)); 1234} 1235 1236int 1237ahc_qincnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1238{ 1239 return (ahc_print_register(NULL, 0, "QINCNT", 1240 0x9c, regvalue, cur_col, wrap)); 1241} 1242 1243static ahc_reg_parse_entry_t CRCCONTROL1_parse_table[] = { 1244 { "TARGCRCCNTEN", 0x04, 0x04 }, 1245 { "TARGCRCENDEN", 0x08, 0x08 }, 1246 { "CRCREQCHKEN", 0x10, 0x10 }, 1247 { "CRCENDCHKEN", 0x20, 0x20 }, 1248 { "CRCVALCHKEN", 0x40, 0x40 }, 1249 { "CRCONSEEN", 0x80, 0x80 } 1250}; 1251 1252int 1253ahc_crccontrol1_print(u_int regvalue, u_int *cur_col, u_int wrap) 1254{ 1255 return (ahc_print_register(CRCCONTROL1_parse_table, 6, "CRCCONTROL1", 1256 0x9d, regvalue, cur_col, wrap)); 1257} 1258 1259int 1260ahc_qoutfifo_print(u_int regvalue, u_int *cur_col, u_int wrap) 1261{ 1262 return (ahc_print_register(NULL, 0, "QOUTFIFO", 1263 0x9d, regvalue, cur_col, wrap)); 1264} 1265 1266int 1267ahc_qoutcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1268{ 1269 return (ahc_print_register(NULL, 0, "QOUTCNT", 1270 0x9e, regvalue, cur_col, wrap)); 1271} 1272 1273static ahc_reg_parse_entry_t SCSIPHASE_parse_table[] = { 1274 { "DATA_OUT_PHASE", 0x01, 0x01 }, 1275 { "DATA_IN_PHASE", 0x02, 0x02 }, 1276 { "MSG_OUT_PHASE", 0x04, 0x04 }, 1277 { "MSG_IN_PHASE", 0x08, 0x08 }, 1278 { "COMMAND_PHASE", 0x10, 0x10 }, 1279 { "STATUS_PHASE", 0x20, 0x20 }, 1280 { "DATA_PHASE_MASK", 0x03, 0x03 } 1281}; 1282 1283int 1284ahc_scsiphase_print(u_int regvalue, u_int *cur_col, u_int wrap) 1285{ 1286 return (ahc_print_register(SCSIPHASE_parse_table, 7, "SCSIPHASE", 1287 0x9e, regvalue, cur_col, wrap)); 1288} 1289 1290static ahc_reg_parse_entry_t SFUNCT_parse_table[] = { 1291 { "ALT_MODE", 0x80, 0x80 } 1292}; 1293 1294int 1295ahc_sfunct_print(u_int regvalue, u_int *cur_col, u_int wrap) 1296{ 1297 return (ahc_print_register(SFUNCT_parse_table, 1, "SFUNCT", 1298 0x9f, regvalue, cur_col, wrap)); 1299} 1300 1301int 1302ahc_scb_base_print(u_int regvalue, u_int *cur_col, u_int wrap) 1303{ 1304 return (ahc_print_register(NULL, 0, "SCB_BASE", 1305 0xa0, regvalue, cur_col, wrap)); 1306} 1307 1308int 1309ahc_scb_cdb_ptr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1310{ 1311 return (ahc_print_register(NULL, 0, "SCB_CDB_PTR", 1312 0xa0, regvalue, cur_col, wrap)); 1313} 1314 1315int 1316ahc_scb_residual_sgptr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1317{ 1318 return (ahc_print_register(NULL, 0, "SCB_RESIDUAL_SGPTR", 1319 0xa4, regvalue, cur_col, wrap)); 1320} 1321 1322int 1323ahc_scb_scsi_status_print(u_int regvalue, u_int *cur_col, u_int wrap) 1324{ 1325 return (ahc_print_register(NULL, 0, "SCB_SCSI_STATUS", 1326 0xa8, regvalue, cur_col, wrap)); 1327} 1328 1329int 1330ahc_scb_target_phases_print(u_int regvalue, u_int *cur_col, u_int wrap) 1331{ 1332 return (ahc_print_register(NULL, 0, "SCB_TARGET_PHASES", 1333 0xa9, regvalue, cur_col, wrap)); 1334} 1335 1336int 1337ahc_scb_target_data_dir_print(u_int regvalue, u_int *cur_col, u_int wrap) 1338{ 1339 return (ahc_print_register(NULL, 0, "SCB_TARGET_DATA_DIR", 1340 0xaa, regvalue, cur_col, wrap)); 1341} 1342 1343int 1344ahc_scb_target_itag_print(u_int regvalue, u_int *cur_col, u_int wrap) 1345{ 1346 return (ahc_print_register(NULL, 0, "SCB_TARGET_ITAG", 1347 0xab, regvalue, cur_col, wrap)); 1348} 1349 1350int 1351ahc_scb_dataptr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1352{ 1353 return (ahc_print_register(NULL, 0, "SCB_DATAPTR", 1354 0xac, regvalue, cur_col, wrap)); 1355} 1356 1357static ahc_reg_parse_entry_t SCB_DATACNT_parse_table[] = { 1358 { "SG_LAST_SEG", 0x80, 0x80 }, 1359 { "SG_HIGH_ADDR_BITS", 0x7f, 0x7f } 1360}; 1361 1362int 1363ahc_scb_datacnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1364{ 1365 return (ahc_print_register(SCB_DATACNT_parse_table, 2, "SCB_DATACNT", 1366 0xb0, regvalue, cur_col, wrap)); 1367} 1368 1369static ahc_reg_parse_entry_t SCB_SGPTR_parse_table[] = { 1370 { "SG_LIST_NULL", 0x01, 0x01 }, 1371 { "SG_FULL_RESID", 0x02, 0x02 }, 1372 { "SG_RESID_VALID", 0x04, 0x04 } 1373}; 1374 1375int 1376ahc_scb_sgptr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1377{ 1378 return (ahc_print_register(SCB_SGPTR_parse_table, 3, "SCB_SGPTR", 1379 0xb4, regvalue, cur_col, wrap)); 1380} 1381 1382static ahc_reg_parse_entry_t SCB_CONTROL_parse_table[] = { 1383 { "DISCONNECTED", 0x04, 0x04 }, 1384 { "ULTRAENB", 0x08, 0x08 }, 1385 { "MK_MESSAGE", 0x10, 0x10 }, 1386 { "TAG_ENB", 0x20, 0x20 }, 1387 { "DISCENB", 0x40, 0x40 }, 1388 { "TARGET_SCB", 0x80, 0x80 }, 1389 { "STATUS_RCVD", 0x80, 0x80 }, 1390 { "SCB_TAG_TYPE", 0x03, 0x03 } 1391}; 1392 1393int 1394ahc_scb_control_print(u_int regvalue, u_int *cur_col, u_int wrap) 1395{ 1396 return (ahc_print_register(SCB_CONTROL_parse_table, 8, "SCB_CONTROL", 1397 0xb8, regvalue, cur_col, wrap)); 1398} 1399 1400static ahc_reg_parse_entry_t SCB_SCSIID_parse_table[] = { 1401 { "TWIN_CHNLB", 0x80, 0x80 }, 1402 { "OID", 0x0f, 0x0f }, 1403 { "TWIN_TID", 0x70, 0x70 }, 1404 { "TID", 0xf0, 0xf0 } 1405}; 1406 1407int 1408ahc_scb_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap) 1409{ 1410 return (ahc_print_register(SCB_SCSIID_parse_table, 4, "SCB_SCSIID", 1411 0xb9, regvalue, cur_col, wrap)); 1412} 1413 1414static ahc_reg_parse_entry_t SCB_LUN_parse_table[] = { 1415 { "SCB_XFERLEN_ODD", 0x80, 0x80 }, 1416 { "LID", 0x3f, 0x3f } 1417}; 1418 1419int 1420ahc_scb_lun_print(u_int regvalue, u_int *cur_col, u_int wrap) 1421{ 1422 return (ahc_print_register(SCB_LUN_parse_table, 2, "SCB_LUN", 1423 0xba, regvalue, cur_col, wrap)); 1424} 1425 1426int 1427ahc_scb_tag_print(u_int regvalue, u_int *cur_col, u_int wrap) 1428{ 1429 return (ahc_print_register(NULL, 0, "SCB_TAG", 1430 0xbb, regvalue, cur_col, wrap)); 1431} 1432 1433int 1434ahc_scb_cdb_len_print(u_int regvalue, u_int *cur_col, u_int wrap) 1435{ 1436 return (ahc_print_register(NULL, 0, "SCB_CDB_LEN", 1437 0xbc, regvalue, cur_col, wrap)); 1438} 1439 1440int 1441ahc_scb_scsirate_print(u_int regvalue, u_int *cur_col, u_int wrap) 1442{ 1443 return (ahc_print_register(NULL, 0, "SCB_SCSIRATE", 1444 0xbd, regvalue, cur_col, wrap)); 1445} 1446 1447int 1448ahc_scb_scsioffset_print(u_int regvalue, u_int *cur_col, u_int wrap) 1449{ 1450 return (ahc_print_register(NULL, 0, "SCB_SCSIOFFSET", 1451 0xbe, regvalue, cur_col, wrap)); 1452} 1453 1454int 1455ahc_scb_next_print(u_int regvalue, u_int *cur_col, u_int wrap) 1456{ 1457 return (ahc_print_register(NULL, 0, "SCB_NEXT", 1458 0xbf, regvalue, cur_col, wrap)); 1459} 1460 1461int 1462ahc_scb_64_spare_print(u_int regvalue, u_int *cur_col, u_int wrap) 1463{ 1464 return (ahc_print_register(NULL, 0, "SCB_64_SPARE", 1465 0xc0, regvalue, cur_col, wrap)); 1466} 1467 1468static ahc_reg_parse_entry_t SEECTL_2840_parse_table[] = { 1469 { "DO_2840", 0x01, 0x01 }, 1470 { "CK_2840", 0x02, 0x02 }, 1471 { "CS_2840", 0x04, 0x04 } 1472}; 1473 1474int 1475ahc_seectl_2840_print(u_int regvalue, u_int *cur_col, u_int wrap) 1476{ 1477 return (ahc_print_register(SEECTL_2840_parse_table, 3, "SEECTL_2840", 1478 0xc0, regvalue, cur_col, wrap)); 1479} 1480 1481static ahc_reg_parse_entry_t STATUS_2840_parse_table[] = { 1482 { "DI_2840", 0x01, 0x01 }, 1483 { "EEPROM_TF", 0x80, 0x80 }, 1484 { "ADSEL", 0x1e, 0x1e }, 1485 { "BIOS_SEL", 0x60, 0x60 } 1486}; 1487 1488int 1489ahc_status_2840_print(u_int regvalue, u_int *cur_col, u_int wrap) 1490{ 1491 return (ahc_print_register(STATUS_2840_parse_table, 4, "STATUS_2840", 1492 0xc1, regvalue, cur_col, wrap)); 1493} 1494 1495int 1496ahc_scb_64_btt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1497{ 1498 return (ahc_print_register(NULL, 0, "SCB_64_BTT", 1499 0xd0, regvalue, cur_col, wrap)); 1500} 1501 1502int 1503ahc_cchaddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1504{ 1505 return (ahc_print_register(NULL, 0, "CCHADDR", 1506 0xe0, regvalue, cur_col, wrap)); 1507} 1508 1509int 1510ahc_cchcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1511{ 1512 return (ahc_print_register(NULL, 0, "CCHCNT", 1513 0xe8, regvalue, cur_col, wrap)); 1514} 1515 1516int 1517ahc_ccsgram_print(u_int regvalue, u_int *cur_col, u_int wrap) 1518{ 1519 return (ahc_print_register(NULL, 0, "CCSGRAM", 1520 0xe9, regvalue, cur_col, wrap)); 1521} 1522 1523int 1524ahc_ccsgaddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1525{ 1526 return (ahc_print_register(NULL, 0, "CCSGADDR", 1527 0xea, regvalue, cur_col, wrap)); 1528} 1529 1530static ahc_reg_parse_entry_t CCSGCTL_parse_table[] = { 1531 { "CCSGRESET", 0x01, 0x01 }, 1532 { "SG_FETCH_NEEDED", 0x02, 0x02 }, 1533 { "CCSGEN", 0x08, 0x08 }, 1534 { "CCSGDONE", 0x80, 0x80 } 1535}; 1536 1537int 1538ahc_ccsgctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 1539{ 1540 return (ahc_print_register(CCSGCTL_parse_table, 4, "CCSGCTL", 1541 0xeb, regvalue, cur_col, wrap)); 1542} 1543 1544int 1545ahc_ccscbram_print(u_int regvalue, u_int *cur_col, u_int wrap) 1546{ 1547 return (ahc_print_register(NULL, 0, "CCSCBRAM", 1548 0xec, regvalue, cur_col, wrap)); 1549} 1550 1551int 1552ahc_ccscbaddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1553{ 1554 return (ahc_print_register(NULL, 0, "CCSCBADDR", 1555 0xed, regvalue, cur_col, wrap)); 1556} 1557 1558static ahc_reg_parse_entry_t CCSCBCTL_parse_table[] = { 1559 { "CCSCBRESET", 0x01, 0x01 }, 1560 { "CCSCBDIR", 0x04, 0x04 }, 1561 { "CCSCBEN", 0x08, 0x08 }, 1562 { "CCARREN", 0x10, 0x10 }, 1563 { "ARRDONE", 0x40, 0x40 }, 1564 { "CCSCBDONE", 0x80, 0x80 } 1565}; 1566 1567int 1568ahc_ccscbctl_print(u_int regvalue, u_int *cur_col, u_int wrap) 1569{ 1570 return (ahc_print_register(CCSCBCTL_parse_table, 6, "CCSCBCTL", 1571 0xee, regvalue, cur_col, wrap)); 1572} 1573 1574int 1575ahc_ccscbcnt_print(u_int regvalue, u_int *cur_col, u_int wrap) 1576{ 1577 return (ahc_print_register(NULL, 0, "CCSCBCNT", 1578 0xef, regvalue, cur_col, wrap)); 1579} 1580 1581int 1582ahc_scbbaddr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1583{ 1584 return (ahc_print_register(NULL, 0, "SCBBADDR", 1585 0xf0, regvalue, cur_col, wrap)); 1586} 1587 1588int 1589ahc_ccscbptr_print(u_int regvalue, u_int *cur_col, u_int wrap) 1590{ 1591 return (ahc_print_register(NULL, 0, "CCSCBPTR", 1592 0xf1, regvalue, cur_col, wrap)); 1593} 1594 1595int 1596ahc_hnscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap) 1597{ 1598 return (ahc_print_register(NULL, 0, "HNSCB_QOFF", 1599 0xf4, regvalue, cur_col, wrap)); 1600} 1601 1602int 1603ahc_snscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap) 1604{ 1605 return (ahc_print_register(NULL, 0, "SNSCB_QOFF", 1606 0xf6, regvalue, cur_col, wrap)); 1607} 1608 1609int 1610ahc_sdscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap) 1611{ 1612 return (ahc_print_register(NULL, 0, "SDSCB_QOFF", 1613 0xf8, regvalue, cur_col, wrap)); 1614} 1615 1616static ahc_reg_parse_entry_t QOFF_CTLSTA_parse_table[] = { 1617 { "SDSCB_ROLLOVER", 0x10, 0x10 }, 1618 { "SNSCB_ROLLOVER", 0x20, 0x20 }, 1619 { "SCB_AVAIL", 0x40, 0x40 }, 1620 { "SCB_QSIZE_256", 0x06, 0x06 }, 1621 { "SCB_QSIZE", 0x07, 0x07 } 1622}; 1623 1624int 1625ahc_qoff_ctlsta_print(u_int regvalue, u_int *cur_col, u_int wrap) 1626{ 1627 return (ahc_print_register(QOFF_CTLSTA_parse_table, 5, "QOFF_CTLSTA", 1628 0xfa, regvalue, cur_col, wrap)); 1629} 1630 1631static ahc_reg_parse_entry_t DFF_THRSH_parse_table[] = { 1632 { "RD_DFTHRSH_MIN", 0x00, 0x00 }, 1633 { "WR_DFTHRSH_MIN", 0x00, 0x00 }, 1634 { "RD_DFTHRSH_25", 0x01, 0x01 }, 1635 { "RD_DFTHRSH_50", 0x02, 0x02 }, 1636 { "RD_DFTHRSH_63", 0x03, 0x03 }, 1637 { "RD_DFTHRSH_75", 0x04, 0x04 }, 1638 { "RD_DFTHRSH_85", 0x05, 0x05 }, 1639 { "RD_DFTHRSH_90", 0x06, 0x06 }, 1640 { "RD_DFTHRSH", 0x07, 0x07 }, 1641 { "RD_DFTHRSH_MAX", 0x07, 0x07 }, 1642 { "WR_DFTHRSH_25", 0x10, 0x10 }, 1643 { "WR_DFTHRSH_50", 0x20, 0x20 }, 1644 { "WR_DFTHRSH_63", 0x30, 0x30 }, 1645 { "WR_DFTHRSH_75", 0x40, 0x40 }, 1646 { "WR_DFTHRSH_85", 0x50, 0x50 }, 1647 { "WR_DFTHRSH_90", 0x60, 0x60 }, 1648 { "WR_DFTHRSH", 0x70, 0x70 }, 1649 { "WR_DFTHRSH_MAX", 0x70, 0x70 } 1650}; 1651 1652int 1653ahc_dff_thrsh_print(u_int regvalue, u_int *cur_col, u_int wrap) 1654{ 1655 return (ahc_print_register(DFF_THRSH_parse_table, 18, "DFF_THRSH", 1656 0xfb, regvalue, cur_col, wrap)); 1657} 1658 1659static ahc_reg_parse_entry_t SG_CACHE_SHADOW_parse_table[] = { 1660 { "LAST_SEG_DONE", 0x01, 0x01 }, 1661 { "LAST_SEG", 0x02, 0x02 }, 1662 { "SG_ADDR_MASK", 0xf8, 0xf8 } 1663}; 1664 1665int 1666ahc_sg_cache_shadow_print(u_int regvalue, u_int *cur_col, u_int wrap) 1667{ 1668 return (ahc_print_register(SG_CACHE_SHADOW_parse_table, 3, "SG_CACHE_SHADOW", 1669 0xfc, regvalue, cur_col, wrap)); 1670} 1671 1672static ahc_reg_parse_entry_t SG_CACHE_PRE_parse_table[] = { 1673 { "LAST_SEG_DONE", 0x01, 0x01 }, 1674 { "LAST_SEG", 0x02, 0x02 }, 1675 { "SG_ADDR_MASK", 0xf8, 0xf8 } 1676}; 1677 1678int 1679ahc_sg_cache_pre_print(u_int regvalue, u_int *cur_col, u_int wrap) 1680{ 1681 return (ahc_print_register(SG_CACHE_PRE_parse_table, 3, "SG_CACHE_PRE", 1682 0xfc, regvalue, cur_col, wrap)); 1683} 1684 1685