Patch Name: PHNE_22981 Patch Description: s700_800 11.04 (VVOS) Built-in PCI 100BASE-T patch Creation Date: 00/12/18 Post Date: 01/01/12 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP Networking.LAN-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_22981: PANIC Based on HP-UX patch PHNE_22244: PANIC Based on HP-UX patch PHNE_21687: PANIC Based on HP-UX patch PHNE_19826: PANIC PHNE_19093: PANIC Based on HP-UX patch PHNE_18574: PANIC Based on HP-UX patch PHNE_17071: OTHER Loss of Networking capability Category Tags: defect_repair hardware_enablement enhancement general_release critical panic Path Name: /hp-ux_patches/s700_800/11.X/PHNE_22981 Symptoms: PHNE_22981: Repackage HP-UX patch PHNE_22244 (Built-in PCI 100BT) for VVOS. Based on HP-UX patch PHNE_22244: 1. A false link down event is reported by the driver. 2. 100BT startup script (hpbase100) fails at system boot time. 3. 100BT is randomly missing packets. 4. System panics due to instruction page fault. 5. 'netfmt' on 100BT traces causes SIGSEGV while running HP_APA LAN_MONITOR 6. 100BT card hangs occasionally. The card is unable to receive any frames. 7. swverify leaves lan100bt_core_verify in the /tmp directory. Based on HP-UX PHNE_21687: 1. lanadmin -A to change MAC address causes panic: wait_for_lock 2. Nettl displays incorrect informative message about speed and mode. 3. ER: Display capabilities of the switch after auto negotiation completion. 4. Start up scripts fail if there are 10 or more lan cards. 5. btlan interface hangs after 36 hours of testing. 6. 64 byte cache line machine interface hangs. 7. 100bt: message logged "Unable to setup Read/Write Prefetch lengths" Based on HP-UX PHNE_19826: 1. The driver panics with "spinlock held too long" message. 2. Swverify fails with "ERROR: File "/usr/old/usr/newconfig/etc/rc.config.d/hpbase100conf" missing" after removing patch PHNE_19020. Based on HP-UX PHNE_19020: 1. SAM does not support altering speed (10 or 100Mbps) and duplex mode (half or full) settings on the interface. 2. Cable disconnect message is displayed even when there is really no cable disconnected. 3. Applications (including lanadmin) receive 10 for 10Mbps or 100 for 100Mbps for the speed value in the ifSpeed field of the mib structure. 'lanadmin' therefore displays 10 or 100 for the interface (link) speed. 4. 'lanadmin -x [ppa]' display does not indicate whether the card is running in the auto-negotiation or manual mode. 5. lanadmin cannot alter the Maximum Transmission Unit (MTU) size value of the interface. 6. Applications do not receive outbound traffic from the interface when they enable promiscuous mode on the interface. 7. Applications joining multicast address groups before cable disconnect are not able to transmit or receive traffic to and from these groups after cable reconnect. 8. The driver does not recognize combo card which has both SCSI and 100BT interfaces. 9. During boot up sometimes the driver was not configured into the system. 10.If two systems are connected back to back using a crossover cable, and one side is reset with/without traffic, the resulting link has random speed/duplex values or sometimes never comes up. 11.The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hpbase100conf. 12.The driver reports bad stats via netstat and lanadmin. PHNE_19093: Repackage HP-UX patch PHNE_18574 for VVOS. Based on HP-UX PHNE_18574: 1. System panic due to data page fault 2. Incorrect or arbitrary link configuration after cable disconnect at either ends. 3. Driver stops receiving incoming frames. 4. "Spinlock held too long" panic with debug kernel. Based on HP-UX PHNE_17071: 1. Built-in PCI 100BASE-T driver is not installed. 2. Patch removal fails with error messages. Based on HP-UX PHNE_14890: 1. Built-in PCI 100BASE-T is not supported on B.11.00. Defect Description: PHNE_22981: Repackage HP-UX patch PHNE_22244 (Built-in PCI 100BT) for VVOS. Based on HP-UX patch PHNE_22244: 1. JAGad40611: The LXT970 chip is reporting a false link down event if the symbol error rate increases over a certain limit. Resolution: There are two modes in which the LXT970 phy can be programmed to report a link down event. 1) When the symbol error rate increases over a certain limit. 2) If the phy loses the scrambler lock. By default, the LXT970 phy was programmed to operate in mode 1 where as the DP83840 phy operates in mode 2. This fix sets the LXT970 phy to operate in mode 2. As in the case of the DP83840 phy, the fix allows the MAC to check the symbol errors and report them as FCS errors. The LXT970 phy operating in mode 2 will not report false link down events. 2. JAGad26217: If /etc/rc.config.d/hpbase100conf configuration file does not exist on system before patch PHNE_21687 is installed, the patch will not copy the file /usr/newconfig/etc/rc.config.d/hpbase100conf to /etc/rc.config.d/hpbase100conf. Resolution: Upon installation, this patch will check to see if hpbase100conf exists in the correct location. If not, the file will be copied to the correct location. 3. JAGad03897: When there is a transient overload, the 100BT NIC runs out of receive descriptors and drops packets. Typically this is caused by bursty traffic where several hundred packets are sent to the NIC within a few millisecs. Resolution: The number of receive descriptors have been doubled. 4. JAGad24136: The data portion of the receive buffers was not cacheline aligned. Stack trace follows, A. Original Dump: freeb_pullupmsg+0x2c4 freeb+0xe4c freemsg+0x18 ip_rput_local+0x1b80 ip_rput+0x40c putnext+0x228 hp_dlpi_unitdata_in+0x58 chp_dlpi_mblk_intr_put+0x17c streams_put_release+0x398 hp_dlpi_mblk_intr+0x7c lanc_ether_ics+0x230 btlan_receive_frame+0x550 btlan_isr+0x120 dino_isr+0x184 up_ext_interrupt+0x1e0 ivti_patch_to_nop2+0x0 idle+0x5ac swidle_exit+0x0 B. jaguar: freeb_pullupmsg+0x2c4 freeb+0xe4c soreceive+0x12cc recvit+0x1d4 recvfrom+0x94 syscall+0x758 $syscallrtn+0x0 C. kabalah: freeb+0xb64 freemsg+0x18 lanc_802_2_ics+0x130 btlan_receive_frame+0x590 btlan_isr+0x120 dino_isr+0x184 mp_ext_interrupt+0x378 ivti_patch_to_nop3+0x0 idle+0x598 swidle_exit+0x0 Resolution: The 100BT driver now ensures the receive buffers data is cacheline aligned. 5. JAGad28394: Wrong number of arguments are passed to a function in the formatter. Resolution: The correct number of arguments are now passed to the function in the formatter. 6. JAGad33760: When a very high number of receive errors occur the driver will lose descriptors. Eventually the card will no longer be able to receive frames. Resolution: The driver now handles receiving errors correctly. 7. JAGad34993: In some instances the verify scripts did not remove lan100bt_core_verify. Resolution: The file is now removed. Based on HP-UX PHNE_21687: 1. JAGad05541: The problem is due to waking up a dlpi thread while holding spinlock on ICS. Resolution: The driver now releases spinlock when it wakes up dlpi thread in transmit completion function. 2. JAGab81818: The nettl logging message about speed and mode displays wrong values. Resolution: The driver is modified to display correct speed and mode. 3. JAGab64404(ER): The driver was not logging the abilities of the remote partner after auto negotiation. Resolution: The driver is modified to log the capabilities of remote partner after auto negotiation completion. 4. JAGac16214: The hpgsc100 script greps for a particular PPA, but this will match for multiple instances if there are more than 10 cards.(eg, the script greps for lan1, this will match lan1, lan10, lan11.. etc). Resolution: The script is modified so that it will match for only one instance. The script now greps for "lan ". 5. JAGac12427: The transmit engine of btlan hangs under following condition - Whenever the driver receives a packet containing more than 6 mbufs, it tries to coalesce this packet into one. If the memory allocation fails, then this packet is queued for transmit as it is, with out coalescing. This can stall the transmit engine if the number of mbufs queued needs more transmit descriptors than what the driver has. Resolution: The driver drops the packet in this condition. 6. JAGac56793: This problem occurred due to cache line alignment mismatch on 64 byte cache line machines. The card may hang when this problem occurs. Resolution: This problem is resolved by redefining the cache line size value in the driver header file, if this value is less than 64 bytes. 7. JAGab72844: The message "Unable to setup Read/Write Prefetch lengths" is printed when not necessary. Resolution: This message in no longer printed. Based on HP-UX PHNE_19826: 1. JAGab71953: The driver holds the lock while resetting transmit list which sometimes could take long time. Resolution: The driver resets the transmit list without acquiring the lock. 2. JAGab74874: Control script did not remove /usr/old/usr/newconfig/etc/rc.config.d/hpbase100conf from Installed Product Database. Resolution: Remove the following entry from Installed Product Database via the patch's configure script: /usr/old/usr/newconfig/etc/rc.config.d/hpbase100conf. Based on HP-UX PHNE_19020: 1. 4701430132: No supporting ioctls were implemented in the driver for SAM to use. Resolution: Implemented the required ioctls that the corresponding code in SAM uses. 2. JAGab15597: Upon receiving the fatal bus error (FBE) interrupt from the card, the driver would incorrectly process it as if the cable was disconnected. Resolution: Modified code to process the FBE interrupt by doing soft reset of the card AND putting the driver state to DOWN. 3. 5003466995 (JAGab24364): The driver stores 10 for 10Mbps and 100 for 100Mbps in its local mib related data structures. Resolution: Modified driver code to store 10000000 for 10Mbps and 100000000 for 100Mbps in its local mib data structures. 4. 1653286500: The driver did not provide ioctls for lanadmin to use to obtain the information about the mode (autonegotiation or manual) mode in which it was operating. Resolution: The driver implemented the new ioctl for obtaining the above mode information. 5. JAGab43893: The driver did not implement ioctl for lanadmin to use to alter the MTU size value on the interface. Resolution: The driver implemented the new ioctl for changing the MTU size value for the interface. 6. 5003432179 (JAGab31942): The driver did not implement appropriate functionality which would return a copy of the transmitted packet to the upper protocols. Resolution: The driver implemented appropriate functionality which would return a copy of the transmitted packet to the upper protocols. 7. 5003465328 (JAGab20799): The driver rejected requests from the IP layer to rejoin multicast address groups because it notified the upper protocols about the cable reconnect before it entered into the correct state. Resolution: The driver entered into the correct state after cable reconnect. 8.JAGab43944: Combo card which has both SCSI and 100BT interfaces is not supported. Resolution: The driver was modified to regconize combo card's subsystem id. 9. JAGab63191: The driver's start up script aborts during boot up. Resolution: Modify the driver's script to behave correctly. 10.JAGaa91319: "Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip was not set when initiating autonegotiation. Resolution: Set the "Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip when initiating autonegotiation and also made the cable detection period shorter. 11.JAGab70552: The array of link configuration data in /etc/rc.config.d/hpbase100conf was non-sequential which the startup script (/sbin/init.d/hpbase100) cannot handle correctly. Resolution: The startup script (/sbin/init.d/hpbase100) is modified to skip over the missing indices in the array and work through all that are provided. 12.JAGab70255: The driver is not updating all the statistics correctly. Resolution: The driver is modified to update all the statistics that are supported by the card. PHNE_19093: Repackage HP-UX patch PHNE_18574 for VVOS. Based on HP-UX PHNE_18574: 1. A null pointer referring to the buffer was used. Resolution: Check whether buffer allocation routine returned a valid non-null buffer pointer before attempting to use it. 2. "Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip was not set when initiating autonegotiation. Resolution: Set the "Restart Autonegotiation" bit in the Basic Mode Control Register (BMCR) on the PHY chip when initiating autonegotiation. 3. The receive engine of the driver was down. This problem was introduced after cache line alignment was changed from 8-longword boundary to 32-longword boundary. Resolution: Rolled back the cache line alignment changes. 4. Buffer refill logic in the driver could result in driver being in the interrupt service routine(ISR) for a long time which resulted in this panic. Resolution: Fixed the buffer refill path to avoid being in ISR for a long time period. Based on HP-UX PHNE_17071: 1. The patch PHNE_14890 installation is excluded if the Built-in PCI 100BASE-T card is not present. If the Ignite archive is built on a machine without a Built-in PCI 100BASE-T card, the archive will not have the Built-in PCI 100BASE-T driver. 2. Removal of this patch will result in loss of networking capability. For this reason, the checkremove script of the patch was not allowing the patch to be removed. The checkremove script has been changed to allow patch removal if the Built-in PCI 100BASE-T hardware is not present. Based on HP-UX PHNE_14890: 1. Built-in PCI 100BASE-T driver was not included in B.11.00. Support for this driver is being introduced in this patch. SR: 8606171347 8606165703 8606164461 8606159065 8606154819 8606134762 8606156883 4701430132 5003466995 1653286500 5003432179 5003465328 8606136416 8606109120 1653292060 8606113954 8606113907 8606126228 8606105029 Patch Files: Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libbtlan3.a /usr/conf/lib/btlan3_dbg.o /usr/conf/master.d/lan100bt-core /usr/conf/lib/libmaclan.a /usr/conf/master.d/maclan Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libbtlan3.a /usr/conf/lib/btlan3_dbg.o /usr/conf/master.d/lan100bt-core /usr/conf/lib/libmaclan.a /usr/conf/master.d/maclan Networking.LAN-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /opt/networkdocs/PCI100btSCSI_using.pdf /usr/lib/nls/msg/C/dsbtlan3.cat /usr/lib/nls/msg/C/pebtlan3.cat /usr/lib/lanadmin/libdsbtlan3.1 /usr/lib/lanadmin/libdsbtlan3.sl /usr/lib/lanscan/libpebtlan3.1 /usr/lib/lanscan/libpebtlan3.sl /usr/sbin/hpbase100_init /usr/newconfig/etc/rc.config.d/hpbase100conf /sbin/init.d/hpbase100 /sbin/rc2.d/S323hpbase100 /usr/lib/nls/msg/C/fmtbtlan3.cat /usr/lib/libfmtbtlan3.1 /usr/lib/libfmtbtlan3.sl /sbin/init.d/maclan_init /sbin/rc2.d/S462maclan what(1) Output: Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libbtlan3.a: 100BT : btlan3.c Core 100BT Cleanup PHNE_22244 B.11. 00.07 $Revision: 1.74 $ $Date: 2000/11/07 17 :00:48 $ /usr/conf/lib/btlan3_dbg.o: None /usr/conf/master.d/lan100bt-core: None /usr/conf/lib/libmaclan.a: Pseudo LLA-MAC retrieval driver ver 1.1 /usr/conf/master.d/maclan: None Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libbtlan3.a: 100BT : btlan3.c Core 100BT Cleanup PHNE_22244 B.11. 00.07 $Revision: 1.74 $ $Date: 2000/11/07 17 :00:48 $ /usr/conf/lib/btlan3_dbg.o: None /usr/conf/master.d/lan100bt-core: None /usr/conf/lib/libmaclan.a: Pseudo LLA-MAC retrieval driver ver 1.1 /usr/conf/master.d/maclan: None Networking.LAN-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /opt/networkdocs/PCI100btSCSI_using.pdf: None /usr/lib/nls/msg/C/dsbtlan3.cat: None /usr/lib/nls/msg/C/pebtlan3.cat: None /usr/lib/lanadmin/libdsbtlan3.1: libdsbtlan3.sl: Version: B.11.00 $Date: 2000/08/31 1 6:06:18 $ /usr/lib/lanadmin/libdsbtlan3.sl: libdsbtlan3.sl: Version: B.11.00 $Date: 2000/08/31 1 6:06:18 $ /usr/lib/lanscan/libpebtlan3.1: libpebtlan3.sl: Version: B.11.00 $Date: 98/04/30 15 :45:05 $ /usr/lib/lanscan/libpebtlan3.sl: libpebtlan3.sl: Version: B.11.00 $Date: 98/04/30 15 :45:05 $ /usr/sbin/hpbase100_init: hpbase100_init $Revision: 1.3 $ $Date: 99/07/16 11: 26:28 $ /usr/newconfig/etc/rc.config.d/hpbase100conf: hpbase100conf $Revision: 1.5 $ $Date: 2000/02/21 10: 55:45 $ /sbin/init.d/hpbase100: hpbase100 $Revision: 1.12 $ $Date: 2000/09/12 20:44: 12 $ /sbin/rc2.d/S323hpbase100: hpbase100 $Revision: 1.12 $ $Date: 2000/09/12 20:44: 12 $ /usr/lib/nls/msg/C/fmtbtlan3.cat: None /usr/lib/libfmtbtlan3.1: BTLAN3: Version: B.11.00 $Date: 2000/01/05 11: 32:34 $ /usr/lib/libfmtbtlan3.sl: BTLAN3: Version: B.11.00 $Date: 2000/01/05 11: 32:34 $ /sbin/init.d/maclan_init: Pseudo LLA/MAC device script ver 1.0 /sbin/rc2.d/S462maclan: Pseudo LLA/MAC device script ver 1.0 cksum(1) Output: Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 3876845210 116836 /usr/conf/lib/libbtlan3.a 1501145389 226928 /usr/conf/lib/btlan3_dbg.o 3841853062 3768 /usr/conf/master.d/lan100bt-core 1476119866 6144 /usr/conf/lib/libmaclan.a 3552486123 3682 /usr/conf/master.d/maclan Networking.LAN2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 2738173960 70748 /usr/conf/lib/libbtlan3.a 4054856317 183092 /usr/conf/lib/btlan3_dbg.o 3841853062 3768 /usr/conf/master.d/lan100bt-core 1286243102 3060 /usr/conf/lib/libmaclan.a 3552486123 3682 /usr/conf/master.d/maclan Networking.LAN-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: 1697003003 1078020 /opt/networkdocs/PCI100btSCSI_using.pdf 2624246182 3996 /usr/lib/nls/msg/C/dsbtlan3.cat 3231781941 114 /usr/lib/nls/msg/C/pebtlan3.cat 552772825 28672 /usr/lib/lanadmin/libdsbtlan3.1 552772825 28672 /usr/lib/lanadmin/libdsbtlan3.sl 3952197459 12288 /usr/lib/lanscan/libpebtlan3.1 3952197459 12288 /usr/lib/lanscan/libpebtlan3.sl 3746626711 6308 /usr/sbin/hpbase100_init 3710299036 1284 /usr/newconfig/etc/rc.config.d/hpbase100conf 3594836019 9593 /sbin/init.d/hpbase100 3594836019 9593 /sbin/rc2.d/S323hpbase100 4128389427 14673 /usr/lib/nls/msg/C/fmtbtlan3.cat 3220755243 12288 /usr/lib/libfmtbtlan3.1 3220755243 12288 /usr/lib/libfmtbtlan3.sl 1560417431 1192 /sbin/init.d/maclan_init 1560417431 1192 /sbin/rc2.d/S462maclan Patch Conflicts: None Patch Dependencies: s700: 11.04: PHNE_21156 PHNE_18560 s800: 11.04: PHNE_21156 PHNE_18560 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_19093 Equivalent Patches: PHNE_22244: s700: 11.00 s800: 11.00 Patch Package Size: 1860 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_22981 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_22981.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_22981. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHNE_22981.depot 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_22981.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_22981.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_22981.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: A new version of file /etc/rc.config.d/hpbase100conf is delivered as part of this patch, as /usr/newconfig/etc/rc.config.d/hpbase100conf file. If you have edited /etc/rc.config.d/hpbase100conf file, you may want to merge these files. To set speed and duplex via SAM, users need to install SAM patch: PHCO_22107. ifconfig down/up is needed while changing MTU using lanamdin -[M|R] options.