Microsoft Windows Server 2003 CompactPCI Hot-Swap Support
This document describes how to install drivers and utilities to support CompactPCI hot-swapping on a computer running Microsoft® Windows® Server 2003.
Copyright © 2003 Microsoft Corp.
About this document
This document is intended for original equipment manufacturers (OEMs) and system integrators (SIs) who plan to include CompactPCI hardware in their computers. It explains how to install the CompactPCI drivers and support software and how to configure them if you need to change the default settings.
Installing CompactPCI Hot-Swap Support
Using the InstallShield Wizard installation program for CompactPCI Hot Swap Support, you can install predefined configurations for the following types of chassis:
•	Force Computers Centellis 8730
•	Intel Net Structure ZT 5082C 10U General Purpose Platform
•	Motorola CPX 1024
•	Motorola CPX 8216 (Left host slot support)
•	Motorola CPX 8216 (Right host slot support)
In addition, you can install a generic configuration that you can modify later. For more information, see “Configuring CompactPCI Hot-Swap Support” later in this document.
For information about the default settings for the predefined configurations, see “Default Settings for Predefined Configurations” later in this document.

Important
You must restart the computer after installing CompactPCI Hot-Swap Support to complete the installation. Before you install the software, ensure that all applications are closed and that all other users are logged off the computer.

To install CompactPCI Hot Swap Support
1.	Log on the computer as a member of the Administrators group.
2.	Insert the Microsoft Windows Server Appliance Kit 3.0 compact disc.
3.	Click Start, and then click Windows Explorer.
4.	In Windows Explorer, open the CD-ROM drive, and then open the CPCI folder.
5.	Double-click setup.exe, and then click Next.
6.	Carefully read the License Agreement and then do one of the following:
•	If you accept the terms of the license agreement, click I accept the terms in the license agreement, and then click Next.
•	If you do not accept the terms of the license agreement, click Cancel. The installation program will end.
7.	Click the type of chassis for which you want to install CompactPCI Hot-Swap Support, click Next, and then click Install.
8.	When the installation completes, click Finish.
Configuring CompactPCI Hot-Swap Support
If you install a predefined configuration of CompactPCI Hot-Swap Support, you will not need to change the default configuration settings. If you do not choose a predefined configuration, or if your platform requires nondefault configuration settings, you can change the default configuration settings. 
You can configure three types of settings:
•	Physical slot numbering
•	Resource assignment
•	Hot swap
The following sections describe how to configure each of these types of setting.

Important
Configuration changes do not take effect until the computer is restarted. Before you change the software configuration, ensure that all applications are closed and that all other users are logged off the computer.

Physical Slot Numbering
These settings map system slots to physical slots and define the slot path of each physical slot. The following table describes the settings that can be configured and their default value when a predefined configuration is not installed.
Setting Name	Default Setting	Description	
System slot 1	None	A number in the range 1–16 that specifies a physical slot that hosts the system slot board that manages the remaining cPCI chassis. Each cPCI chassis has a predefined system slot from which the system is booted.	
System slot 2	None	A number in the range 1–16 that specifies the number of the physical slot that hosts a second system slot. Some cPCI chassis support two system slots for implementing failover.	
Physical slots	None	Assigns a slot path for each physical slot. Each slot path is specified as a four-digit numeric string that identifies the location of the cPCI slot. This string is constructed by joining the slot numbers of the device to the slot number of the PCI Bus 0. Each slot number is in hexadecimal BIOS format. To determine the string to be entered, shift the slot number by 3 to the left and bitwise-OR the result with the function number (slot <<3|function).
For example, the slot path for a device identified at (2,12,0) (bus=2, device=12, function=0), with Bus 2 as the secondary bus for the bridge at (0,17,0), will be 6088. The first slot number is 0x60, corresponding to the device itself (12<<3|0). The second slot number is 0x88, corresponding to its parent bridge (17<<3|0).	

