sparc article the most complete guide to SPARC® based systems and suppliers sparc search

Adding Hot-Swap capabilities to
Solaris, Linux & other operating systems

Article by:- Jungo Ltd
Editor's introduction:- Hot swap is a hot topic in today's web servers. This technology from Jungo Ltd works for SPARC based cPCI systems, so I asked their product manager Amir Inbar to contribute an article for SPARC Product Directory readers.
See also:- article:- Rugged & Reliable Data Storage: Solid-State Flash Disks overview - by M-Systems
SBus, PCI, cPCI etc - historic guide to busses used in SPARC systems
article:- Looking Back at 3rd Party SPARC Technology Firsts
article:- Solid State Disks - intro, applications & FAQ's - by Curtis
High Availability SPARC systems, Operating systems for SPARC, SPARC ISV's, Backup software, HSM & SRM, Compact PCI SPARC CPU cards, Rackmount SPARC systems, Watchdog cards, Military SPARC Systems, SPARC news

click for more info

Compact PCI - short history and market trends

CompactPCI is a high performance bus based on the standard PCI electrical specification. It is intended as an industrial bus for application in telecommunications, computer telephony, real-time machine control, industrial automation, real-time data acquisition, instrumentation, military systems or any other application requiring high speed computing, modular and robust packaging design, and long term manufacturer's support.

The CompactPCI specification was initiated in 1994 by Ziatech Corporation and has been evolved and developed by an extensive group of companies within the PCI Industrial Computer Manufacturers Group (PICMG).

Three main reasons make the CompactPCI attractive for industrial application such as high speed telecomm and datacomm systems:

  1. CompactPCI has an extremely high bandwidth; this makes it particularly well suited for applications such as servers, routers, converters and switches.
  2. CompactPCI boards are inserted/removed from the front of the chassis, and I/O can break out either to the front or through the rear; this feature is well suited for industrial use where insertion/removal is a common routine.
  3. "Hot Swap" is a feature supported by the CompactPCI hardware specifications; this specification makes it possible to insert or remove circuit boards to or from a running system without causing damage to the other boards or crashing the system software, thus enabling the system to be up and running while hardware is being replaced, maintained or upgraded.

The need for "Hot Swap"

The hot swap feature that has been established in the CompactPCI specification is particularly well suited, almost a critical requirement, for application designs in the telecomm and datacomm 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 telecomm and datacomm systems, system downtime is a major financial and quality of service factor; any downtime means a financial loss, and disconnecting service to active lines. Hence, reducing or even eliminating system downtime is critical.

The Hot Swap facility allows insertion and removal of CompactPCI boards into a platform, while the system is operational. This 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 telecomm and datacomm vendors..

The problem

Hot Swap requires certain levels of circuitry just to prevent electrical damage or glitches that interrupt normal operation of other boards. However, to take advantage of the Hot Swap capability of the hardware, a substantial amount of additional software is required – at the device driver level, at the system services level and at the applications level.

The software aspect of the Hot Swap process involves allocation of card resources, configuring the newly inserted cards and reallocation of resources when cards are removed. Normally, the system BIOS assigns a memory address space and an I/O address space to each CompactPCI device when the system is powered up. When a CompactPCI board is inserted/exerted after the system has been configured, it requires the system to detect the event and reconfigure the memory and I/O address space dynamically. This is the role of the additional software - basically, the additional software is required to detect the event of a CompactPCI card being inserted/removed, and to reconfigure the system memory and address space accordingly. It is also required to inform the system of the event so that the system and applications running will not be damaged, and the event of insertion/removal will be transparent to the system user.

While many hardware products are already electrically and mechanically Hot Swap compatible, up until now little software existed that allowed utilization of the new capabilities. The mass-market operating systems, such as Windows 9x, 98, NT, 2000, CE, NT Embedded, Solaris (until version 8), Linux, and VxWorks, 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 a bit shady in some of the software areas. The gray areas in the specification has 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 Swappable" drivers with the hardware needs to develop and provide a different driver for each different system board needed to be supported.

Conclusion

In order to provide a complete "Hot Swappable" solution, the hardware vendor needs to either use proprietary operating systems, or implement the Hot-Swap mechanism from scratch separately for each different system hardware that needs to be supported, and for each different operating system that needs to be supported.


The solution – "GO Hot-Swap"

Jungo (Formerly KRFTech Ltd.), a startup company providing solutions for embedded developers, has developed such "additional software" that enables Hot Swap capabilities for CompactPCI hardware. Jungo's "Go Hot-Swap" tools, include a revolutionary operating system extension and a powerful driver development toolkit which together enable Hot Swap support for CompactPCI hardware on all major operating systems, and on all available system boards. Using these tools, players in the telecomm/datacomm markets can now implement Compact PCI Hot-Swap capabilities on Windows 9x, 2000, NT, NT- Embedded, CE, Linux, Solaris and VxWorks, where these capabilities are not natively available. "GO Hot-Swap" also includes a powerful driver development tool kit, which enables development of fully Hot Swappable device drivers from scratch. The resulting code generated by the "GO Hot-Swap" Development Tool Kit is cross platform, and can be re-compiled and executed on any of the major operating systems supported, without rewriting it.

Jungo's "GO Hot-Swap" is a generic solution, i.e. it is not depend on the hardware configuration on which it is running, or the host PCI controller it is using. The same drivers written by the hardware vendor using the "GO Hot-Swap" solution will compile and run on all supported operating systems, and on all CompactPCI systems.

