Patch Name: PHKL_25023

Patch Description: s700_800 11.00 PCI cumulative patch

Creation Date: 01/09/21

Post Date: 01/09/21

Hardware Platforms - OS Releases:
	s700: 11.00
	s800: 11.00

Products: N/A

Filesets:
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP

Automatic Reboot?: Yes

Status: General Release

Critical:
	No (superseded patches were critical)
	PHKL_24074: PANIC
	PHKL_22494: OTHER
		EPIC Error Handler reports wrong device and driver
	PHKL_22394: CORRUPTION PANIC
	PHKL_22230: PANIC
	PHKL_21886: OTHER
		Without this patch the Hyperfabric driver will not
		perform optimally or may not even perform at all
	PHKL_20994: PANIC
	PHKL_20835: PANIC
		for JAGab78968, devices will not be recognized
		and will not function. For JAGab78970,
		panic will occur on multi-some devices with
		a bridge on board.
	PHKL_20123: PANIC
		Currently unsupported configurations, such as
		mulitple PCI-to-PCI bridges on a single PCI bus
		will cause the system to panic.
	PHKL_20089: CORRUPTION
	PHKL_19544: PANIC
		For the initial N-class release, I/O Port Space
		support did not make the ship requirements and
		thus was not supported.  However, rather than
		simply not claiming cards with I/O Port Space,
		they will be claimed by their drivers but they
		may data page fault when their drivers attempt
		to access their cards due to a bad IOPS handle.

Category Tags:
	defect_repair hardware_enablement enhancement
	general_release critical panic corruption

Path Name: /hp-ux_patches/s700_800/11.X/PHKL_25023

