Interphase Corp. - V/SCSI 4220 Cougar - RMF - Document No. UGRMF57-000,REVA RRRR EEEEE A DDDD M M EEEEE FFFFF I RRRR SSS TTTTT R R E A A D D MM MM E F I R R S S T RRRR EEE A A D D M M M EEE FFF I RRRR S T R R E AAAAA D D M M E F I R R S T R R E A A D D M M E F I R R S S T R R EEEEE A A DDDD M M EEEEE F I R R SSS T HP-UX 9.05, 9.07 4220 DRIVER This document contains Application Notes, Installation Notes, Corrections, and Deficiencies of the Interphase HP-UX 4220 Driver for HP 9000 Series 700 VME computers. Part Numbers: SM00014-A00 DDS tape distribution SX00221-A00 media independent image Application Notes: ------------------ OS Support: This release of the 4220 Cougar driver is intended for use with HP-UX 9.05 and 9.07. Maximum Controllers: This software release supports a maximum of four (4) 4220 Cougar Host Adapter boards per system. Command Queue configuration: This driver uses off-board commands, meaning there is a queue in the controller's short I/O space with associated commands residing in host memory. This provides a larger number of queued commands than is possible with an on-board command configuration. Compatibility: The following HP 9000 Series 700 hardware models have been tested with this release: 743i, 747i SCSI Device Naming Convention: Device nodes are created at installation time with the following naming convention: Block devices: /dev/cgr/cgrbd Character ('raw') devices: /dev/cgr/rcgrbd Device-independent character nodes: /dev/cgr/rcgrb Where x is the controller number, y is either 0 or 1 for the primary or secondary SCSI bus on that controller, and z is the ID of the device on the bus. For example: /dev/cgr/cgr3b1d0 Controller 3, Bus 1, Device 0 /dev/cgr/rcgr0b1d1 Controller 0, Bus 1, Device 1 /dev/cgr/rcgr0b0 Controller 0, Bus 0 Tape Devices: Tape devices use the same naming convention as other SCSI devices. Cougar Utility Program: A utility program is provided with the driver to perform the following functions: - Reset a selected SCSI bus - Perform a board diagnostic - Perform a low-level device format Command usage is: cgr_util -[b|d|f] [device_name] The cgr_util command will return zero if the selected option succeeds and non-zero if the command fails for any reason. Resetting a selected SCSI bus: Resetting a SCSI bus has is useful for manual error recovery when a SCSI device error has caused the bus to hang. Execute the command as follows: cgr_util -b cgrb to reset SCSI bus y on controller x. The following example will reset the secondary SCSI bus on the third installed controller in the system: cgr_util -b cgr2b1 On success, this message will be printed to the console: "SCSI bus reset successful." Otherwise an error message is reported. Performing a board diagnostics. The controller diagnostics command will cause the board to perform a set of pass/fail self-diagnostic tests that are identical with those performed during the power-up self test. DO NOT PERFORM THIS TEST WHILE ATTACHED DEVICES ARE IN USE. Execute as follows: cgr_util -d cgrb The following example will execute a diagnostics on the forth installed controller in the system. The specified bus is ignored: cgr_util -d cgr3b0 There must be no activity on the board when the diagnostic is executed, otherwise a failure will be returned. If the test reports a failure the first time, execute the test again. Since the board is reset after the diagnostics are run, the test should return valid results the second time if no new commands have been issued to the board. On success, the message is displayed: "Cougar diagnostics succeeded." or if the test failed, you will see this message: "Cougar diagnostics failed!" Performing a low-level device format: The low-level format option of cgr_util executes the built-in format routine of a SCSI disk or tape device. All data on the device will be destroyed!! Most devices will have been formatted in the factory before shipment, so do not use this command unless you are absolutely certain you want to perform a low-level format. Usage is: cgr_util -f cgrbd For example, to format the second device on the primary SCSI bus of the first controller, you would execute the following command: cgr_util -f cgr0b0d1 You are prompted whether you wish to continue. After you start the format process the following message will be displayed indicating the command is in progress: "This will take some time, please allow at least one hour Formatting..." The string "Succeeded" is printed when complete. If the device format did not work, "Failed" is displayed along with the error message returned by the controller. Hardware Installation Notes: ---------------------------- Firmware: This driver should use firmware release fa00084-A20 or later. Jumpers: 1. Use the factory default settings except as noted. Refer to the User's Guide for the location and identifier of these jumpers. Short I/O Addresses: Only a 2K short I/O configuration is supported. Ensure the 4220 Primary Short I/O Size jumpers are set for 2K bytes of short I/O space. For each controller installed, select an address block within A16 short I/O space that will not conflict with any other board o installed in the VME backplane. Set the Primary Base Address for each controller to a unique short I/O base addresses. 2. Cougar II Wide Motherboard jumper settings: Use UG4220W-000,REVA as a guide for jumper settings. 3. Daughterboard settings: The default setting will provide terminator power to the secondary SCSI bus. LED1 indicates TERMPWR is on. Refer to the User's Guide for more information. Software Installation Notes: ---------------------------- This driver may be installed over a previous release. It is not necessary to remove the old version. IMPORTANT!: ************************************************************** Before proceeding, the following driver and patch information MUST be observed before proceeding: 1. The VME-SERV fileset, 'vme2' VME Expander Driver. 2. PHKL_6291 cumulative VME driver patch must be installed. Verify you have the patch using the command 'what': # what /hp-ux vme2.c $Revision: 1.8 $ $Date: 1996/05/02 01:08:30 $ PHKL_6291 3. If you have a 743i or 748i, and PHCO_4977 is installed (not required), it will inadvertently remove the 1M shared memory needed for the slave mapper. This does NOT happen on 742i or 747i systems. Use 'vme_config -m A32' to verify whether you have a 1M region: A32 Memory Range Size Name --------------------------------------------------------- 0x00100000 - 0x001fffff Size: 1M SHARED_MEM_CPU0 If not, you will need to edit your vme.CFG file to add a 1M entry in the A32 memory structure entitled "Space for A32 direct mapped window". For example the following will suffice: // address Name Proc Options align 1M:1M cgr1M hp747i hints=SYSTEM_ONLY, PRIVATE Execute 'vme_config -m A32' again to verify the mapper will now recognize the 1M region. You may now see two 1M regions, but the system will function normally. You must run 'vme_config' without options to save the configuration before the next system reboot. ************************************************************** Step 1 Load the tape containing the 4220 software. Run "/etc/update" and choose to install the entire fileset. When the files are installed, a new kernel will be built and the system will reboot. Note: During 4220 installation, the following system files are backed up with a suffix '.sav': /etc/master /etc/newconfig/master /etc/vme.CFG These files are modified by the 'customize' script. Unused major and minor numbers are identified and inserted in the master files. Should anything go wrong with the install, check /etc/master for conficts with other devices' major and minor selections for which the placeholders may not have been deleted. Step 2 Set the hardware jumpers. Ensure the jumpers on the 4220 are configured for a short I/O address range that will not conflict with any other VME devices in the machine. Refer to the 'Hardware Installation Notes' in this document for information regarding the selection of jumper settings. Step 3 Install the 4220 controller(s) Shut down the machine, install the 4220 controller(s) into the VME backplane, then bring the system up again. Step 4 VME configuration. The installation script appends the system vme configuration file /etc/vme/vme.CFG with the entry: #include "cgr.cfg" "cgr.cfg" is the Interphase 4220 configuration file which is written in the "/etc/vme" directory during the installation process. This allows the system vme configuration utility (vme_config) to include specific configuration details about the 4220. The default short I/O addresses for four 4220 controllers are setup as follows: 0x00001000 - 0x000017ff Size: 2K cgr0_shio 0x00001800 - 0x00001fff Size: 2K cgr1_shio 0x00002000 - 0x000027ff Size: 2K cgr2_shio 0x00003800 - 0x00003fff Size: 2K cgr3_shio If these defaults conflict with your desired system board locations, modify the CGR_START_ADDRn and CGR_END_ADDRn addresses in the cgr.cfg file to correspond with the desired values such that there is no conflict. The selected addresses and range MUST correspond to the jumper settings on the controller(s). If you do not need to install multiple 4220 boards in the future and want to conserve short I/O space mapped by the unused boards, comment out the corresponding entries in cgr.cfg. Place comments, '//', at the beginning of the Card Declaration Record and Memory Declaration Record for cgr1, cgr2 and/or cgr3. Once cgr.cfg has been modified, check for syntax errors. vme_config -c -f cgr.cfg Check the entries if an error message is reported, otherwise the command returns nothing. Execute the following commands to ensure the system configuration is as expected: vme_config -m A16 Checks for Short I/O conflicts vme_config -m A32 Checks for A32 conflicts The A16 Memory Range for cgr0_shio, cgr1_shio, cgr2_shio, and cgr3_shio should be displayed. There should be no 'cgr' lines displayed in the A32 Memory Range. The A32 Memory Range must include a 1M shared memory region for the slave mapper. If you want to look at a specific board, you can check the resources configured for that entity. For example: vme_config -e cgr0 Check 'cgr0' resources vme_config -e cgr1 Check 'cgr1' resources When you have verified the configuration is OK, execute the command: vme_config Answer 'y' at the prompt to save the configuration: Generating configuration for processor: hp747i CPU/Card number: 0 Overwrite system eeprom data (Y/N): y Step 5 Reboot the system. Installation Verification ------------------------- Execute 'dmesg' and look for a message similar to the following for a typical configuration. -------------------------------------------------------------------- Interphase 4220 V/SCSI Cougar: slva= Product Number: 091 Var: 4 Revision: A23 Date: 03-03-95 Primary ID: 7 Secondary ID 7 FEC 0 ID: 1 FEC 1 ID: 0 cgr 10: SEAGATE -ST31230N -0300 cgr_attach: controller 0 found Interphase V/SCSI 4220 driver revision SX00221-A00 at select code 0x50 Interphase 4220 V/SCSI Cougar: slva= Product Number: 077 Var: 4 Revision: A23 Date: 11-30-95 Primary ID: 7 Secondary ID 7 FEC 0 ID: 3 FEC 1 ID: 0 cgr110: SEAGATE -ST31230N -0300 cgr111: SEAGATE -ST31230N -0510 cgr_attach: controller 1 found Interphase V/SCSI 4220 driver revision SX00221-A00 at select code 0x50 -------------------------------------------------------------------- This means the device driver found 2 boards with these characteristics: Product: Interphase 4220 V/SCSI Cougar Short I/O address, 1st board: 0x1800 Short I/O address, 2nd board: 0x9000 Firmware revision: A23 SCSI ID of SCSI channel 0: 7 (both boards) SCSI ID of SCSI channel 1: 7 (both boards) Front End Ch. 0 type, board1: Differential (table below) Front End Ch. 1 type, board1: Single-ended (table below) Front End Ch. 0 type, board2: Differential Wide (table below) Front End Ch. 1 type, board2: Single-ended (table below) Devices found: 1st board, 2nd bus, 1st dev: ST31230N on cgr 10 2nd board, 2nd bus, 1st dev: ST31230N on cgr110 2nd board, 2nd bus, 2nd dev: ST31230N on cgr111 2 controllers found 0 and 1 Driver Revision: SX00221-A00 Determine the type of front-end SCSI bus from the following table. FEC ID Type --------------------------------------------- 0x0 Single-ended Cougar II 0x1 Differential Cougar II 0x2 Single-ended Cougar II Wide 0x3 Differential Cougar II Wide Board / Bus / Device ---------------------------------------------- cgr 00 Controller 0, Bus 0, Device 0 cgr 01 Controller 0, Bus 0, Device 1 cgr 02 Controller 0, Bus 0, Device 2 cgr 03 Controller 0, Bus 0, Device 3 cgr 04 Controller 0, Bus 0, Device 4 cgr 05 Controller 0, Bus 0, Device 5 cgr 06 Controller 0, Bus 0, Device 6 cgr 07 Controller 0, Bus 0, Device 7 cgr 08 Controller 0, Bus 0, Device 8 cgr 09 Controller 0, Bus 0, Device 9 cgr 0a Controller 0, Bus 0, Device 10 cgr 0b Controller 0, Bus 0, Device 11 cgr 0c Controller 0, Bus 0, Device 12 cgr 0d Controller 0, Bus 0, Device 13 cgr 0e Controller 0, Bus 0, Device 14 cgr 0f Controller 0, Bus 0, Device 15 cgr 10 Controller 0, Bus 1, Device 0 cgr 11 Controller 0, Bus 1, Device 1 cgr 12 Controller 0, Bus 1, Device 2 . . cgr110 Controller 1, Bus 1, Device 0 cgr111 Controller 1, Bus 1, Device 1 cgr112 Controller 1, Bus 1, Device 2 . . cgr210 Controller 2, Bus 1, Device 0 cgr211 Controller 2, Bus 1, Device 1 cgr212 Controller 2, Bus 1, Device 2 . . cgr310 Controller 3, Bus 1, Device 0 cgr311 Controller 3, Bus 1, Device 1 cgr312 Controller 3, Bus 1, Device 2 . . cgr31f Controller 3, Bus 1, Device f Use the diskinfo command to print device information. For example: diskinfo /dev/cgr/rcgr0b1d0 results in the following output when using a Seagate ST31230N: SCSI describe of /dev/cgr/rcgr0b1d0: vendor: SEAGATE product id: ST31230N type: direct access size: 1034930 Kbytes bytes per sector: 512 Corrections: ------------ This is the first release of the 4220 Cougar driver. Deficiencies: -------------- The following are known problems with this release. This is the initial release. There are no outstanding issues.