FCA Utilities Reference Manual Version 1.
Copyright© 2005 Emulex Corporation. All rights reserved worldwide. No part of this document may be reproduced by any means nor translated to any electronic medium without the written consent of Emulex Corporation. Information furnished by Emulex Corporation is believed to be accurate and reliable. However, no responsibility is assumed by Emulex Corporation for its use; or for any infringements of patents or other rights of third parties which may result from its use.
Table of Contents Introduction .............................................................................................1 Fibre Channel Overview .......................................................................................... 1 The Solaris Fibre Channel Stack ............................................................................. 1 Installing the Utilities ..............................................................................
Table of Contents h ...................................................................................................................... 24 hba .................................................................................................................. 25 p ...................................................................................................................... 25 Using the emlxdrv Utility ......................................................................
Introduction This document provides the information needed to use the Emulex® emlxadm and elmxdrv utility programs. For system administrators, this document includes information about the installation and removal of these utilities. At the very least, system administrators should be familiar with Solaris and the Sun StorEdge SAN Foundation Software (SFS) and should have access to standard system documentation.
Figure 1 shows the software stack for network operations and SCSI operations from the standpoint of a Solaris host.
Installing the Utilities Caution: Before installing the Emulex utilities package, you must first install the Sun StorEdge SAN Foundation Software package and all the recommended patches as described in the Sun StorEdge SAN Foundation Software Installation Guide provided by Sun. The Emulex utility programs are provided as part of the emlxu utilities kit. You can download the emlxu utilities kit (for example, emlxu_kit-1.00x-sparc.tar for SPARC platforms or emlxu_kit-1.00x-i386.
12. Examine the output for any errors or warnings. If the installation is successful, the following message is displayed near the end of the process: Installation of was successful. 13. The script performs some cleanup and displays the following messages: 14. The script leaves a copy of the emlxu_remove script in your working directory with the original utilities kit tar file.
The utilities package has been removed.
2. You are prompted to confirm the removal by the following message: Do you want to remove this package? [y,n,?,q] 3. Enter y. The package is prepared for removal, and you are prompted again for confirmation: Do you want to remove this package? [y,n,?,q] 4. Enter y. The following message is displayed: Removal of was successful. The utilities package has been removed.
Using the emlxadm Utility The emlxadm utility is intended to be a direct user interface to the Fibre Channel input/output (FCIO) interface provided by the Sun StorEdge SFS. The FCIO interface provides a Sun common ioctl interface to the FCTL, which manages the FCA drivers for each Fibre Channel HBA attached to the host system.
reset_link - Resets the link of a specified FC device. reset_hard - Reset the HBA. reset_hard_core - Reset the HBA firmware core. diag - Perform a diagnostic test on the HBA. ns - Performs a complete query of the fabric name server. parm_get_num - Returns the total number of configurable parameters. parm_get_list - Returns a list of configurable parameters. parm_get
get_num_devs Returns the number of FC devices currently seen by this HBA port. Example: emlxadm> get_num_devs There are 4 devices reported on this port. get_dev_list Returns a list of FC devices currently seen by this HBA port.
Login 00 00 20 20 88 00 00 ff 00 00 21 00 37 19 20 00 37 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Parameters: 00 00 00 00 08 00 00 02 01 f4 00 20 38 fa 00 20 38 fa 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FCA Utilities Reference Manual Page 10
get_host_params Returns the FC login parameters of this HBA port. Example: emlxadm> get_host_params Host: Dtype: FC4_type[proto]: State: Linkspeed: D_id: LILP: Hard Addr: WWPN: WWNN: 0 0x0120, 0, 0, 0, 0, 0, 0, 0 FC_STATE_LOOP FC_STATE_2GBIT_SPEED 1 1 0 10000000c93e4be4 20000000c93e4be4 get_sym_pname Returns the symbolic FC port name of the HBA port. This operation is currently not supported by the Solaris Leadville stack.
dev_login Performs an FC login to an FC device on the network, if not already logged in. Example: emlxadm> dev_login 21000020371938fa Done. dev_logout Performs an FC logout to an FC device on the network, if not already logged in. Example: emlxadm> dev_logout 21000020371938fa Done. get_state Returns the current Leadville state of the specified FC device on the network.
download_fcode Downloads the specified FCode image file to the HBA. Example: emlxadm> download_fcode LP10000DC-S.fcode Image Components: REL type size=33848 DWC file: BOOT: version=03841512, 1.50a2 Current: Fcode: 1.50a1 New: Fcode: 1.50a2 33848 (0x8438) bytes Are you sure you want to download this image? (y or n): y Downloading... Result: Operation successful. Done.
emlxadm> get_boot_rev Firmware revision: LP10000DC-S 5.01a4 download_boot Downloads the specified boot image file to the HBA. Example: emlxadm> download_boot TL501A4.PRG Image Components: REL type size=143416 DWC file: BOOT: version=03845054, 5.01a4 Current: Boot: 5.01a2 New: Boot: 5.01a4 143416 (0x23038) bytes Are you sure you want to download this image? (y or n): y Downloading... Done.
00000030: 00000040: 00000050: 00000060: 00000070: 00000080: 00000090: 000000a0: 000000b0: 000000c0: 000000d0: 000000e0: 000000f0: 00000100: 30 40 50 60 70 80 90 a0 b0 c0 d0 e0 f0 31 41 51 61 71 81 91 a1 b1 c1 d1 e1 f1 32 42 52 62 72 82 92 a2 b2 c2 d2 e2 f2 33 43 53 63 73 83 93 a3 b3 c3 d3 e3 f3 34 44 54 64 74 84 94 a4 b4 c4 d4 e4 f4 35 45 55 65 75 85 95 a5 b5 c5 d5 e5 f5 36 46 56 66 76 86 96 a6 b6 c6 d6 e6 f6 37 47 57 67 77 87 97 a7 b7 c7 d7 e7 f7 38 48 58 68 78 88 98 a8 b8 c8 d8 e8 f8 39 49 59 69
Tests: emlx_biu [pattern] emlx_echo [pattern] emlx_post - Performs the Bus Interface Unit test. - Performs the ECHO test to a specified port id. - Performs the Power-On Self Tests. Parameters: pattern - 4 byte hex pattern to be used for test. (e.g. 0xA5A5A5A5) Example: emlxadm> diag emlx_biu Result: EMLX_DIAG_BIU: Operation successful. or emlxadm> diag emlx_echo fffffc Result: EMLX_DIAG_ECHO: Operation successful. or emlxadm> diag emlx_post Result: EMLX_DIAG_POST: Operation successful.
----------------------------------------------------------------TYPE: 02 PID: 0113E4 WWPN: 21000020371938a3 PORT_NAME: (SEAGATE ST39103FC 0004) WWNN: 20000020371938a3 NODE_NAME: (null) IPA: ffffffffffffffff IP_ADDR: 0.0.0.
dynamic: yes desc: Verbose mask for error messages to the console. ----------------------------------------------------------------label: log-notices min: 0x0 current: 0xffffffff max: 0xffffffff default: 0xffffffff dynamic: yes desc: Verbose mask for notice messages to the messages file. ----------------------------------------------------------------label: log-warnings min: 0x0 current: 0xffffffff max: 0xffffffff default: 0xffffffff dynamic: yes desc: Verbose mask for warning messages to the messages file.
dynamic: no desc: Select Fibre Channel topology ----------------------------------------------------------------label: link-speed min: 0 current: 0 max: 4 default: 0 dynamic: no desc: Select link speed ----------------------------------------------------------------label: num-nodes min: 2 current: 512 max: 512 default: 512 dynamic: no desc: Number of fibre channel nodes (NPorts) the driver will support.
Example: emlxadm> parm_get adisc-support label: min: current: max: default: dynamic: desc: adisc-support 0 1 2 1 yes Sets the Fibre Channel ADISC login support level. parm_set
155130.03: 1002042:[4.00C9]emlxs0: Rsn=0 Exp=0 [01011500,210000e0]) DEBUG: 801: ELS comp. (GA_NXT: CT_ACC: get_host_attrs Displays all of the current host HBA API attributes. Example: emlxadm> get_host_attrs Host Attributes: Manufacturer = Emulex Serial Number = BG42434343 Model = LP10000DC-S Model Description = EMULEX LIGHTPULSE LP10000DC-S 2GB PCI-X FIBRE CHANNEL ADAPTER Node WWN = 20000000C9409ED5 Node Symbolic Name = none Hardware Version = 1001206d Driver Version = 2.00j.t4 (2005.01.18.16.
Port Port Port Port Port Fc Id = 011000 Type = Nport State = Online Supported COS = Class 3 Supported Fc4 Types: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 Port Active Fc4 Types: 00, 00, 01, 20, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 Port Symbolic Name = none Port Supported Speed = 1Gb 2Gb Port Speed = 1Gb Port Max Frame Size = 0x800 bytes Fabric Name =
Port[2] Attributes: Node Port Port Port Port Port Port WWN = 20000020371939A2 WWN = 21000020371939A2 Fc Id = 0113e2 Type = Unknown State = Unknown Supported COS = Unknown Supported Fc4 Types: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 Port Active Fc4 Types: 00, 00, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 Port Symbolic Name = SEAGATE ST39103FC Por
Fabric Name = 0000000000000000 get_path Displays the current Solaris device path for a specified HBA port. The total number of ports available can be seen in the "Number of HBA ports" attribute displayed using the get_host_attrs command. The argument is an index into this list. Example: emlxadm> get_path 0 Adapter: /pci@1e,600000/SUNW,emlxs@2/fp@0,0 emlxadm> get_path 1 Adapter: /pci@1e,600000/SUNW,emlxs@2,1/fp@0,0 q Exits the utility program. Example: emlxadm> q Exiting...
parm_set
Using the emlxdrv Utility The emlxdrv utility is intended to be used for binding (associating) the Emulex emlxs (Leadville Fibre Channel) driver and the Emulex lpfc (traditional non-Leadville Fibre Channel) driver to the various models of Emulex Fibre Channel HBAs. This allows both drivers to coexist in the same host and attach to mutually exclusive Emulex Fibre Channel HBA models.
The display comprises three parts: the current driver configuration table, a list of available commands and the emlxdrv prompt. The driver configuration table contains the following columns of data: • Driver: Indicates which driver (emlxs, lpfc or "-" if none ) is currently configured to bind or attach to a specific adapter alias. • Alias: Indicates the specific adapter alias associated with a set of Emulex HBA models.
# This mode of operation enables you to use the emlxdrv utility as part of a script or another program capable of executing system-level calls. For a detailed explanation of each command and its arguments, see Command Descriptions (emlxdrv) on page 28. Command Descriptions (emlxdrv) This section provides a list of commands that can be issued with the emlxdrv utility program.
Updating fe00 ... Updating fc00 ... Done. set_lpfc Sets the lpfc driver to bind to the specified devices. You must specify one of the valid adapter aliases listed on the screen. Each alias is shared by multiple adapter models. Driver bindings can be made only with an adapter alias and not with a specific adapter model. You may see the message "Cannot unload module".
clear_lpfc Clears all lpfc driver bindings. You may see the message "Cannot unload module". This indicates that you must reboot the system to get a driver to unbind from that adapter alias; emlxdrv only updates the system configuration for the next boot. Example: emlxdrv> clear_lpfc Updating f900 ... Cannot unload module: lpfc Will be unloaded upon reboot. Updating f980 ... Cannot unload module: lpfc Will be unloaded upon reboot. Done. clear_emlxs Clears all emlxs driver bindings.
Will be unloaded upon reboot. Updating f800 ... Cannot unload module: emlxs Will be unloaded upon reboot. Updating f900 ... Cannot unload module: lpfc Will be unloaded upon reboot. Updating f980 ... Cannot unload module: lpfc Will be unloaded upon reboot. Updating fa00 ... Cannot unload module: emlxs Will be unloaded upon reboot. Updating fd00 ... Cannot unload module: emlxs Will be unloaded upon reboot. Updating fe00 ... Cannot unload module: emlxs Will be unloaded upon reboot. Done.
Done. q Exits the program. If changes were made to the driver bindings, a system reboot is usually required in order for all the changes to take effect. Example: emlxdrv> q Exiting... NOTE: If changes were made, then a system reboot may be required.