Patch Name: PHKL_3396 Patch Description: s700 9.X VME patch with SYSRESET not asserted PHKL_3396 is identical to PHKL_3395 with the single exception that the VME SYSRESET line is NOT asserted during vme_init. The normal power on assertion will still occur, however during a reboot of a currently running slot 1 controller the assertion of VME SYSRESET when vme_init is called does NOT happen. PHKL_3384: Fixes a race condition locking VME with vme_test_and_set. Does not assert VME SYSRESET in vme_init. Under certain conditions the VME ASIC would not achieve a VME bus lock. This resulted in two processes being able to obtain a semaphore using vme_test_and_set. The same condition, though theoretically possible under vme_clr usually would not be seen (normally the process holding a semaphore is the only one allowed to clear it). This patch fixes both conditions. PHKL_3322: Fixes A16 user open of multiple files. Fixes D08 intrrupter mask. Fixes vme_test_and_set and vme_clr on interrupt stack. PHKL_3322 includes the fixes from PHKL_3017, in addition it: Fixes vme_test_and_set, vme_clr, and vme_spin_lock preventing panics if these are called for VME space access on the interrupt stack. Fixes vme2_close and vme2_ioctl to prevent hpmc panics with a trap 15 segmentation violation when one process unmaps an A16 space address that another process had open (the second process would then panic on the next access). Protected VME mapper setting code from other processes and/or processors when calling map_mem_to_host, map_mem_to_bus, and vme_map_mem_to_bus2. Also contains provisions for certain VME SCSI devices in the VME version of io_dma_setup. Fixes d08 interrupter type status ID checks during interrupt acknowledge cycles. This is a fix for the panic identified in SR1653065185 for an unidentified status ID when a bit in the status ID above bit 7 was asserted. This patch (PHKL_3322) differs from PHKL_3321 in that PHKL_3322 DOES NOT issue a VME SYSRESET, when running as a Slot 1 VME controller during vme_init. That is, during "reboot" of a currently running slot 1 VME controller, the VME SYSRESET line WILL NOT be asserted. The ADDR_MOD_TO_ADDR_SELECT macro in /etc/conf/machine/vme2.h was also fixed. PHKL_3017: Fixes default VME address modifiers, VME map calc, and cache coherency. Sets the correct default address modifiers after calls to iotestr, iotestw, and vme_mod_copy. Fixes an incorrect address calculation in vme_map_mem_to_bus. Delays calling linked attach routines if slot 1 controller until vme_reset has had time to deassert. Disallows 2 master mapper entries that conflict with the Spider IO ASIC when EISA is not installed. Ensures cache coherency when io_dma_setup is called from a char device strategy routine which in turn was not called from physio. The default address modifier bug usually resulted in an hpmc panic. The vme_map_mem_to_bus and io_dma_setup bugs generally resulted in data corruption. The Spider IO ASIC without EISA bug generally caused a system hang or panic. Without the delay in calling linked attach routines, these routines generally failed calls to iotestr or iotestw when probing for a card. Path Name: /hp-ux_patches/s700/9.X/PHKL_3396 Effective Date: 931112 OS Release: 9.01 9.03 Reboot Required: Yes Patch Files: /system/PHKL_3396/new/vme2.o /system/PHKL_3396/new/vme2.h SR/APR#: 5003157560 "what" string/timestamp: vme2.o: vme2.c $Revision: 1.2.61.23 $ $Date: 93/11/12 19:49:39 $ PATCH_9.03 (PHKL_3396) vme2.h: vme2.h: $Revision: 1.2.61.9 $ $Date: 93/03/04 10:15:57 $ "sum" output: 16971 54 vme2.o 8265 14 vme2.h Dependencies: None Supersedes: PHKL_3017 PHKL_3322 PHKL_3384 Patch Package Size: 93 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_3396). 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_3396.updt" (this assumes that you are in the /tmp directory where PHKL_3396.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_3396/orig. HP recommends keeping this software there in order to recover from any potential problems. It is also recommended that you move the PHKL_3396.text file to /system/PHKL_3396 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_3396.updt of=/dev/rmt/0m bs=2048