An additional module in the "GO Hot-Swap" product may be configured to enable legacy PCI drivers to be "Hot Swappable". This innovative feature is explained in more detail further on in this article.

How does it work?

"GO Hot-Swap" consists of a kernel-level operating system extension, and of a management module. The kernel level operating system extension is in charge of the following activities:

  1. Identify the insertion/removal of cPCI hardware devices
  2. Allocate the required resources for the newly inserted devices, and de-allocate the resources for those devices that have been removed.
  3. Notify the system services and the relevant drivers of the insertion/removal event.

The "GO Hot-Swap" management module is only active when there is a need to "Hot Swap" hardware which has only non Hot Swap legacy device drivers. In that case, once the "GO Hot-Swap" management module is notified by the "GO Hot-Swap" operating system extension of a device insertion or removal, it runs a pre-configured batch file, which usually unloads and reloads the relevant drivers, and notifies the application of the event. The batch file is configured by the hardware vendor or system integrator – thus enabling legacy PCI devices to be "Hot Swappable".

"GO Hot-Swap" has three deployment methods, as described below:

1. "GO Hot-Swap" Development Toolkit (For hardware vendors)-

The development toolkit enables development of fully "hot swappable" Compact PCI device drivers from scratch. The toolkit includes advanced graphical tools and Wizards for diagnosing the hardware, generating and debugging the driver code, and handling of the "Hot Swap" events.

The code generated by the "GO Hot-Swap" Development tool kit includes a special API through which "GO Hot-Swap" Operating System Extension can notify the driver of the insertion/removal events.

In the event of a Hot Swap insertion, The "GO Hot-Swap" OS extension re-configures the card, allocating the required resources for it. A "Card_Inserted" message is sent to the driver via the "GO Hot Swap" API. The driver implemented re-configures itself according to the new resources allocated to the card.

When a CompactPCI Hot Swap board is removed, The "GO Hot-Swap" OS extension frees the card's resources. A "Card_Removed" message is sent to the driver via the "GO Hot Swap" API. The driver implemented is informed that the communication with the card has stopped, and may notify the application accordingly.

2. "GO Hot-Swap" Agent (For System Integrators)–

Enables CompactPCI users to add Hot-Swap capabilities to their CompactPCI boards, without any change to its existing PCI drivers. The "GO Hot-Swap" Agent is extremely useful for system integrators, seeking to make legacy devices "Hot Swappable" without changing their driver code.

The "GO Hot-Swap" Management module is pre-configured with the Vendor and Device IDs of the Compact PCI devices which are to be "Hot Swap" enabled. When such a device is inserted, the "GO Hot-Swap" OS Extension re-configures the device, allocating the required resources for it (or freeing those resources when the device is removed).

The "GO Hot-Swap" Extension notifies the "GO Hot-Swap" Management module, which in turn runs a pre-configured script, which typically unloads and loads the existing driver. The unload/load driver is done so that the driver re-configures itself according to the new resources that were allocated to the card by the "GO Hot-Swap" Extension.

3. GO Hot-Swap OS Extender (For system board level OEMs) –

Designed for system board vendors or operating system vendors. The Compact PCI OS extension enables system board or OS vendors to immediately add Hot-Swap capabilities under any OS.

When a card is inserted or removed for the first time, the "GO Hot-Swap" Manager pops up a Window asking the operator to assign the driver in use by that card.

The "GO Hot-Swap" OS Extension re-configures the card, allocating the required resources for it (or frees those resources when the card is removed). The "GO Hot-Swap" Management module then runs a pre-configured script, which typically unloads and loads the existing driver.

The unload/load driver is done so that the driver re-configures itself according to the new resources that were allocated to the card by the "GO Hot-Swap" Extension.

Conclusion

The CompactPCI hot swap features addresses the fast growing telecomm and datacomm markets. Yet, the lack of support for CompactPCI Hot Swap by the major operating systems, and the gray areas of the standard itself, resulted in very few real "Hot Swappable" devices.

Jungo's new "GO Hot-Swap" solution enables the utilization of CompactPCI Hot Swap on all major operating systems, where this was previously unavailable. "GO Hot-Swap" provides deployment mechanisms for hardware vendors, system integrators and OEMs. As a result of its unique features, "GO Hot-Swap" is ramping up to be the standard solution for "Hot Swap" devices in the telecomm, datacomm, and industrial markets.


Jungo Ltd. - address and links

Jungo Ltd.
P.O.B. 8493
New Industrial Center Nordau
42504, Natanya
Israel
toll free (USA):- 1-877-514-0537
tel:- + 972 9 885 9365
fax:- + 972 9 885 9366
email:- sales@jungo.com
url:- http://www.jungo.com

FORCE CPCI
See also:- Compact PCI SPARC CPU cards

click for more info

SPARCproductDIRectory.com
today's SPARC news SPARC computers SBus & PCI cards
SPARC manufacturers USASun/SPARC Resellers in the USA UKSun/SPARC Resellers in the UK

SPARC(R) is a registered trademark of SPARC International, Inc. SPARC PRODUCT DIRECTORY(SM) is a service mark of SPARC International, Inc used under license by ACSL. Products using the SPARC trademarks are based on an architecture developed by Sun Microsystems, Inc.