Symptoms:
	PHKL_25023:
	( SR:8606202426 CR:JAGad71600 )
	Enhancement to add support for SCSI Ultra160 core I/O and
	add-in bus adapters.  This patch is required in order to
	use these cards.

	PHKL_24074:
	(SR: 8606185627  CR: JAGad54829)
	On a small percentage of A-class and L-class servers, HP-UX
	will fail to boot correctly from a bootp server across the
	network.  Systems that fail have demonstrated one of two
	symptoms. The first symptom is that the failure generates a
	"6292" alert (High Priority Machine Check or HPMC)
	immediately after the "alloc_pdc_pages" message during a
	LAN boot. The second symptom is that the system may boot,
	but some or all I/O devices will not work correctly. This
	could include problems such as disks not appearing. This
	problem has not been seen during HP-UX boots from local
	hard disks.

	PHKL_22494:
	( SR: 8606159641 DTS: JAGad28967 )
	EPIC Error Handler reports wrong device path and driver that
	caused the error.  Instead of the erroring device, the
	message displays an I/O path which fell victim to an error
	condition that was caused by another driver.  For instance,
	in this example the error was caused by Fibre Channel driver
	but SCSI C720 driver was mistaken as the one that caused the
	error:

	   panic: Channel error in Driver c720,
	   discovered by Epic 7, Device 0
	      Error Config: 002bffeb:2bffebebaaabf1
	       Error Cause: 70000100:7000010000000000
	        Error Info: 80172000:8017200000000012

	PHKL_22394:
	( SR: 8606157925 DTS: JAGad27255 )
	Under some circumstances the A4924A HSC Gigabit card
	will not be configured at boot.

	( SR: 8606152483 DTS: JAGad21813 )
	Depending on the system and I/O configuration, data
	corruption and resulting system failures can occur.  This
	defect could impact any system that boots from SCSI boot
	devices.

	To date, no customer configurations have experienced this
	problem.

	PHKL_22230:
	( SR: 8606133584 DTS: JAGad02728 )
	V-class systems panic with 'read channel context error'
	messages which might be preceded or followed by 'target
	abort' error messages from the Fibre Channel driver.

	This problem might require heavy IO activity like disk
	copying, system backup or database processing to occur.

	Stack trace should look similar to this:
	LEVEL    FUNC
	0) panic+0x14
	1) fcT1_isr+0xc8
	2) epic_isr+0x58
	3) mp_ext_interrupt+0x34c
	4) ivti_patch_to_nop3+0x0
	5) idle+0x4c0
	6) swidle_exit+0x0

	PHKL_21886:
	( SR: 8606102908 DTS: JAGab68966 )
	HyperFabric Device unable to function optimally

	PHKL_21270:
	( SR: 8606128261 DTS: JAGac79061 )
	L-class servers are unable to support fxe graphics cards.

	PHKL_20994:
	( SR: 8606126189 DTS: JAGac56754 )
	V-class panics with Channel Context Errors.

	PHKL_20835:
	( SR: 8606108530 DTS: JAGab78968 )
	Some PCI multi-device cards with a bridge are ignored and
	cannot function.

	( SR: 8606108532 DTS: JAGab78970 )
	Panic during boot with a DEBUG kernel and the stack should
	look like this:
	panic:  assertion failed (bar->range >= free->range) at line
	...

	PC-Offset Stack Trace (read down, top of stack is 1st):
	  0x001c7504 (panic+0x54)
	  0x001c7f64 (assfail+0x3c)
	  0x000ab00c (pci_mark_free_list+0x144)
	  0x000ac7fc (pci_alloc_range+0x134)
	  0x000aca08 (pci_process_want+0x88)
	  0x000acac8 (pci_cdio_get_scan_state+0x28)
	  0x000ad3e4 (pci_cdio_scan+0x9c)
	  0x003c725c (gio_scan_subtree+0xdc)
	  0x003c7294 (gio_scan_subtree+0x114)
	  0x003c7294 (gio_scan_subtree+0x114)
	  0x003c7294 (gio_scan_subtree+0x114)
	  0x003c711c (io_scan+0xbc)
	  0x003ca8cc (io_virt_mode_config+0xa4)
	  0x0027ea78 (main+0x130)
	  0x003785a4 ($vstart+0x48)
	  0x0003a6cc (RDB_patch_int_trap+0xe0)
	End Of Stack

	PHKL_20123:
	( SR: 8606100466 DTS: JAGab31892 )
	Devices below a PCI-to-PCI bridge requesting a memory mapped
	IO range with a 64 bit address, such as A5838A, are unable
	to map system resources.

	( SR: 8606107082 DTS: JAGab20840 )
	In a configuration with multiple PCI-to-PCI bridges on a
	single PCI bus, only the first PCI-to-PCI bridge is found.

	PHKL_20089:
	( SR: 8606103658 DTS: JAGab70668 )
	Incorrect data in host memory buffers when using the
	BN_DMA_ALIGN_BUF hint on a V-class machine.

	PHKL_19063:
	( SR: 8606101323 DTS: JAGab14263 )
	Added support for the PCI-to-PCI bridge on the A5566A FCMS
	Fibre Channel card.

	PHKL_20164:
	( SR: 8606107507 DTS: JAGab77743 )
	B1000, C3000, J5000, and J7000 workstations do not run on
	HPUX 11.00.

	PHKL_19544:
	( SR: 8606103312 DTS: JAGab16774 )
	Any PCI cards needing I/O Port Space on N-class platforms
	may cause a data page fault when accessed.

