Windows XP Driver
Cyclone's Intelligent PCI I/O Controllers are ideally suited for multiprocessor, I/O-intensive architectures. On many such systems, Windows XP is the operating system of choice. Cyclone has therefore created a device driver for Windows XP, which allows Cyclone PCI I/O Controllers to be integrated easily into a system running Windows XP. This driver is compatible with the Cyclone's XScale-based I/O Controllers (80310, 80321,and 80331)
Windows XP defines a consistent I/O model to be used with all devices; the model includes standard Win32 file system function calls used to interact with all types of devices. Using the device name exported by the driver, programs can open the device and obtain a handle to it using the CreateFile() function. Devices are closed with the CloseHandle() function. The Windows XP driver for Cyclone PCI I/O Controllers supports read and write operations between the host computer and the controller through the standard Win32 ReadFile() and WriteFile() functions. In addition, a number of device-specific functions provided by the driver are available through the DeviceIoControl() call.
The Cyclone PCI I/O Controller driver is actually a two-part driver. In addition to the Windows XP driver code running on the host, some code must run on the Cyclone I/O Controller in order to respond to I/O requests from the host and process data from any PMC Modules installed on the I/O Controller. This code is necessarily application-dependent, and will need to be rewritten for every application.
The NT driver assumes that all data to be moved between the I/O Controller and the host will be moved using the DMA functions on the I/O Controller. To do this, the driver assembles a scatter/gather list of the application's data and signals an interrupt to the Cyclone I/O Controller. Code on the I/O Controller is responsible for programming the DMA and signaling the host when the transfer is done.
Cyclone provides with the driver three basic versions of the I/O Controller code. One version supports the Cyclone I/O Controllers with the PLX PCI 9060 or 9080 interface. Another version supports the Cyclone I/O Controllers based on the XScale processor, which has its own PCI interface. The third version supports the Cyclone I/O controllers based on the Verde (Intel 80321) processor, which is based on the Intel XScale core. These three versions are intended to serve as a model for developers. The sample code may be used as-is to test your installation of the XP driver.