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.