Defect Description:
	PHKL_25023:
	( SR:8606202426 CR:JAGad71600 )
	The C1010 SCSI card has 64bit-capable base address
	registers, however the script engine is not programmed to
	handle 64bit addresses.  As a result, the C1010 card must
	only receive 32bit memory-mapped I/O addresses.

	Resolution:
	PCI services was changed to always distribute 32-bit
	memory mapped I/O addresses to the C1010 SCSI card.

	PHKL_24074:
	(SR: 8606185627  CR: JAGad54829)
	The defect addressed by this patch is caused by a corner
	case while initializing some A-class and L-class PCI I/O
	cards. If an I/O memory range assigned to a PCI card is
	near the list of available I/O ranges maintained by
	HP-UX, multiple PCI cards can incorrectly be assigned the
	same I/O range. This problem has only been seen while
	booting HP-UX across a network on a minimal number of
	systems, because the conditions required for triggering
	it depend on a timing interaction between system firmware
	and HP-UX that seldom occurs.

	Resolution:
	The resolution for this defect involved fixing a compar-
	ison to correctly check for the corner case that causes
	this problem.

	This patch is required in the install kernel that the
	failing system is booting from.  Patching the failing
	system itself will not fix the problem.  The repair must
	be made to the install kernel on the bootp server.  The
	patch is included in the install kernel supplied on the
	September 2001 Install and Core OS media.

	PHKL_22494:
	( SR: 8606159641 DTS: JAGad28967 )
	The messages being printed are related to the I/O path
	which discovers the error, but the source of the problem
	is in the I/O path which sent the target abort signal.

	Resolution:
	We look for the device that sent the target abort signal
	and report this as the device that caused the error.

	PHKL_22394:
	( SR: 8606157925 DTS: JAGad27255 )
	During inital boot the HSC Gigabit A4924A card was not
	configured because there was insufficent time for
	initialization to complete before it was polled.  If another
	ioscan was done by a driver or operator then the card would
	be configured.

	Resolution:
	Delay was added after the PCI bus was reset to allow the
	card to correctly initialize.

	( SR: 8606152483 DTS: JAGad21813 )
	The operating system did not correctly map a firmware
	configured external SCSI boot device into memory and two
	devices could then be assigned the same memory resulting in
	data corruption and associated system failures.  This is
	only a problem on systems using the Symbios/NCR 53C896 chip.

	Resolution:
	The operating system checks for the error condition, and if
	found, corrects the memory mapping for the boot device.  For
	systems where this chip is not present, the error condition
	will never be detected; this change will have no impact on
	these systems.

	PHKL_22230:
	( SR: 8606133584 DTS: JAGad02728 )
	On V-class, a previously completed DMA was re-used by
	the IO subsystem which subsequently led to system panic with
	'read channel context error' messages.
	Resolution:
	Prevent the system from reusing previously completed DMA
	which has been unmapped.

	PHKL_21886:
	( SR: 8606102908 DTS: JAGab68966 )
	This patch provides a feature to allow the CLusterINter-
	connect driver to permanently allocate contiguous large
	memory, which will enhance its performance greatly.
	This feature works on other Legacy machines like K-class
	but not on newer N and L servers due to new HP-UX
	architecture in the 11.00 release which configures PCI
	devices after the System bus adapter is initialized.  It
	is then too late for the lowfat driver to resize the IO
	Page directory using a request passed upward to the system
	bus adapter.

	Resolution:
	During the real mode bus walk, detect the Hyper-Fabric card
	and system parameter 'clicreservedmem'.  If both exist then
	request the system bus adapter to increment the IO Page
	directory before it is initialized.

	PHKL_21270:
	( SR: 8606128261 DTS: JAGac79061 )
	Fxe graphics cards make use of a PCI expansion ROM BARs,
	which were not mapped into MMIO.  This caused graphics
	cards on PAT based servers to remain unclaimed.

	Resolution:
	Modified PCI services to scan for PCI expansion ROM BAR and
	map it into LMMIO.

	PHKL_20994:
	( SR: 8606126189 DTS: JAGac56754 )
	In a V-class machine, each memory-request by an IO card on
	the PCI bus is translated into a host-memory address by the
	central IO chip.  Each translation available in the central
	IO chip is called a channel.
	One reason that a Channel Context Error occurs is that an
	IO card on the PCI bus requests a memory address which the
	central IO chip is not programmed to handle. Programming
	the chip for each translation is called a channel build.
	Building a channel in the central IO chip of the V-class
	is done by writes into the IO address space. These writes
	can be delayed through the hardware before reaching the
	central IO chip, thereby delaying the channel-build process.
	Because the V-class is a multi-processor system,
	another processor could direct a PCI card to use that
	channel before the build completes -- resulting in a
	Channel Context Error.
	In the dump, all channels in the IO chip will look OK
	(all translations will be valid) because the channel-build
	process completes long before the dump is taken.

	Resolution:
	Read-back the channel-build register to force the completion
	of the channel-build operation before releasing the
	spinlock which protects the use of the channel.

	PHKL_20835:
	( SR: 8606108530 DTS: JAGab78968 )
	PCI devices malfunction due to PCI-to-PCI Bus mastership,
	I/O and Memory Mapped IO not enabled.  This happens when
	device BARs are hidden below the PCI-to-PCI bridge.

	Resolution:
	Enable bridge Bus Master, IO and Memory Mapped IO as
	default.

	( SR: 8606108532 DTS: JAGab78970 )
	Panic during card initialization caused by BAR address out
	of bound.  Root cause is due to holes generated by PCI
	address alignment.

	Resolution:
	Change BAR allocation, sort them from large to small, this
	will eliminate holes that pushes BAR out of bound.

	PHKL_20123:
	( SR: 8606100466 DTS: JAGab31892 )
	64 bit memory mapped IO space below a PCI-to-PCI bridge was
	not supported.

	Resolution:
	Added support to map 64 bit MMIO requests into 32 bit MMIO.

	( SR: 8606107082 DTS: JAGab20840 )
	Error in PCI-to-PCI bridge code prevented more than the
	first PCI-to-PCI bridge on a single PCI bus from being
	claimed.

	Resolution:
	Fixed PCI-to-PCI code to properly step through each
	PCI-to-PCI bridge on a PCI bus.

	PHKL_20089:
	( SR: 8606103658 DTS: JAGab70668 )
	V-class PCI bus adaptor CDIO incorrectly implemented the
	BN_DMA_ALIGN_BUF hint, resulting in overlapped PCI bus
	mappings.

	Resolution:
	Modify the V-class PCI bus adaptor bus map routine to
	correctly handle BN_DMA_ALIGN BUF hint

	PHKL_19063:
	( SR: 8606101323 DTS: JAGab14263 )
	The A5566A FCMS card contains a PCI-to-PCI bridge.  V-Class
	machines do not currently support PCI-to-PCI bridges.

	Resolution:
	Added functionality to initialize the PCI-to-PCI bridge chip
	on the A5566A FCMS card so the Fibre Channel driver can
	access the Fibre Channel portion of the card.

	PHKL_20164:
	( SR: 8606107507 DTS: JAGab77743 )
	Local bus adapter code in HPUX 11.00 does not support
	B1000, C3000, J5000, and J7000 workstations.
	Resolution:
	Added LBA support for new workstations.

	PHKL_19544:
	( SR: 8606103312 DTS: JAGab16774 )
	N-class did not support PCI cards needing I/O Port Space at
	first release.  Attempting to use an I/O Port Space card
	could lead to a data page fault because the PCI bridge
	manager and kernel platform services mapping routines for
	I/O Port Space were not functional.

	Resolution:
	This patch addresses the I/O Port Space mapping defect.
	Multiple fixes were made regarding I/O Port Space.  This
	patch depends on PHKL_19543 which ENABLES the recognition
	of Postable I/O Port Space ranges.

