Patch Name: PHNE_25489 Patch Description: s700_800 11.00 PCI mux driver/utilities cumulative patch Creation Date: 02/01/10 Post Date: 02/01/24 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: PCI-MUX B.11.00.00 PCI-MUX B.11.00.01 PCI-MUX B.11.00.02 PCI-MUX B.11.00.04 PCI-MUX B.11.00.07 PCI-MUX B.11.00.11 Filesets: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.04,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.11,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.01,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.02,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.04,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.07,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-KRN,fr=B.11.00.11,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.04,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.11,fa=HP-UX_B.11.00_32,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.01,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.02,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.04,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.07,fa=HP-UX_B.11.00_64,v=HP PCI-MUX.PCI-MUX-RUN,fr=B.11.00.11,fa=HP-UX_B.11.00_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_25489: PANIC PHNE_24181: PANIC PHNE_23883: OTHER Prevents mux from creating tty devices. PHNE_23631: PANIC PHNE_16385: PANIC Category Tags: defect_repair enhancement general_release critical panic Path Name: /hp-ux_patches/s700_800/11.X/PHNE_25489 Symptoms: PHNE_25489: SR: 8606227010 CR: JAGad96072 Mux initialization has to be made more robust. SR: 8606220546 CR: JAGad89684 The system panics with Data Page Fault, after logging the following diagnostic message in the system buffers, "q_data_count >= q_size, possibly corrupting memory" SR: 8606223851 CR: JAGad92948 Addition of q4 debugging functionality to PCI-MUX. PHNE_24185: SR: 8606215957 CR: JAGad85129 Terminal cross talk when using A6749A PCI-MUX 64 port with 25 ft cable PHNE_24181: 1) The Error message "Mux timed out waiting for flow control to clear." is logged when condition is not true. 2) System panic caused when callout table overflows with entires from mega_clear_hang. 3) Killing a process would sometimes leave hung ports. 4) Once in a great while writes of data larger than 4k cause the system to panic. Dumps show EQNX_sst_write on the stack and the memory beyond the uio_hack data buffer corrupted by the written data. 5) When running on systems which are greatly stressed, it is possible to drop characters, especially on 8 port cards, when running at baud rates in excess of 9600 baud. PHNE_23883: 1) 25 ft cables cause board to fail initialization. 2) Invoking emux_diag will occasionally close window. PHNE_23631: 1) Writes > 4k crash occasionally crash the system. 2) 25 ft cables cause board to fail. 3) Unable to differentiate between 5v and 3.3v cards. PHNE_16385: 1) Output garbage that hangs modem on EISA mux 2) System panic in EQNX_sst_proc on stack trace on EISA mux 3) Read(2) not reading data although select(2) returns true 4) Data flow will not restart again with tcflow on EISA mux 5) FIONREAD call does not work correctly on EISA mux 6) Use HW path instead of slot number for EISA mux Defect Description: PHNE_25489: SR: 8606227010 CR: JAGad96072 The initialization code for the mux product has to be made more robust. This involves enhancing ring initialization patterns and resetting registers that could have been corrupted in the case of a card reset. Resolution: The initialization process has been modified to pre-set all necessary registers with appropriate values and the ring initialization has been made more robust. SR: 8606220546 CR: JAGad89684 The "delay()" function call added as a part of the fix for JAGad42926 (SR: 8606173669) in function eqnx_mux0_sst_write() causes the system to panic. Resolution: The panic was a result of argument mismatch. The "delay()" function call has now been fixed to pass appropriate arguments hence fixing the panic. SR: 8606223851 CR: JAGad92948 Enhance Mux product to include PCI-MUX code symbols and hence allow data structures from this code to be formatted using q4. This would help faster analysis of crash dumps. Resolution: A new file libpci_muxdbg.o has been added to the product. This file contains the necessary symbolic information required for kernel debugging. PHNE_24185: SR: 8606215957 CR: JAGad85129 A6749A, PCI mux products have been encountering terminal I/O problems such as "cross talk" where data is displayed on the wrong terminal. Resolution: Fix has been made to reinitialize corrupt memory addresses that might have been saved in the event of a reset, which would lead to crosstalk. PHNE_24181: 1) Coding error prevented untimeout() from being called which removes the timeout interrupt handler from the callout table. When the timeout expires, the interrupt hander is called to print the message. 2) Error #1 allows timeouts to accrue in the timeout callout table. 3) Error #1 also prevented the close routine from flushing the output buffers leaving the driver in a flow-controled state. A while() statement caused the code to loop forever waiting for the flag to clear. 4) It appears a hardware register is being corrupted and set to -1 during a write. This in turn causes the driver to uiomove all the remaining data (uio_resid) into the drivers internal buffer (uio_hack). If the size of the data moved is > 4k, memory beyond uio_hack is overwritten. Since this can be anything, anything can happen. 5) A race condition can occur when both the line discipline and the board do flow control. PHNE_23883: 1) Previous patch failed to full fix 25ft cable problem. 2) Emux_diag was compiled with the wrong curses library. PHNE_23631: 1) HW problem causes incorrect register value. 2) State machine incorrectly initialized when board reset 3) emux_diag did not differentiate 5v and 3.3v cards PHNE_16385: 1) Logic error in enabling opost processing in HW. 2) Typo error caused a missing "&" for address of a variable 3) Logic error in by-pass mode processing. 4) Logic error in handling flow control. 5) FIONREAD was not processed in by-pass mode. 6) This is an enhancement for support multi-node V class SR: 0000000000 0000000000 5003419994 1653262006 5003434316 5003434274 8606173669 8606201501 8606215957 8606220546 8606223851 8606227010 Patch Files: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.04,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.11,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libpci_mux.a /usr/conf/lib/libpci_muxdbg.o /usr/conf/master.d/pci_mux PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.01,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.02,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.04,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.07,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.11,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libpci_mux.a /usr/conf/lib/libpci_muxdbg.o /usr/conf/master.d/pci_mux PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.04,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.11,fa=HP-UX_B.11.00_32,v=HP: /usr/bin/emux_diag /usr/bin/emux_stty PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.01,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.02,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.04,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.07,fa=HP-UX_B.11.00_64,v=HP: PCI-MUX.PCI-MUX-RUN,fr=B.11.00.11,fa=HP-UX_B.11.00_64,v=HP: /usr/bin/emux_diag /usr/bin/emux_stty what(1) Output: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libpci_mux.a: HP PCI Mux Device Driver, FILESET PCI-MUX-KRN Versio n B.11.00.14 PHNE_25489 Copyright (c) 2000 Hewlett-Packard Company HP PCI Mux Device Driver, FILESET PCI-MUX-KRN Versio n B.11.00.14 PHNE_25489 Copyright (c) 2000 Hewlett-Packard Company /usr/conf/lib/libpci_muxdbg.o: HP PCI Mux Debug Library, FILESET PCI-MUX-KRN Versio n B.11.00.14 PHNE_25489 Copyright (c) 2000 Hewlett-Packard Company /usr/conf/master.d/pci_mux: $Revision: 1.1.71.6 $ PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libpci_mux.a: HP PCI Mux Device Driver, FILESET PCI-MUX-KRN Versio n B.11.00.14 PHNE_25489 Copyright (c) 2000 Hewlett-Packard Company HP PCI Mux Device Driver, FILESET PCI-MUX-KRN Versio n B.11.00.14 PHNE_25489 Copyright (c) 2000 Hewlett-Packard Company /usr/conf/lib/libpci_muxdbg.o: HP PCI Mux Debug Library, FILESET PCI-MUX-KRN Versio n B.11.00.14 PHNE_25489 Copyright (c) 2000 Hewlett-Packard Company /usr/conf/master.d/pci_mux: $Revision: 1.1.71.6 $ PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP: /usr/bin/emux_stty: HP PCI/EISA Mux stty (emux_stty), Version B.11.00.14 PHNE_25489 /usr/bin/emux_diag: HP PCI/EISA Mux diagnostic (emux_diag), Version B.11 .00.14 PHNE_25489 PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP: /usr/bin/emux_stty: HP PCI/EISA Mux stty (emux_stty), Version B.11.00.14 PHNE_25489 /usr/bin/emux_diag: HP PCI/EISA Mux diagnostic (emux_diag), Version B.11 .00.14 PHNE_25489 cksum(1) Output: PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP: 2976705410 112784 /usr/conf/lib/libpci_mux.a 436605752 186120 /usr/conf/lib/libpci_muxdbg.o 4011965082 4296 /usr/conf/master.d/pci_mux PCI-MUX.PCI-MUX-KRN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP: 2976012122 203436 /usr/conf/lib/libpci_mux.a 4134873609 229328 /usr/conf/lib/libpci_muxdbg.o 4011965082 4296 /usr/conf/master.d/pci_mux PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_32,v=HP: 2093749442 399960 /usr/bin/emux_diag 1487220576 90704 /usr/bin/emux_stty PCI-MUX.PCI-MUX-RUN,fr=B.11.00.00,fa=HP-UX_B.11.00_64,v=HP: 2093749442 399960 /usr/bin/emux_diag 1487220576 90704 /usr/bin/emux_stty Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_16385 PHNE_23631 PHNE_23883 PHNE_24181 PHNE_24185 Equivalent Patches: PHNE_23881: s700: 10.20 s800: 10.20 PHNE_25491: s700: 11.11 s800: 11.11 Patch Package Size: 1730 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. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_25489 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_25489.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_25489. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHNE_25489.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_25489.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_25489.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None