To configure physical slot numbering
1.	Log on the computer as a member of the Administrators group.
2.	Click Start, and then click Windows Explorer.
3.	In Windows Explorer, open \Windows\system32\cPCI, and then double-click hsconfig.exe.
4.	In the System slot 1 box, type a number from 1 to 16 that identifies the physical slot that hosts the first system slot.
5.	If the chassis supports a second system slot, in the System slot 2 box, type a number from 1 to 16 that identifies the physical slot that hosts the second system slot.
6.	For each physical slot, type the slot number in the Physical slot number box, type the corresponding slot path in the Slot path box, and then click Add.
7.	To change the settings of an existing item in the list, click the slot in the list, type new values in the appropriate boxes, and then click Update.
8.	To remove a slot path definition, click the slot in the list, and then click Remove.
9.	When the list of physical slots and paths is correct, click Save.
Slot Resource Assignment
These settings determine the resources that are assigned to each slot path. You can define resource assignments to any PCI bridge device regardless of its level. For example, you can define resource assignment for a PCI bridge device that is two levels down from Bus 0. The slot path value is used to describe the location of the PCI bridge. Prefixing the slot path string with an asterisk (*) indicates that the string refers to all the children of the PCI bridge as described by the slot path. For example, *68 refers to all child PCI bridges of the PCI bridge as described by the slot path. It is important to define these resource assignments because Windows Server 2003 will distribute all available PCI resources to the devices that are present at startup, and a PCI bridge device will occupy all available resources. If a device using hot swap is inserted later into a PCI bridge that contains a child PCI bridge, no resources will be left to assign to that device because the child PCI bridge will have taken the resources available for that slot path. Specifying resources for child devices limits the resources that can be assigned to that device, reserving PCI resources for devices that are inserted into the slot path using hot swap.
The following table lists the settings that can be configured for a PCI  bridge device and their default value when a predefined configuration is not installed.
Setting Name	Default Setting	Description	
Dynamic bus number assignment	Disabled	Overrides the sequential bus number assignment, and leaves no room for a new PCI bridge to be inserted. This allows dynamic bus numbering to occur instead.	
Do not reset secondary bus	Disabled	Specifies that when a failover occurs, Windows does not reset the PCI bus segment to another system slot board. 	
I/O space	None	Specifies the allowable range of I/O addresses for the PCI bridge device and the amount of I/O space within the range that is assigned to the bridge.	
Memory	None	Specifies the allowable range of memory addresses for the PCI bridge device and the amount of memory space within the range that is assigned to the bridge.	
Prefetchable memory	None	Specifies the allowable range of prefetchable memory addresses for the PCI bridge device and the amount of prefetchable memory space within the range that is assigned to the bridge.	

To configure slot resource assignment
1.	Log on the computer as a member of the Administrators group.
2.	Click Start, and then click Windows Explorer.
3.	In Windows Explorer, open \Windows\system32\cPCI, and then double-click hsconfig.exe.
4.	Click Resource Assignment.
5.	In the Slot path box, type the slot path of the PCI bridge device to be configured. If the configuration is to apply to the child devices of the PCI bridge, precede the slot path with an asterisk (for example, *68).
6.	To override sequential bus number assignment and assign bus numbers dynamically for the device or its child devices, click Dynamic bus number assignment.
7.	To prevent Windows from resetting the PCI bus segment to another system slot board when a failure occurs, click Do not reset secondary bus.
8.	To specify the memory ranges to be used, in the I/O space, Memory, and Prefetched memory groups, type the first address of the range in the From box, type the last address in the To box, and type the size of the I/O space or memory to be reserved in the Size box.
9.	To change the settings of an existing item in the list, click the slot in the list, type new values in the appropriate boxes, and then click Update.
10.	To remove a PCI bridge device from the list, click the device in the list, and then click Remove.
11.	When the list of PCI bridge devices is correct, click Save.
Hot-Swap Settings
These settings control the rate at which CompactPCI Hot-Swap Support detects changes to the hardware configuration.
Setting Name	Default Setting	Description	
Polling rate	500	Specifies the rate, in milliseconds, at which the cPCI hot swap module polls the PCI bus to detect insertion or removal of a peripheral board. This setting is used for cPCI boards that do not implement the ENUM# bus signal triggered by the hot swap switch as defined in the cPCI Hot Swap specification	
Disconnection timeout	20000	Specifies the rate, in milliseconds, at which an attempt is made to disconnect the software after the notification that the operator wants to remove the peripheral board. If an application or device driver running on the hardware to be removed rejects the removal request, the cPCI hot swap software waits the specified amount of time before re-attempting to disconnect the hardware.	
Insertion timeout	500	Specifies the rate, in milliseconds, between subsequent insertion attempts.	

