B.4  Hot Swap

B.4.1  General

Hot swap is the ability to insert and remove boards, without adversely affecting a running system. CompactPCI Hot Swap Specification allows vendors to add hot swap capabilities to CompactPCI system.

The hot swap feature that has been established in the CompactPCI Specification is particularly well suited, and has indeed been a critical requirement, for application designs in the telecom and datacom markets. In systems that do not support hot swapping of peripheral boards, each process of board insertion or removal, requires a complete shut-down of the entire system until the process is complete, in order to prevent damage to other boards or to the system software. In time critical systems such as telecom and datacom systems, system downtime is a major financial and quality of service factor; any downtime translates into financial loss, and disconnecting service to active lines. Hence, reduction or even elimination of system downtime is critical.

The hot swap facility reduces the system downtime, which may be required for replacement of boards and making changes in the system configuration. The hot swap feature is one of the key reasons why CompactPCI architecture is so attractive for telecom and datacom vendors.

CompactPCI hot swap is not limited to peripheral boards, but at this time the CompactPCI Hot Swap Specification (PICMG 2.1 R1.0) does not address hot swapping of the System Board Computer (SBC).

CompactPCI Boards (other than the system host) can be one of three types:

  • Non Hot Swap: Boards that do not have all the features required for hot swap. They cannot be inserted or extracted from an operating CompactPCI system.
  • Basic Hot Swap: Boards that have the minimum features required for hot swap.
  • Full Hot Swap: Boards that have the minimum features plus the additional resources for software connection control. Full hot swap boards allow the full range of system capabilities.

[Note]
Go-HotSwap architecture allows it to fully support both basic and full hot swap boards.

CompactPCI Silicon can be one of four types:

  • Non Hot Swap: The silicon is not compatible with the minimal requirements of the CompactPCI Hot Swap Specification.
  • Hot Swap Capable: Silicon that contains the minimum requirements to operate in a hot swap environment. These minimum requirements are attributes that a board designer would not be able to compensate for with external circuitry.
  • Hot Swap Friendly: Silicon that contains support for software connection control (as defined in PICMG 2.1 R1.0). Namely providing a support for a Control and Status Register in the PCI configuration space, and providing resources for ENUM#, hot swap Switch and the Blue Led.
  • Hot Swap Ready: Silicon that contains all the desirable features for hot swap; which are all the features supported by hot swap friendly silicon, plus Bias Voltage Support, Early Power Support, and 64 Bit Initialization. These chips add the pre-charge and early power support, so that no external circuitry is required, except for the onboard power control.

[Note]
Go-HotSwap architecture, allows it to fully support hot swap capable, friendly and ready silicon.

B.4.1.1  Enumeration and Dynamic Configuration

Enumeration is defined by the CompactPCI Specification (PICMG 2.1 R1.0) as the action taken by the system host to poll the configuration spaces of all the PCI devices and assign (or release) the necessary resources (memory and/or I/O address space, interrupts, and software drivers). In systems that do not support hot swap, enumeration only takes place as the system boots. In hot swap capable systems, dynamic configuration is required, whereby a hot swap board is allocated system resources (enumerated) by the system software, following insertion of the board. These same resources are released prior to extraction of the board.

In order to take advantage of the hardware's hot swap capability, a substantial amount of additional software is required - at the device driver level, at the system services level and at the applications level.

B.4.1.2  The Software Aspect

The software aspect of the hot swap process involves detection of the hot swap event, dynamic configuration and resource allocation. It also involves informing the system of the event so that the system and applications running are not damaged, and the insertion/removal event is transparent to the system user.

While many hardware products are already electrically and mechanically hot swap compatible, until now little software existed that allowed utilization of the new capabilities. Mass-market operating systems, such as Windows, Solaris (until version 8), and Linux, currently lack the additional software layers needed to support the new hot swap capabilities. The absence of such software standards has retarded market growth, and is forcing companies either to give up utilization of hot swap capabilities, or to develop/buy proprietary solutions. Either way, the situation is a considerable resource consumer.

Another problem involves the hot swap standard itself, which is somewhat shady in some of the software areas. The gray areas in the specification have resulted in different implementations of some of the hot swap mechanisms provided by the system board manufacturers. As a result, a CompactPCI hardware vendor that desires to ship hot swap aware drivers with the hardware needs to develop and provide a different driver for each different system board needed to be supported.

In order to provide a complete hot swap aware solution, the hardware vendor needs to either use proprietary operating systems, or implement the hot swap mechanism from scratch, and separately, for each different system hardware that needs to be supported as well as for each different operating system that needs to be supported.