High Availability Software for the Intel® NetStructureTM ZT 4901 Technical Product Specification 31
High Availability CompactPCI Device Drivers 5
This chapter describes the characteristics of highly available software drivers for CompactPCI
peripherals in a Redundant Host environment.
To fully utilize the High Availability SDK, you must write a peripheral driver that can be started
and stopped repeatedly and that can be loaded and initialized even when the device it is servicing is
not physically visible to the operating system.

5.1 Device Driver Design

Historically, device drivers are relatively simple in their high level requirements. The operating
system detects a hardware component and loads a module of software that allows software-
initiated interaction with the hardware. It was assumed that the hardware configuration would not
change over the life of the system, or at the least would remain static between power cycles.
With the advent of CompactPCI these assumptions can no longer be guaranteed. One of the
primary advantages of a CompactPCI architecture is the ability to perform peripheral insertions
and extractions without requiring the chassis to be powered down. This system attribute is referred
to as Hot Swap. Because of this, system configurations can no longer be assumed to be static. This
dynamic configuration capability places new requirements on the operating system and the Hot
Swappable device drivers.
The operating system kernel now needs to be able to dynamically handle system resources, in
allocation and resource collections. Intel supplies a Hot Swap manager for operating systems
supported by the Intel® High Availability architecture. This manager is a component of the
operating system kernel that manages dynamic bus and resource allocations. Since this is a kernel-
level function that is transparent to the developer, this document will not describe the details of this
module.
In order for a device driver to function in a Hot Swap environment, the driver is required to
implement what is known as a Stated Driver Model. A stated device driver is constructed in a
manner that allows it to gracefully transition between multiple operational modes.
The specifics of stated device driver design vary for each operating system supported. This is due
to the Hot Swap implementation that is used by each operating system. If an operating system
natively supports Hot Swap events then the driver implementation will leverage the supported
driver model.
This is the case with Linux* kernel version 2.4. Refer to AppendixD, “RH Device Driver Interface
for Linux* 2.4” for more information.
VxWorks* version 5.4 does not natively support a stated driver model, so Intel has provided
enhancements to this operating system. The specifics of the VxWorks CompactPCI driver model
can be found in AppendixC , “HSK Device Driver Interface for VxWorks* 5.4.”