========================================================================== The checksum's (found through sum -r) of the files that you have received (other than this README) are as follows: 23082 50 patchSG0003440.eoe_man 06478 6 patchSG0003440.irix_dev_gifts 10193 12 patchSG0003440.idb 55220 1145 patchSG0003440.eoe_sw 51443 6 patchSG0003440 ========================================================================== - 1 - 1. Patch_SG0003440_Release_Note This release note describes patch SG0003440 to IRIX 6.4- S2MP+O. 1.1 Supported_Hardware_Platforms This patch contains software support for Fibre Channel disk and RAID for Origin, Onyx-2, Octane systems. The software cannot be installed on other configurations. 1.2 Supported_Software_Platforms This patch contains bug fixes for the Fibrechannel driver on a system running Irix 6.4-S2MP+O. 1.3 Patch_relationships This patch replaces patches SG0001761, SG0002175, SG0002268, SG0002411, SG0002728, SG0002842, SG0003008. If this patch is part of a patchset, it must be installed with other patches in the patch set. o - SCSI rollup o - PCI rollup o - kernel rollup o - tape rollup o - hinv rollup (needed by tape rollup) 1.4 Notes_about_this_patch o When systems with this patch installed boot, they will attempt to reprogram the SEEPROM attached to Fibrechannel host adapter chips, so that the adapter will support multi-host operation. This reprogramming will only be done once per host adapter (twice per XIO card), only if the adapter is downrev. There will be no effect on system operation after this is done. You may see messages about this the first time you boot a system after this patch is installed. The messages will look like the following: /hw/module/1/slot/io5/fibre_channel/pci/1/scsi_ctlr/0 (5): Notice: reprogramming adapter for multi-host uses (0x282e) /hw/module/1/slot/io5/fibre_channel/pci/1/scsi_ctlr/0 (5): Notice: adapter reprogrammed for multi-host uses (0x282f) - 2 - o There are utilities for downloading firmware to the 9GB Seagate Fibrechannel disks (model ST19171FC) and updating mode pages. The new utilities are scsidl and scsimode. See their man pages as well as the sample script in /usr/lib/scsidl/examples for additional information about downloading firmware. Before downloading firmware, the drive that is being downloaded should be unmounted and completely idle. In addition, after the download, the drive will take a few minutes to become ready. The sample script allows four minutes after the download. o The new drive firmware is more robust than the old; in particular, it fixes some problems seen at drive initialization time, in which there was a small possibility that a drive would not respond. The new mode page setting improves disk write performance when I/O sizes are large, and when doing writes to striped volumes of drives. 1.5 Bugs_fixed_in_Patch_SG0003440 o 640461 The "fcagent" server does not perform any authentication of requests sent to it. Bogus requests to "fcagent" can be used to completly disable or bypass fib{re,er} channel disks and trays. o 646131 In corner cases when there is a lot of loop initialization activity and targets that disappear momentarily as a result of such activity, it would be possible to incorrectly declare a target as "disappeared". It is unlikely that any installation would ever have seen this. 1.6 Bugs_fixed_in_Patch_SG0003008 o Loop initialization has been made more reliable, to support multiple hosts on a single loop. o 620266 The fccli command now prints a usage message rather than coredumping when incorrect command line syntax is used. o 600578 A bug in the adapter chip's addressing has been worked around (without performance penalty) by using I/O map addressing rather than memory mapped addressing for chip PIO. o 600567 The fcagent now supports large Fibrechannel controller numbers. - 3 - o 523074 The fcagent now monitors power supply temperature and prints out a message when it overheats. o 631707 Removed erroneous reporting of invalid LCC due to change in encoded vendor id. o Problems reported during testing with third party targets have been fixed. 1.7 Bugs_fixed_in_Patch_SG0002842 o 535855 Additional loop initialization retries are done at specific points to make the loop initialization process more reliable. The workaround described at the end of these release notes should no longer be needed. o 535816 540657 558686 Spurious command timeouts were occasionally seen in in-house testing. The cause has been found, and they should now be eliminated. o 556423 Error conditions are now better identified. If a controller suffers a fatal error, an error message will be printed on attempts to access or initialize it. Also, when errors are recovered from, the driver attempts to print a message indicating such (for peace of mind). o 538735 Fibrechannel Agent startup is moved after the second invocation of ioconfig. This avoids the occasional device busy message that could occur if the agent and ioconfig both tried to open a device at the same time. Also, the startup message was changed to something more recognizable. 1.8 Bugs_fixed_in_Patch_SG0002728 o There are new options to the scsiha command to help administer Fibrechannel loops. See the man page for more information. o The driver is now quieter at bootup time. Formerly, it would print errors for loops when there was nothing connected to them. Now it is quiet at bootup time. After bootup, if attempts are made to perform loop initialization (via scsiha -r, scsiha -l, or scsiha -L), error messages will continue to be displayed. o The driver was too verbose on systems with lots of Fibrechannel loops, in that it would display a line for each loop listing all devices on that loop. This output has been disabled. To enable it, use the - 4 - command scsiha -D 1 See the scsiha man page for more information. o 547437 There is now better error handling for RAID in multi-host configurations and in other situations where loop initialization occurs (547437). o 544169 - The driver works better with certain devices during loop initialization. 1.9 Bugs_fixed_in_Patch_SG0002411 o 519597 - Limit of 32 adapters. Larger configurations are supported as the result of this bug fix. 1.10 Bugs_fixed_in_Patch_SG0002268 o 515721 - Host loop fairness is configurable via a tunable variable. Host will be fair by default. When an application attempts to access both ports of a drive, the second port will register busy. If the adapter accesses the loop in an unfair manner, the second loop will continue accessing the second port on the drive until the first port is no longer active. o 510587 - An updated version of the host adapter chip requires new firmware. 1.11 Bugs_fixed_in_predecessors_to_Patch_SG0002268 o Bug 499421 describes problems fixed in Patch SG0002175. o The driver will recover from adapter detected PCI errors without crashing the system. o There was a potential for the adapter to accept invalid frames immediately after initialization during error recovery. When this happened, the system would crash. This problem has been fixed. o When the system was very busy, causing requests from PCI to be completed very slowly, the adapter could become confused and freeze or send erroneous frame headers. The symptoms of this were forward progress timeouts, framing errors, and data overrun and underrun. The problem has been worked around. - 5 - o There was a small timing window where an interrupt could be missed, causing a forward progress timeout. The window has been closed. o If a Fibrechannel peripheral was removed or otherwise had hardware problems causing the driver to consider it unavailable, and a user or administrator issued a bus probe command (scsiha -p) while other processes were still attempting to use non-zero LUNs of the device, then it was possible for the kernel to panic. o If a Fibrechannel device used full duplex OPN primitives, then it was possible for the adapter to send frames without credit. The symptom of this would be timeouts or other errors related to the loop. This patch has a workaround for that bug. 1.12 Subsystems_Included_in_Patch_SG0003440 This patch release includes these subsystems: o patchSG0003440.eoe_man.unix o patchSG0003440.eoe_sw.unix o patchSG0003440.irix_dev_gifts.scsi 1.13 Installation_Instructions If, after reading Sections 1.1 and 1.2 of these release notes, you are unsure whether your hardware and software meet the requirements for installing a particular patch, run inst. The inst program does not allow you to install patches that are incompatible with your hardware or software. Patch software is installed like any other Silicon Graphics software product. Follow the instructions in your Software Installation Administrator's Guide to bring up the miniroot form of the software installation tools. Follow these steps to select a patch for installation: 1. At the Inst> prompt, type install patchSGxxxxxxx where xxxxxxx is the patch number. - 6 - 2. Initiate the installation sequence. Type Inst> go 3. You may find that two patches have been marked as incompatible. (The installation tools reject an installation request if an incompatibility is detected.) If this occurs, you must deselect one of the patches. Inst> keep patchSGxxxxxxx where xxxxxxx is the patch number. 4. After completing the installation process, exit the inst program by typing Inst> quit 1.14 Patch_Removal_Instructions To remove a patch, use the versions remove command as you would for any other software subsystem. The removal process reinstates the original version of software unless you have specifically removed the patch history from your system. versions remove patchSGxxxxxxx where xxxxxxx is the patch number. To keep a patch but increase your disk space, use the versions removehist command to remove the patch history. versions removehist patchSGxxxxxxx where xxxxxxx is the patch number. 1.15 Known_Problems Occasionally, a loop may not initialize properly on bootup. There will be error messages like the following early in the boot process when this problem occurs: /hw/module/3/slot/io4/fibre_channel/pci/1/scsi_ctlr/0 (22): loop initialization timeout: LIP TCB not completed - giving up (3) When this happens, the drives on that loop will not be useable until the loop is manually initialized as follows: - 7 - scsiha -r -p ioconfig -f /hw For example, to initialize the above loop: scsiha -r -p \ /hw/module/3/slot/io4/fibre_channel/pci/1/scsi_ctlr/0/bus ioconfig -f \ /hw/module/3/slot/io4/fibre_channel/pci/1/scsi_ctlr/0 or scsiha -r -p 47 ioconfig -f \ /hw/module/3/slot/io4/fibre_channel/pci/1/scsi_ctlr/0 It is not necessary to give the full path to ioconfig. ioconfig -f /hw will work also, but it will take longer, as the entire system will be configured, not just the loop in question.