© Digital Equipment Corporation 1996
All Rights Reserved.
This guide contains information needed by systems engineers who write device drivers that operate on the VMEbus. The guide describes VMEbus-specific topics, including VMEbus architecture and kernel interfaces that VMEbus drivers use. A VMEbus device driver example illustrates use of these kernel interfaces.
The following are trademarks of Digital Equipment Corporation: ALL-IN-1, Alpha AXP, AlphaGeneration, AXP, Bookreader, CDA, DDIS, DEC, DEC Ada, DEC Fortran, DEC FUSE, DECnet, DECstation, DECsystem, DECterm, DECUS, DECwindows, DTIF, Massbus, MicroVAX, OpenVMS, POLYCENTER, Q-bus, TruCluster, ULTRIX, ULTRIX Mail Connection, ULTRIX Worksystem Software, UNIBUS, VAX, VAXstation, VMS, XUI, and the Digital logo.
UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd.
All other trademarks and registered trademarks are the property of their respective holders.
Restricted Rights: Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c) (1) (ii).
Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description.
Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Digital or an authorized sublicensor.
Digital conducts its business in a manner that conserves the environment and protects the safety and health of its employees, customers, and the community.
This book assumes that you have a strong background in operating systems
based on the UNIX operating system. It also assumes that you have a strong
background in systems and C programming, and that you are familiar with topics
presented in Writing Device Drivers: Tutorial. In addition,
the book assumes that you have no source code licenses.
The /dev/dmaex device driver used as an example in
this manual has been upgraded to single binary module technology and enhanced
with new capabilities, including programmed I/O and block mode DMA transfers.
The driver and a user program that exercises the driver are included in C
source format on the Digital UNIX CD-ROM.
The book does not emphasize any specific types of device drivers. However,
mastering the concepts and example presented in this book is useful preparation
for writing a variety of device drivers that operate on the VMEbus.
About This Book
This book discusses how to write VMEbus device drivers for computer
systems running Digital UNIX®.
Audience
This book is intended for systems engineers who:
New and Changed Features
VMEbus device drivers written for Digital UNIX Version 4.0 single
binary module technology now support both static and dynamic configuration.
Previously, only static configuration was supported.
Scope of the Book
This book is for users of the Digital UNIX operating system on computer
systems developed by Digital Equipment Corporation. The book builds on the
concepts and topics presented in Writing Device Drivers: Tutorial, the core book for developing device drivers on Digital UNIX.
This book introduces driver writers to topics that are specific to the VMEbus
and that are beyond the scope of the core tutorial. The book presents an example
driver that operates on the VMEbus.
Organization
The book contains the following chapters and appendixes.
Chapter 1 | Review of Device Driver
Concepts Reviews general device driver concepts, which are discussed in detail in Writing Device Drivers: Tutorial.
|
Chapter 2 | VMEbus Architectures Presents an overview of the VMEbus hardware and software architectures.
|
Chapter 3 | Structure of a VMEbus Device
Driver Describes the sections that make up a VMEbus device driver.
|
Chapter 4 | Data Structures That VMEbus
Device Drivers Use Reviews the members of the controller and driver structures that are specific to the VMEbus.
|
Chapter 5 | Kernel Interfaces That VMEbus
Device Drivers Use Discusses the kernel interfaces developed for use with VMEbus device drivers.
|
Chapter 6 | VMEbus Device Driver Example Describes how to code a character device driver for a device that operates on the VMEbus.
|
Chapter 7 | Using VMEbus Device Drivers Summarizes a device driver exerciser program, provided in source format on the Digital UNIX CD-ROM, that illustrates how to perform common VMEbus I/O operations from application code.
|
Appendix A | VMEbus-Specific Reference
Information Describes, in reference page style, the header file, data structures, kernel support interfaces, and device driver interfaces that are specific to the VMEbus.
|
Appendix B | VMEbus Device Driver Source
Listing Contains the source code listing for the example driver presented in this book.
|
Appendix C | Summary Tables Presents tables that summarize the header files, kernel interfaces, data structures, and other interfaces that device drivers use.
|
Appendix D | Running Digital UNIX
Software on AXPvme and Alpha VME Systems Describes how to run the software on specific Digital AXPvme and Alpha VME systems.
|
Related Documentation
The printed version of the Digital UNIX documentation set is color coded
to help specific audiences quickly find the books that meet their needs.
(You can order the printed documentation from Digital.) This color coding
is reinforced with the use of an icon on the spines of books. The following
list describes this convention:
Audience | Icon | Color Code |
---|---|---|
General users | G | Blue |
System and network administrators | S | Red |
Programmers | P | Purple |
Device driver writers | D | Orange |
Reference page users | R | Green |
Some books in the documentation set help meet the needs of several audiences. For example, the information in some system books is also used by programmers. Keep this in mind when searching for information on specific topics.
The Documentation Overview, Glossary, and Master Index provides information on all of the books in the Digital UNIX documentation set.
Writing device drivers is a complex task; driver writers require knowledge in a variety of areas. One way to acquire this knowledge is to have at least the following categories of documentation available:
The following sections list the documentation associated with each of these categories. VMEbus device driver writers should also be familiar with the IEEE Standard for a Versatile Backplane Bus: VMEbus ANSI/IEEE Std 1014-1987 specification.
Writing Device Drivers: Advanced Topics describes topics that are beyond the scope of the core tutorial. Systems engineers can find information on such advanced topics as kernel threads and writing device drivers in a symmetric multiprocessing (SMP) environment. This book also provides information on how to write disk device drivers.
Writing Device Drivers: Reference describes, in reference-page style, the header files, kernel interfaces, data structures, and other interfaces that device drivers use.
The following books provide information about writing device drivers for a specific bus that is beyond the scope of the core tutorial, advanced topics, and reference:
This manual provides information for systems engineers who write device drivers for the EISA/ISA bus. The manual describes EISA/ISA bus-specific topics, including EISA/ISA bus architecture and data structures that EISA/ISA bus device drivers use.
This manual provides information for systems engineers who write device drivers for the PCI bus. The manual describes PCI bus-specific topics, including PCI bus architecture and data structures that PCI bus device drivers use.
This manual provides information for systems engineers who write device drivers for the SCSI/CAM Architecture interfaces.
The manual provides an overview of the Digital UNIX SCSI/CAM Architecture and describes User Agent routines, data structures, common and generic routines and macros, error handling and debugging routines. The manual includes information on configuration and installation. Examples show how programmers can define SCSI/CAM device drivers and write to the SCSI/CAM special I/O interface supplied by Digital to process special SCSI I/O commands.
This manual contains information systems engineers need to write device drivers that operate on the TURBOchannel bus. The manual describes TURBOchannel-specific topics, including TURBOchannel kernel interfaces that TURBOchannel device drivers use.
This manual does not supersede the Software Product Description (SPD), which is the definitive description of the Digital UNIX system.
This manual provides information about debugging kernels. The manual describes using the dbx, kdbx, and kdebug debuggers to find problems in kernel code. It also describes how to write a kdbx utility extension and how to create and analyze a crash dump file.
This manual is for system administrators responsible for modifying, rebuilding, and debugging the kernel configuration. It is also for system programmers who need to debug their kernel space programs.
This manual describes several commands and utilities in the Digital UNIX system, including facilities for text manipulation, macro and program generation, and source file management.
The commands and utilities described in this manual are primarily for programmers, but some of them (such as grep, awk, sed, and the Source Code Control System (SCCS)) are useful for other users. This manual assumes that you are a moderately experienced user of UNIX systems.
This manual describes the programming environment of the Digital UNIX operating system, with an emphasis on the C programming language.
This manual is for all programmers who use the Digital UNIX operating system to create or maintain programs in any supported language.
This manual is for the system administrators responsible for managing the operating system. It assumes a knowledge of operating system concepts, commands, and configurations.
This manual has three audiences, as follows:
This manual assumes you are familiar with the ULTRIX operating system.
This section defines system calls (entries into the Digital UNIX kernel)
that programmers use. The introduction to Section 2, intro
(2), lists error
numbers with brief descriptions of their meanings. The introduction also defines
many of the terms used in this section. This section is for programmers.
This section describes the routines available in Digital UNIX programming libraries, including the C library, Motif library, and X library. This section is for programmers. In printed format, this section is divided into six volumes.
Section 4 describes the format of system files and how the files are used. The files described include assembler and link editor output, system accounting, and file system formats. This section is for programmers and system administrators. In printed format, this section is divided into two volumes.
Section 5 contains miscellaneous information, including ASCII character codes, mail-addressing formats, text-formatting macros, and a description of the root file system. This section is for programmers and system administrators.
Section 7 describes special files, related device driver functions, databases, and network support. This section is for programmers and system administrators.
This section describes commands for system operation and maintenance. It is for system administrators. In printed format, this section is divided into two volumes.
You can send your comments in the following ways:
A Reader's Comment form is located on your system in the following location:
Please include the following information along with your comments:
The Digital UNIX Publications group cannot respond to system problems or
technical support inquiries. Please address technical questions to your
local system vendor or to the appropriate Digital technical support office.
Information provided with the software media explains how to send problem
reports to Digital.
Reader's Comments
Digital welcomes any comments and suggestions you have on this and other
Digital UNIX manuals.
/usr/doc/readers_comment.txt
Digital Equipment Corporation
UEG Publications Manager
ZK03-3/Y32
110 Spit Brook Road
Nashua, NH 03062-9987
A Reader's Comment form is located in the back of each printed manual.
The form is postage paid if you mail it in the United States.
. . . |
A vertical ellipsis indicates that a portion of an example that would normally be present is not shown. |
. . . | In syntax definitions, a horizontal ellipsis indicates that the preceding item can be repeated one or more times. |
filename | In examples, syntax descriptions, and function definitions, this typeface indicates variable values. |
buf | In function definitions and syntax definitions used in driver configuration, this typeface is used to indicate names that you must type exactly as shown. |
[ ] | In formal parameter declarations in function definitions and in structure declarations, brackets indicate arrays. Brackets are also used to specify ranges for device minor numbers and device special files in file fragments. However, for the syntax definitions used in driver configuration, these brackets indicate items that are optional. |
| | Vertical bars separating items that appear in the syntax definitions used in driver configuration indicate that you choose one item from among those listed. |
This book uses the word kernel ``interface'' instead of kernel ``routine'' or kernel ``macro.''