To configure hot swap settings
1.	Log on the computer as a member of the Administrators group.
2.	Click Start, and then click Windows Explorer.
3.	In Windows Explorer, open \Windows\system32\cPCI, and then double-click hsconfig.exe.
4.	Click Hot Swap.
5.	In the Polling rate box, type the rate in milliseconds at which the cPCI hot swap module polls the PCI bus to detect insertion or removal of a peripheral board.
6.	In the Disconnection timeout box, type the rate, in milliseconds, at which an attempt is made to disconnect the software after the notification that the operator wants to remove the peripheral board.
7.	In the Insertion timeout box, type the rate in milliseconds between subsequent insertion attempts.
8.	Click Save.

Default Settings for Predefined Configurations
The following table lists the default settings for the predefined configurations that you can select when installing cPCI Hot Swap Support.
Predefined Configuration	Physical Slot Numbering	Resource Assignment	Hot Swap Settings	
Force Computers Centellis 8730
	System slot 1: 1
System slot 2: None
Slot path assignments:
•	2: 7850
•	3:  7050
•	4: 6850
•	5: 6050
•	6:  5850
•	7:  5050
•	8: 4850	Slot path *50:
•	Dynamic bus number assignment: disabled
•	Do not reset secondary bus: disabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x1000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x00100000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x00100000
Slot path 50:
•	Dynamic bus number assignment: disabled
•	Do not reset secondary bus: disabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x4000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x00500000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x00500000
	Polling rate: 500
Disconnection timeout: 20000
Insertion timeout: 500	
Intel Net Structure ZT 5082C 10U General Purpose Platform	System slot 1: None
System slot 2: None
Slot path assignments:
•	1: 4840
•	2: 5040
•	3: 5840
•	4: 6040
•	5: 6840
•	6: 7040
•	7: 7840
	Slot path *40:
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: disabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x1000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x00100000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x00100000
Slot path 40:
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: disabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x4000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x00500000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x00500000
	Polling rate: 500
Disconnection timeout: 20000
Insertion timeout: 500	
Motorola CPX 1024	System slot 1: 4
System slot 2: None
Slot path assignments:
•	1: 7088
•	2: 6888
•	3: 6088
	Slot path *88
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: disabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x1000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x01000000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x01000000
Slot path 88:
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: disabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x4000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x05000000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x05000000
	Polling rate: 500
Disconnection timeout: 20000
Insertion timeout: 500	
Motorola CPX 8216 (Left host slot support)	System slot 1: 7
System slot 2: 9
Slot path assignments:
•	1: 7088
•	2: 6888
•	3: 6088
•	4: 5888
•	5: 5088
•	6: 4888
•	7: 88
•	10: 68
•	11: 7068
•	12: 6868
•	13: 6068
•	14: 5868
•	15: 5068
•	16: 4868
	Slot path *68 and *88
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: enabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x1000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x00100000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x00100000
Slot path 68 and 88:
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: enabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x4000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x05000000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x05000000
	Polling rate: 500
Disconnection timeout: 20000
Insertion timeout: 500	
Motorola CPX 8216 (Right host slot support)	System slot 1: 7
System slot 2: 9
Slot path assignments:
•	1: 7068
•	2: 6868
•	3: 6068
•	4: 5868
•	5: 5068
•	6: 4868
•	9: 68
•	9: 88
•	11: 7088
•	12: 6888
•	13: 6088
•	14: 5888
•	15: 5088
•	16: 4888
	Slot path *68 and *88
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: enabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x1000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x00100000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x00100000
Slot path 68 and 88:
•	Dynamic bus number assignment: enabled
•	Do not reset secondary bus: enabled
•	I/O From: 0x0000
•	I/O To: 0xFFFF
•	I/O Size: 0x4000
•	Memory From: 0x00000000
•	Memory To: 0xFFFFFFFF
•	Memory Size: 0x05000000
•	Prefetchable From: 0x00000000
•	Prefetchable To: 0xFFFFFFFF
•	Prefetchable Size: 0x05000000
	Polling rate: 500
Disconnection timeout: 20000
Insertion timeout: 500