|
Since its introduction in 1992, the PCI local bus Intro.doc.html1 has gained wide acceptance in the industry for its open architecture and performance. Being a leader in open systems, Sun started to support PCI device drivers by providing a new set of device driver interfaces (DDI) in the Solaris 2.5 operating environment. Beginning with the Ultra series, Sun supports the PCI bus in its workstation product lines. The Solaris package provides two documents for PCI driver developers: Writing Device Drivers and Writing Portable DDI-Compliant PCI Drivers (a Sun white paper). Writing Device Drivers is intended for developers who write Solaris device drivers in general. It provides details about direct memory access (DMA), interrupt, device address mapping, and Sun Common SCSI Architecture (SCSA). Writing Portable DDI-Compliant PCI Drivers describes the new DDI functions for writing endian-neutral drivers. This white paper assumes that you have read and understand the contents of these two documents. This white paper provides next level details on writing PCI device drivers. It addresses issues specifically encountered by PCI driver developers, such as properties and PCI nexus node. This document also gives a brief introduction to IEEE 1275 Standard for Boot Firmware: Core Requirements and Practices and related documents. IEEE 1275 defines the device tree and properties that are used by the firmware to interface with the system software. PCI devices, being self-identifying devices, contain a configuration space to identify the device as well as to provide device configuration information to the system software. Properties allow driver developers to retrieve device information from PCI devices. Understanding the PCI properties is necessary to correctly set up device address mapping and to write interrupt service routines.
The PCI nexus driver ( This paper also gives a brief overview of the HPB and the functional description of HPB building blocks. Through a good understanding of the underlying hardware, the PCI driver developer can make the best use of DDI functions, and therefore write an efficient and robust driver.
A summary of the commonly used DDI
functions for PCI device drivers is presented in the following
table. This list does not preclude other DDI functions from being
used in PCI device drivers. Some of the functions in the list are
explained in detail in this white paper.
Since the implementation of the PCI nexus driver might be changed from release to release, some information in this document may be outdated in future releases of Solaris software. Although some information may apply to all supported platforms of the Solaris environment, this paper is written specifically for developers who write PCI drivers for Sun SPARC platforms. << Previous | Contents | Next>>
| |
|
| ||||||||||||