High Availability Software for the Intel® NetStructureTM ZT 4901 Technical Product Specification 33
High Availability CompactPCI Device Drivers

5.1.2 Adding High-Availability Functionality

Operating in a Redundant Host architecture places additional responsibilities on device drivers
beyond those issues required to function in a normal Hot Swap environment. This section covers
particular issues that a Redundant Host device driver designer needs to be aware of when
implementing their design.
The Redundant Host architecture leverages the Hot Swap driver interface to enable Ultra-Quick
switchovers. To do this the Hot Swap Manager views a domain ownership change as a multi-card
Hot Swap event. When a Host loses ownership of a bus segment its Hot Swap Manager issues a
stream of stop device messages that attempts to place the backplane devices into a known quiesced
state. The device drivers on the Destination Host are in a known state. By using the described High
Availability driver model the Destination Host device drivers are able to assume control in an
almost instantaneous manner.
Additional measures need to be taken to protect against inadvertent backplane interrupts and bus-
mastering activities by devices on the segment in question. These additional measures are
completely transparent operations to the device drivers since the Hot Swap Manager in the kernel
handles them. All a device driver needs to be concerned with is being able to gracefully suspend
and resume interaction with the device or devices it controls.
Each operating system that supports Hot Swap does so in a unique way. The specific function
callbacks, number of callbacks, and level of control vary between operating system
implementations. However, all Hot Swap implementations are based on the stated driver model
described in Section 5.1.1, “Device Driver States” on page 32. The driver states can be classified
into the following generic functions:
Figure 6. Multi-Stated Driver Flowchart
DriverNot Loaded DeviceSuspendedDeviceRunning
StopDevice StartDevice
AddDevice
RemoveDevice /
SurpriseRemoval
RemoveDevice /
SurpriseRemoval
Device NotPresent
Find
Suitable
Driver
Device
Removed