High Availability CompactPCI Device

5

Drivers

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.1Device 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 Appendix D, “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 Appendix C, “HSK Device Driver Interface for VxWorks* 5.4.”

High Availability Software for the Intel® NetStructureTM ZT 4901 Technical Product Specification

31

Page 31
Image 31
Intel ZT 4901 manual High Availability CompactPCI Device Drivers, Device Driver Design