SR:
	8606100466 8606101323 8606102908 8606103312 8606103658
	8606107507 8606108530 8606108532 8606126189 8606128261
	8606133584 8606152483 8606157925 8606159641 8606185627
	8606202426

Patch Files:
	
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/conf/wsio/pci.h

	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/include/sys/pci.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libpci.a(p2pb_cdio.o)
	/usr/conf/lib/libpci.a(pci_cdio.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libpci.a(elroy_cdio.o)
	/usr/conf/lib/libpci.a(epic_cdio.o)
	/usr/conf/lib/libpci.a(epic_chnl.o)
	/usr/conf/lib/libpci.a(epic_errors.o)
	/usr/conf/lib/libpci.a(p2pb_cdio.o)
	/usr/conf/lib/libpci.a(pci_cdio.o)

what(1) Output:
	
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/conf/wsio/pci.h:
		pci.h $Date: 2000/03/09 15:31:26 $Revision: r11ros/3
			 PATCH_11.00 (PHKL_21270)

	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/include/sys/pci.h:
		pci.h $Date: 2000/03/09 15:31:26 $Revision: r11ros/3
			 PATCH_11.00 (PHKL_21270)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libpci.a(p2pb_cdio.o):
		p2pb_cdio.c $Date: 2000/01/28 19:57:40 $Revision: r1
			1ros/5 PATCH_11.00 (PHKL_20835)
	/usr/conf/lib/libpci.a(pci_cdio.o):
		pci_cdio.c $Date: 2001/06/08 11:04:38 $Revision: r11
			ros/15 PATCH_11.00 (PHKL_24074)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libpci.a(elroy_cdio.o):
		elroy_cdio.c $Date: 2001/08/31 14:16:32 $Revision: r
			11ros/6 PATCH_11.00 (PHKL_25023)
	/usr/conf/lib/libpci.a(epic_cdio.o):
		epic_cdio.c $Date: 2000/08/22 14:12:33 $Revision: r1
			1ros/16 PATCH_11.00 (PHKL_22230)
	/usr/conf/lib/libpci.a(epic_chnl.o):
		epic_chnl.c $Date: 2000/08/22 14:12:33 $Revision: r1
			1ros/7 PATCH_11.00 (PHKL_22230)
	/usr/conf/lib/libpci.a(epic_errors.o):
		epic_errors.c $Date: 2000/10/04 14:38:32 $Revision: 
			r11ros/8 PATCH_11.00 (PHKL_22494)
	/usr/conf/lib/libpci.a(p2pb_cdio.o):
		p2pb_cdio.c $Date: 2000/01/28 19:57:40 $Revision: r1
			1ros/5 PATCH_11.00 (PHKL_20835)
	/usr/conf/lib/libpci.a(pci_cdio.o):
		pci_cdio.c $Date: 2001/06/08 11:04:38 $Revision: r11
			ros/15 PATCH_11.00 (PHKL_24074)

cksum(1) Output:
	
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	3184135743 28335 /usr/conf/wsio/pci.h

	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	3184135743 28335 /usr/include/sys/pci.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	3787027921 4780 /usr/conf/lib/libpci.a(p2pb_cdio.o)
	3168486311 18808 /usr/conf/lib/libpci.a(pci_cdio.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	823154867 57128 /usr/conf/lib/libpci.a(elroy_cdio.o)
	704566653 62536 /usr/conf/lib/libpci.a(epic_cdio.o)
	442524209 9336 /usr/conf/lib/libpci.a(epic_chnl.o)
	302725608 23232 /usr/conf/lib/libpci.a(epic_errors.o)
	869162302 10184 /usr/conf/lib/libpci.a(p2pb_cdio.o)
	2523757152 43000 /usr/conf/lib/libpci.a(pci_cdio.o)

Patch Conflicts: None

Patch Dependencies:
	s700: 11.00: PHKL_18543 PHKL_19543
	s800: 11.00: PHKL_18543 PHKL_19543

Hardware Dependencies: None

Other Dependencies:
	This patch is one of the two needed to support the SCSI
	Ultra160 interface on HP-UX 11.00.  The two patches are
	PHKL_25014 and PHKL_25023.  These patches may be installed
	independently of each other and in any order.  Without SCSI
	Ultra160 controller hardware present on the system, these
	changes will have no impact on your system.  N/A

Supersedes:
	PHKL_20164 PHKL_19544 PHKL_20994 PHKL_20835 PHKL_20123 PHKL_20089
	PHKL_19063 PHKL_24074 PHKL_22494 PHKL_22394 PHKL_22230 PHKL_21886
	PHKL_21270

Equivalent Patches:
	PHKL_24854:
	s700: 11.11
	s800: 11.11

Patch Package Size: 340 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 PHKL_25023

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHKL_25023.depot

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHKL_25023.  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 PHKL_25023.text file is 
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHKL_25023.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHKL_25023.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions:
	The A5566A Fibre Channel Mass Storage (FCMS) card must be in
	a PCI slot number greater than all non-A5566A FCMS cards on
	the same bus.  Multiple A5566A FCMS cards on a PCI bus can
	be used.

	This patch depends on base patch PHKL_18543.
	For successful installation please insure that PHKL_18543
	is already installed, or that PHKL_18543 is included
	in the same depot with this patch and PHKL_18543
	is selected for installation.

