1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at 9 * http://www.opensource.org/licenses/cddl1.txt. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright (c) 2004-2012 Emulex. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _EMLXS_CONFIG_H 28 #define _EMLXS_CONFIG_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 #define EMLXS_CFG_STR_SIZE 32 35 #define EMLXS_CFG_HELP_SIZE 80 36 37 typedef struct emlxs_config 38 { 39 char string[EMLXS_CFG_STR_SIZE]; 40 uint32_t low; 41 uint32_t hi; 42 uint32_t def; 43 uint32_t current; 44 uint32_t flags; 45 char help[EMLXS_CFG_HELP_SIZE]; 46 } emlxs_config_t; 47 48 49 typedef enum emlxs_cfg_parm 50 { 51 CFG_CONSOLE_NOTICES, /* console-notices */ 52 CFG_CONSOLE_WARNINGS, /* console-warnings */ 53 CFG_CONSOLE_ERRORS, /* console-errors */ 54 CFG_CONSOLE_DEBUGS, /* console-debugs (hidden) */ 55 CFG_LOG_NOTICES, /* log-notices */ 56 CFG_LOG_WARNINGS, /* log-warnings */ 57 CFG_LOG_ERRORS, /* log-errors */ 58 CFG_LOG_DEBUGS, /* log-debugs (hidden) */ 59 CFG_NUM_IOCBS, /* num-iocbs */ 60 CFG_MAX_XFER_SIZE, /* max-xfer-size */ 61 CFG_UB_BUFS, /* ub-bufs */ 62 CFG_NETWORK_ON, /* network-on */ 63 CFG_ACK0, /* ack0 */ 64 CFG_TOPOLOGY, /* topology */ 65 CFG_LINK_SPEED, /* link-speed */ 66 CFG_NUM_NODES, /* num-nodes */ 67 CFG_CR_DELAY, /* cr-delay */ 68 CFG_CR_COUNT, /* cr-count */ 69 CFG_ASSIGN_ALPA, /* assign-alpa */ 70 CFG_ADISC_SUPPORT, /* adisc-support */ 71 CFG_PM_SUPPORT, /* pm-support */ 72 CFG_PM_IDLE, /* pm-idle */ 73 CFG_FW_CHECK, /* fw-check (hidden) */ 74 CFG_TRI_REQUIRED, /* tri-required (hidden) */ 75 CFG_DISC_TIMEOUT, /* discovery-timeout (hidden) */ 76 CFG_LINKUP_TIMEOUT, /* linkup-timeout (hidden) */ 77 CFG_LINKUP_DELAY, /* linkup-delay */ 78 CFG_OFFLINE_TIMEOUT, /* offline-timeout (hidden) */ 79 CFG_LILP_ENABLE, /* enable-lilp (hidden) */ 80 CFG_PCI_MAX_READ, /* pci-max-read */ 81 CFG_HEARTBEAT_ENABLE, /* heartbeat-enable (hidden) */ 82 CFG_RESET_ENABLE, /* reset-enable (hidden) */ 83 CFG_TIMEOUT_ENABLE, /* timeout-enable (hidden) */ 84 CFG_NUM_IOTAGS, /* num-iotags (hidden) */ 85 #ifdef NODE_THROTTLE_SUPPORT 86 CFG_TGT_DEPTH, /* target-depth */ 87 #endif /* NODE_THROTTLE_SUPPORT */ 88 89 CFG_MEM_DYNAMIC, /* mem-dynamic (hidden) */ 90 91 #ifdef FMA_SUPPORT 92 CFG_FM_CAPS, /* fm-capable (hidden) */ 93 #endif /* FMA_SUPPORT */ 94 95 96 #ifdef MAX_RRDY_SUPPORT 97 CFG_MAX_RRDY, /* max-rrdy (hidden) */ 98 #endif /* MAX_RRDY_SUPPORT */ 99 100 #ifdef MSI_SUPPORT 101 CFG_MSI_MODE, /* msi-mode (hidden) */ 102 #endif /* MSI_SUPPORT */ 103 104 CFG_SLI_MODE, /* sli-mode (hidden) */ 105 CFG_NPIV_ENABLE, /* enable-npiv */ 106 CFG_VPORT_RESTRICTED, /* vport-restrict-login */ 107 CFG_NPIV_DELAY, /* enable-npiv-delay (hidden) */ 108 109 #ifdef DHCHAP_SUPPORT 110 CFG_AUTH_ENABLE, /* enable-auth */ 111 CFG_AUTH_E2E, /* auth-e2e */ 112 CFG_AUTH_NPIV, /* auth-npiv (hidden) */ 113 CFG_AUTH_TMO, /* auth-tmo (hidden) */ 114 CFG_AUTH_MODE, /* auth-mode (hidden) */ 115 CFG_AUTH_BIDIR, /* auth-bidir (hidden) */ 116 CFG_AUTH_TYPE, /* auth-type (hidden) */ 117 CFG_AUTH_HASH, /* auth-hash (hidden) */ 118 CFG_AUTH_GROUP, /* auth-group (hidden) */ 119 CFG_AUTH_INTERVAL, /* auth-interval (hidden) */ 120 #endif /* DHCHAP_SUPPORT */ 121 122 #ifdef SFCT_SUPPORT 123 CFG_DTM_ENABLE, /* enable-dtm (hidden) */ 124 CFG_TARGET_MODE, /* target-mode */ 125 CFG_VPORT_MODE_MASK, /* vport-mode-mask (hidden) */ 126 CFG_FCT_QDEPTH, /* fct-queue-depth */ 127 #endif /* SFCT_SUPPORT */ 128 CFG_NUM_WQ, /* num-wq (hidden) */ 129 CFG_PERSIST_LINKDOWN, /* persist-linkdown */ 130 CFG_ENABLE_PATCH, /* enable-patch (hidden) */ 131 CFG_FAST_TGT_RESET, /* fast-tgt-reset (hidden) */ 132 CFG_FAST_TGT_RESET_TMR, /* fast-tgt-reset-timer (hidden) */ 133 134 CFG_FCF_SOLICIT_DELAY, /* fcf-solicit-delay (hidden) */ 135 CFG_FCF_FAILOVER_DELAY, /* fcf-failover-delay (hidden) */ 136 CFG_FCF_RESOLICIT_DELAY, /* fcf-resolicit-delay (hidden) */ 137 CFG_FCF_RPI_IDLE_TIMEOUT, /* fcf-rpi-idle-timeout (hidden) */ 138 139 CFG_DELAY_DISCOVERY, /* delay-discovery (hidden) */ 140 CFG_RQD_MODE, /* rqd (hidden) */ 141 CFG_PERF_HINT, /* perf-hint (hidden) */ 142 143 NUM_CFG_PARAM 144 145 } emlxs_cfg_parm_t; 146 147 #define PARM_HIDDEN 0x80000000 148 149 150 151 #ifdef DEF_ICFG 152 153 /* 154 * The entries in this array must be in the exact order 155 * defined in emlxs_cfg_parm_t 156 */ 157 emlxs_config_t emlxs_cfg[] = { 158 /* CFG_CONSOLE_NOTICES */ 159 {"console-notices", 160 0, 0xffffffff, 0, 0, 161 PARM_DYNAMIC | PARM_HEX, 162 "Verbose mask for notice messages to the console."}, 163 164 /* CFG_CONSOLE_WARNINGS */ 165 {"console-warnings", 166 0, 0xffffffff, 0, 0, 167 PARM_DYNAMIC | PARM_HEX, 168 "Verbose mask for warning messages to the console."}, 169 170 /* CFG_CONSOLE_ERRORS */ 171 {"console-errors", 172 0, 0xffffffff, 0, 0, 173 PARM_DYNAMIC | PARM_HEX, 174 "Verbose mask for error messages to the console."}, 175 176 /* CFG_CONSOLE_DEBUGS */ 177 {"console-debugs", 178 0, 0xffffffff, 0, 0, 179 PARM_DYNAMIC | PARM_HEX | PARM_HIDDEN, 180 "Verbose mask for debugging messages to the console."}, 181 182 /* CFG_LOG_NOTICES */ 183 {"log-notices", 184 0, 0xffffffff, 0xffffffff, 0, 185 PARM_DYNAMIC | PARM_HEX, 186 "Verbose mask for notice messages to the messages file."}, 187 188 /* CFG_LOG_WARNINGS */ 189 {"log-warnings", 190 0, 0xffffffff, 0xffffffff, 0, 191 PARM_DYNAMIC | PARM_HEX, 192 "Verbose mask for warning messages to the messages file."}, 193 194 /* CFG_LOG_ERRORS */ 195 {"log-errors", 196 0, 0xffffffff, 0xffffffff, 0, 197 PARM_DYNAMIC | PARM_HEX, 198 "Verbose mask for error messages to the messages file."}, 199 200 /* CFG_LOG_DEBUGS */ 201 {"log-debugs", 202 0, 0xffffffff, 0, 0, 203 PARM_DYNAMIC | PARM_HEX | PARM_HIDDEN, 204 "Verbose mask for debugging messages to the messages file."}, 205 206 207 /* CFG_NUM_IOCBS */ 208 {"num-iocbs", 209 128, 10240, 1024, 0, 210 PARM_DYNAMIC_RESET, 211 "Number of IOCB buffers the driver should allocate."}, 212 213 /* CFG_MAX_XFER_SIZE */ 214 {"max-xfer-size", 215 131072, 1388544, 339968, 0, 216 0, 217 "Sets maximum bytes per IO the driver can transfer."}, 218 219 /* CFG_UB_BUFS */ 220 {"ub-bufs", 221 40, 16320, 1000, 0, 222 0, 223 "Number of unsolicited buffers the driver should allocate."}, 224 225 /* IP specific parameters */ 226 227 /* CFG_NETWORK_ON */ 228 {"network-on", 229 0, 1, 1, 0, 230 PARM_BOOLEAN, 231 "Enable IP processing. " 232 "[0=Disabled, 1=Enabled]"}, 233 234 /* Fibre Channel specific parameters */ 235 236 /* CFG_ACK0 */ 237 {"ack0", 238 0, 1, 0, 0, 239 PARM_DYNAMIC_LINK | PARM_BOOLEAN, 240 "Enables ACK0 support. " 241 "[0=Disabled, 1=Enabled]"}, 242 243 /* CFG_TOPOLOGY */ 244 {"topology", 245 0, 6, 0, 0, 246 PARM_DYNAMIC_LINK, 247 "Select Fibre Channel topology. " 248 "[0=Loop->PTP, 2=PTP, 4=Loop, 6=PTP->Loop]"}, 249 250 /* CFG_LINK_SPEED */ 251 {"link-speed", 252 0, 16, 0, 0, 253 PARM_DYNAMIC_LINK, 254 "Select link speed. " 255 "[0=Auto, 1=1Gb, 2=2Gb, 4=4Gb, 8=8Gb, 16=16Gb]"}, 256 257 /* CFG_NUM_NODES */ 258 {"num-nodes", 259 0, 4096, 0, 0, 260 PARM_DYNAMIC_RESET, 261 "Number of remote FC nodes the driver will support. " 262 "[0=no_limit, else must be >2]"}, 263 264 /* CFG_CR_DELAY */ 265 {"cr-delay", 266 0, 63, 0, 0, 267 PARM_DYNAMIC_LINK, 268 "A count of milliseconds after which " 269 "an interrupt response is generated"}, 270 271 /* CFG_CR_COUNT */ 272 {"cr-count", 273 1, 255, 1, 0, 274 PARM_DYNAMIC_LINK, 275 "A count of I/O completions after " 276 "which an interrupt response is generated"}, 277 278 /* CFG_ASSIGN_ALPA */ 279 {"assign-alpa", 280 0, 0xef, 0, 0, 281 PARM_DYNAMIC_LINK | PARM_HEX, 282 "Assigns a preferred ALPA to the port. Only used in Loop topology."}, 283 284 /* CFG_ADISC_SUPPORT */ 285 {"adisc-support", 286 0, 2, 1, 0, 287 PARM_DYNAMIC, 288 "Sets the Fibre Channel ADISC login support level. " 289 "[0=None, 1=Partial, 2=Full]"}, 290 291 /* CFG_PM_SUPPORT */ 292 {"pm-support", 293 0, 1, 0, 0, 294 PARM_BOOLEAN, 295 "Enables power management support. " 296 "[0=Disabled, 1=Enabled]"}, 297 298 /* CFG_PM_IDLE */ 299 {"pm-idle", 300 0, 3600, 300, 0, 301 PARM_DYNAMIC | PARM_HIDDEN, 302 "Sets power management idle timeout value (seconds)."}, 303 304 /* CFG_FW_CHECK */ 305 {"fw-check", 306 0, 7, 1, 0, 307 PARM_DYNAMIC_RESET | PARM_HEX | PARM_HIDDEN, 308 "Enables firmware revision checking. " 309 "[0=Off 1=Sun-only 2=All 4=kern-update]"}, 310 311 /* CFG_TRI_REQUIRED */ 312 {"tri-required", 313 0, 1, 0, 0, 314 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 315 "Requires Task Retry Id support by a remote device " 316 "for FCP-2 error recovery."}, 317 318 /* CFG_DISC_TIMEOUT */ 319 {"discovery-timeout", 320 0, 600, 25, 0, 321 PARM_DYNAMIC | PARM_HIDDEN, 322 "Sets the discovery timeout period (seconds) " 323 "for managing FCP-2 devices."}, 324 325 /* CFG_LINKUP_TIMEOUT */ 326 {"linkup-timeout", 327 0, 10, 2, 0, 328 PARM_DYNAMIC | PARM_HIDDEN, 329 "Sets the linkup timeout period (seconds)."}, 330 331 /* CFG_LINKUP_DELAY */ 332 {"linkup-delay", 333 0, 60, 10, 0, 334 PARM_DYNAMIC_RESET, 335 "Sets the driver wait period (seconds) " 336 "for a linkup after initialization."}, 337 338 /* CFG_OFFLINE_TIMEOUT */ 339 {"offline-timeout", 340 0, 600, 45, 0, 341 PARM_DYNAMIC | PARM_HIDDEN, 342 "Sets the offline timeout period (seconds)."}, 343 344 /* CFG_LILP_ENABLE */ 345 {"enable-lilp", 346 0, 1, 1, 0, 347 PARM_DYNAMIC_RESET | PARM_BOOLEAN | PARM_HIDDEN, 348 "Enables LIRP/LILP support in the driver. " 349 "[0=Disabled, 1=Enabled]"}, 350 351 /* CFG_PCI_MAX_READ */ 352 {"pci-max-read", 353 512, 4096, 2048, 0, 354 PARM_DYNAMIC_RESET, 355 "Sets the PCI-X max memory read byte count. " 356 "[512,1024,2048 or 4096]"}, 357 358 /* CFG_HEARTBEAT_ENABLE */ 359 {"heartbeat-enable", 360 0, 1, 1, 0, 361 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 362 "Enables driver's mailbox heartbeat to the adapter. " 363 "[0=Disabled, 1=Enabled]"}, 364 365 /* CFG_RESET_ENABLE */ 366 {"reset-enable", 367 0, 1, 1, 0, 368 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 369 "Enables driver's ability to reset the adapter. " 370 "[0=Disabled, 1=Enabled]"}, 371 372 /* CFG_TIMEOUT_ENABLE */ 373 {"timeout-enable", 374 0, 1, 1, 0, 375 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 376 "Enables driver's ability to timeout commands. " 377 "[0=Disabled, 1=Enabled]"}, 378 379 /* CFG_NUM_IOTAGS */ 380 {"num-iotags", 381 0, 4096, 0, 0, 382 PARM_DYNAMIC_RESET | PARM_HIDDEN, 383 "Sets number of outstanding IO's. " 384 "[0=max determined by type of HBA]"}, 385 386 #ifdef NODE_THROTTLE_SUPPORT 387 /* CFG_TGT_DEPTH */ 388 {"target-depth", 389 0, MAX_NODE_THROTTLE, 512, 0, 390 PARM_DYNAMIC_LINK, 391 "Sets remote FCP target queue depth. " 392 "[0=no_limit, N=Maximum active IO's]"}, 393 #endif /* NODE_THROTTLE_SUPPORT */ 394 395 /* CFG_MEM_DYNAMIC */ 396 {"mem-dynamic", 397 0, 86400, 180, 0, 398 PARM_DYNAMIC_RESET | PARM_HIDDEN, 399 "Enables dynamic memory pools " 400 "[0=Disabled, 1-N=Enabled w/cleaning every N secs]"}, 401 402 #ifdef FMA_SUPPORT 403 /* CFG_FM_CAPS */ 404 {"fm-capable", 405 0, 0xF, 0xB, 0, 406 PARM_HEX | PARM_HIDDEN, 407 "Sets FMA capabilities. " 408 "[bit 3:errcb, 2:dmachk, 1:accchk, 0:ereport]"}, 409 #endif /* FMA_SUPPORT */ 410 411 412 #ifdef MAX_RRDY_SUPPORT 413 /* CFG_MAX_RRDY */ 414 {"max-rrdy", 415 0, 255, 2, 0, 416 PARM_DYNAMIC_RESET | PARM_HIDDEN, 417 "Sets maximum number RRDY's for the adapter on private loop."}, 418 #endif /* MAX_RRDY_SUPPORT */ 419 420 #ifdef MSI_SUPPORT 421 /* CFG_MSI_MODE */ 422 {"msi-mode", 423 0, 3, 3, 0, 424 PARM_HIDDEN, 425 "Sets the default MSI mode in driver. " 426 "[0=Off 1=Single-MSI 2=Multi-MSI 3=Auto]"}, 427 #endif /* MSI_SUPPORT */ 428 429 /* CFG_SLI_MODE */ 430 {"sli-mode", 431 0, 4, 0, 0, 432 PARM_DYNAMIC_RESET | PARM_HIDDEN, 433 "Sets default SLI mode. " 434 "[0=Auto, 2=SLI2-remove all vports first, 3=SLI3, 4=SLI4]"}, 435 436 /* CFG_NPIV_ENABLE */ 437 {"enable-npiv", 438 0, 1, 0, 0, 439 PARM_DYNAMIC_RESET | PARM_BOOLEAN, 440 "Enables NPIV. [0=Disabled-remove all vports first, " 441 "[1=Enabled-requires SLI3+]"}, 442 443 /* CFG_VPORT_RESTRICTED */ 444 {"vport-restrict-login", 445 0, 1, 1, 0, 446 PARM_DYNAMIC_LINK | PARM_BOOLEAN, 447 "Restricts login to virtual ports to conserve resources. " 448 "[0=Disabled, 1=Enabled]"}, 449 450 /* CFG_NPIV_DELAY */ 451 {"enable-npiv-delay", 452 0, 1, 1, 0, 453 PARM_DYNAMIC | PARM_HIDDEN, 454 "Enable FDISC/NS command delay from vports to switch. " 455 "[0=Disabled, 1=Enabled]"}, 456 457 #ifdef DHCHAP_SUPPORT 458 /* CFG_AUTH_ENABLE */ 459 {"enable-auth", 460 0, 1, 0, 0, 461 PARM_DYNAMIC_LINK | PARM_BOOLEAN, 462 "Enables DHCHAP support in the driver. " 463 "[0=Disabled, 1=Enabled]"}, 464 465 /* CFG_AUTH_E2E */ 466 {"auth-e2e", 467 0, 1, 0, 0, 468 PARM_DYNAMIC_LINK | PARM_BOOLEAN | PARM_HIDDEN, 469 "Enables end-to-end DHCHAP support in the driver. " 470 "[0=Disabled, 1=Enabled]"}, 471 472 /* CFG_AUTH_NPIV */ 473 {"auth-npiv", 474 0, 1, 0, 0, 475 PARM_DYNAMIC_LINK | PARM_BOOLEAN | PARM_HIDDEN, 476 "Enables DHCHAP support for virtual ports. " 477 "[0=Disabled, 1=Enabled]"}, 478 479 /* CFG_AUTH_TMO */ 480 {"auth-tmo", 481 20, 999, 45, 0, 482 PARM_DYNAMIC_LINK | PARM_HIDDEN, 483 "Sets authentication timeout value. (seconds)"}, 484 485 /* CFG_AUTH_MODE */ 486 {"auth-mode", 487 1, 3, 1, 0, 488 PARM_DYNAMIC_LINK | PARM_HIDDEN, 489 "Sets authentication mode. " 490 "[1=Disabled, 2=Active, 3=Passive]"}, 491 492 /* CFG_AUTH_BIDIR */ 493 {"auth-bidir", 494 0, 1, 0, 0, 495 PARM_DYNAMIC_LINK | PARM_BOOLEAN | PARM_HIDDEN, 496 "Sets authentication bidirectional mode. " 497 "[0=Disabled, 1=Enabled]"}, 498 499 /* CFG_AUTH_TYPE */ 500 {"auth-type", 501 0, 0x1111, 0x1000, 0, 502 PARM_DYNAMIC_LINK | PARM_HEX | PARM_HIDDEN, 503 "Sets authentication type priorities[4]. " 504 "[0=Undef, 1=DHCHAP]"}, 505 506 /* CFG_AUTH_HASH */ 507 {"auth-hash", 508 0, 0x2222, 0x1200, 0, 509 PARM_DYNAMIC_LINK | PARM_HEX | PARM_HIDDEN, 510 "Sets authentication hash priorities[4]. " 511 "[0=Undef, 1=MD5, 2=SHA1]"}, 512 513 /* CFG_AUTH_GROUP */ 514 {"auth-group", 515 0, 0x55555555, 0x54321000, 0, 516 PARM_DYNAMIC_LINK | PARM_HEX | PARM_HIDDEN, 517 "Sets auth group priorities[8]. " 518 "[0=Undef,1=NULL,2=1024,3=1280,4=1536,5=2048]"}, 519 520 /* CFG_AUTH_INTERVAL */ 521 {"auth-interval", 522 0, 3600, 300, 0, 523 PARM_DYNAMIC_LINK | PARM_HIDDEN, 524 "Sets re-authentication interval. (minutes)"}, 525 526 #endif /* DHCHAP_SUPPORT */ 527 528 #ifdef SFCT_SUPPORT 529 /* CFG_DTM_ENABLE */ 530 {"enable-dtm", 531 0, 1, 0, 0, 532 PARM_BOOLEAN | PARM_HIDDEN, 533 "Enables dynamic target mode. " 534 "[0=Disabled, 1=Enabled]"}, 535 536 /* CFG_TARGET_MODE */ 537 {"target-mode", 538 0, 1, 0, 0, 539 PARM_BOOLEAN, 540 /* PARM_DYNAMIC - Depending on enable-dtm */ 541 "Enables target mode support in driver. " 542 "[0=Disabled, 1=Enabled]"}, 543 544 /* CFG_VPORT_MODE_MASK */ 545 {"vport-mode-mask", 546 1, 3, 1, 0, 547 PARM_HEX | PARM_HIDDEN, 548 "Sets default vport mode mask. " 549 "[0x1=Initiator, 0x2=Target (enable-dtm=1 reqd)"}, 550 551 #ifdef FYI 552 /* These parameters can be added to conf file at user's discretion */ 553 /* Supercedes "vport-mode-mask" for vport N */ 554 /* vport0-mode-mask is not supported */ 555 {"vportN-mode-mask", /* (where N = 1 to max VPI) */ 556 1, 3, 1, 0, 557 PARM_HEX | PARM_HIDDEN, 558 "Sets vportN mode mask. " 559 "[0x1=Initiator, 0x2=Target (enable-dtm=1 reqd)"}, 560 #endif /* FYI */ 561 562 /* CFG_FCT_QDEPTH */ 563 {"fct-queue-depth", 564 0, 4096, 0, 0, 565 PARM_BOOLEAN, 566 "Queue depth of target mode port. " 567 "[0=max determined by type of HBA]"}, 568 #endif /* SFCT_SUPPORT */ 569 570 /* CFG_NUM_WQ */ 571 {"num-wq", 572 1, EMLXS_MAX_WQS_PER_EQ, 1, 0, 573 PARM_DYNAMIC_RESET | PARM_HIDDEN, 574 "Defines number of Work Queues (WQs) per EQ."}, 575 576 /* CFG_PERSIST_LINKDOWN */ 577 {"persist-linkdown", 578 0, 1, 0, 0, 579 PARM_DYNAMIC_RESET | PARM_BOOLEAN, 580 "Set link persistently down. " 581 "[0=Disabled, 1=Enabled]."}, 582 583 /* CFG_ENABLE_PATCH */ 584 {"enable-patch", 585 0, 0xFFFFFFFF, DEFAULT_PATCHES, 0, 586 PARM_DYNAMIC | PARM_HEX | PARM_HIDDEN, 587 "Enables patches in driver."}, 588 589 /* CFG_FAST_TGT_RESET */ 590 {"fast-tgt-reset", 591 0, 1, 0, 0, 592 PARM_DYNAMIC_RESET | PARM_BOOLEAN | PARM_HIDDEN, 593 "Enables alternative target reset processing. " 594 "[0=Disabled 1=Enabled]"}, 595 596 /* CFG_FAST_TGT_RESET_TMR */ 597 {"fast-tgt-reset-timer", 598 0, 60, 10, 0, 599 PARM_DYNAMIC_RESET | PARM_BOOLEAN | PARM_HIDDEN, 600 "RSCN notification timer for fast target reset. " 601 "[0=Disabled 1-60=seconds]"}, 602 603 /* CFG_FCF_SOLICIT_DELAY */ 604 {"fcf-solicit-delay", 605 0, 60, 3, 0, 606 PARM_DYNAMIC | PARM_HIDDEN, 607 "Sets delay after FCF solicit request before reading FCF table. " 608 "[0-60=seconds]"}, 609 610 /* CFG_FCF_FAILOVER_DELAY */ 611 {"fcf-failover-delay", 612 0, 60, 0, 0, 613 PARM_DYNAMIC | PARM_HIDDEN, 614 "Sets delay before attempting failover to a new FCF. " 615 "[0-60=seconds]"}, 616 617 /* CFG_FCF_RESOLICIT_DELAY */ 618 {"fcf-resolicit-delay", 619 0, 60, 3, 0, 620 PARM_DYNAMIC | PARM_HIDDEN, 621 "Sets delay after total FCF failure before resoliciting. " 622 "[0-60=seconds]"}, 623 624 /* CFG_FCF_RPI_IDLE_TIMEOUT */ 625 {"fcf-rpi-idle-timeout", 626 1, 30, 2, 0, 627 PARM_DYNAMIC | PARM_HIDDEN, 628 "Sets timeout period of an idle reserved RPI. " 629 "[1-30=seconds]"}, 630 631 /* CFG_DELAY_DISCOVERY */ 632 {"delay-discovery", 633 0, 2, 1, 0, 634 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 635 "Clean Address to delay discovery." 636 "[0=Disabled 1=Enabled not 1st linkup 2=Enabled]"}, 637 638 /* CFG_RQD_MODE */ 639 {"rqd-mode", 640 0, 1, 1, 0, 641 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 642 "Request Recovery Qualifier delay." 643 "[0=Disabled 1=Enabled]"}, 644 645 /* CFG_PERF_HINT */ 646 {"perf-hint", 647 0, 1, 1, 0, 648 PARM_DYNAMIC | PARM_BOOLEAN | PARM_HIDDEN, 649 "Use performance hints if applicable." 650 "[0=Disabled 1=Enabled]"}, 651 652 }; 653 654 #endif /* DEF_ICFG */ 655 656 #ifdef __cplusplus 657 } 658 #endif 659 660 #endif /* _EMLXS_CONFIG_H */ 661