Patch Name: PHKL_4225 Patch Description: s700 9.01 SE SCSI devices not accessible after reboot This patch fixes a problem with devices connected via the HP A2679A EISA SCSI-2 (Single-Ended) Host Adapter. Devices connected to this SCSI card were not accessible after a "soft" system reboot. The only way to clear this error was to cycle power on either the CPU or the SCSI devices. The fix was to reset both the host adapter and the bus during the boot process, an operation that normally occurs without intervention on the other (differential) SCSI host adapters. This patch supersedes the following patches and includes their fixes: PHKL_4098: This patch fixes two known corner cases on the NCR53C700 Single-Ended bus that create timing windows in the scsi_c700 interface driver. The first known corner case was addressed by PHKL_4053, below. This was the driver's reading of registers when SIP and DIP were not set appropriately. The second fix addressed by this patch is another timing window where it is possible for an I/O to become lost in the I/O path of the driver. The fix was for the driver to check for both these conditions and as a result, it addresses all known SCSI request timeout problems encountered to date. PHKL_4053 & PHKL_3575: This patch fixes a problem with the Single-Ended Core SCSI bus where periodically the driver would lose an interrupt. This would result in a SCSI request timeout being logged to the kernel message buffer and the I/O being aborted. In the case of disk drives, a 150 second hang of the system would occurr prior to the I/O timing out and being retried. Example message buffer: SCSI: request timeout - bus = 0x1, tgt = 0x2 PHKL_3324: This patch turns back on kernel instrumentation for "monitor", which was inadvertently disabled in PHKL_3225. PHKL_3225: This patch fixes the following problems: 1) Panic: dup biodone(). 2) Unexpected message "SCSI: bus timeout - bus = 0xXX" in the kernel message buffer. 3) EISA performance degradation after extended uptime. Defect Descriptions: 1) There was a race condition between the setting of "temp" to "Ent_running" by the NCR SCSI controller (via the scripts) and the setting of "lbp->running" by "c700_cmd_sent()". If "isc->running" pointed to the last request and a timeout occurred between the setting of "temp" and the setting of "lbp->running" to the current request, the wrong request pointer was returned. 2) The device open count was incorrect during some last closes, which caused the close routine to not turn off bus timeouts. 3) The device open count was incorrect during some last closes, which caused the close routine to release EISA SCSI iomap entries. Fixes: 1) Zeroed "lbp->running" prior to starting a new request. If a timeout occurs and "lbp->running" is NULL, "isc->owner" is returned. 2) Fixed the device open count so that the close routine turns off the bus timeout. 3) Fixed the device open count so that the close routine releases the EISA SCSI iomap entries. Path Name: /hp-ux_patches/s700/9.X/PHKL_4225 Effective Date: 940512 OS Release: 9.01 Reboot Required: Yes Patch Files: /etc/conf/libhp-ux.a(scsi_c700.o) SR#: 5003197897 1653058123 "what" string/timestamp: scsi_c700.c $Revision: 1.2.81.13 $ $Date: 94/05/12 16:42:18 $ PATCH_9.01 (PHKL_4225) "sum" output: 41564 160 scsi_c700.o Dependencies: None Supersedes: PHKL_2900 PHKL_3225 PHKL_3324 PHKL_3575 PHKL_4053 PHKL_4098 H/W Dependencies: None Special Installation Instructions: None. Patch Installation Recommendation: Recommended for all systems, in particular those using SCSI interfaces. Patch Package Size: 144 Kbytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. Note: Please back up your system before you patch. --------------------------------------------------------------------------- After getting the patch onto your machine, unshar the patch (sh PHKL_4225). To install this patch do the following: 1) Run /etc/update (Note: you must be logged in as root to update a system). 2) Once in the update "Main Menu" move the highlighted line to "Change Source or Destination ->" and press "Return" or "Select Item". 3) Make sure the highlighted item in the "Change Source or Destination" window is "From Tape Device to Local System ...", then press "Return" or "Select Item". 4) You should now be in the "From Tape Device to Local System" window. Change the "Source: /dev/rmt/0m" to "Source: /tmp/PHKL_4225.updt" (this assumes that you are in the /tmp directory where PHKL_4225.updt has been placed). Note: You must enter the complete path name. 5) Press "Done". 6) From here on follow the standard directions for update. The customized script that update runs will move the original software to /system/PHKL_4225/orig. HP recommends keeping this software there in order to recover from any potential problems. It is also recommended that you move the PHKL_4225.text file to /system/PHKL_4225 to be retained for future reference. If you wish to put this patch on a magnetic tape and update from the tape drive, dd a copy of the patch to the tape drive. As an example the following will create a copy of the patch that update can read: dd if=PHKL_4225.updt of=/dev/rmt/0m bs=2048