1.2  Background

In order to take advantage of the hot swap capability of the CompactPCI hardware, a substantial amount of additional software is required at the operating system level.

The software aspect of the hot swap process involves:

Normally, the system BIOS or the operating system assigns a memory address space, an I/O address space and IRQ to each of the CompactPCI devices when the system is powered up.

But when a CompactPCI board is inserted/removed when the system is already running, the system is required to detect the event and to dynamically reconfigure the memory, I/O address space and IRQ.

This is the role of the kernel hot swap modules. Basically, the kernel hot swap modules are required to detect the event of a CompactPCI card being inserted/removed, and to reconfigure the system resources accordingly.

The kernel hot swap modules are also required to inform the system of the event so that the system and applications running are not damaged, and the event of insertion/removal is transparent to the system user.

While many hardware products are already electrically and mechanically hot swap compatible, not all mass-market operating systems fully support hot swapping. Windows 7/Vista/Server 2008/Server 2003/XP/2000 operating systems, for example, do not recognize insertion/removal of CompactPCI boards.

The absence full hot swap support in mass-market operating systems is forcing companies to give up utilization of hot swap capabilities, purchase proprietary solutions or develop in-house solutions that comply with the CompactPCI standard. Any chosen path the companies choose to take, is undesirable due to the considerable resource consumption.

Developing an in-house hot swap software solution is not an easy task. It requires developing low-level services such as a hot swap system driver and a hot swap service[1].
These components involve hardware abstraction, hardware access and dynamic resource allocation. The development process involves learning the internals of the operating system, learning new tools for development/debugging in the kernel mode (such as WDK and ETK), writing the kernel-mode modules that do the basic hardware access and dynamic resource allocation (hot swap system driver and service), and repetition of the above steps for each operating system on which the code should run.

Go-HotSwap provides a complete off-the-shelf solution thus reducing the time-to-market factor and enabling users to focus on core technologies instead of going through all the effort involved in developing in-house hot swap software.



[1] See CompactPCI Hot Swap Specification PICMG 2.1 R2.