Home

Writing Device Drivers for the Solaris OS

In this space you can help improve the Writing Device Drivers book. Please apply your expertise to make this book more understandable, more useful. Please clarify or add to the text, examples, or graphics.

I would appreciate your contributions on the wiki. Please be sure to note the Terms of Use of this site. Preferably, contributors should have a Sun Contributor Agreement (SCA) in place. Please do not use Quiet Save.

Comments Welcome
To make a comment on a page, log in, and then select Add>Comment from the menu near the top of the page.

CommunityOne Deep Dive

Solaris Device Drivers [PDF], Max Bruning. Three-hour deep dive session given at CommunityOne West 2009. Topics include kernel architecture, device registers, interrupt handling, DMA, ioctl handling, fault management, timers and threads, STREAMS, GLDv3, SCSA, USB, and debugging drivers, including using MDB.

Debugging and Testing Tips

Hardening Solaris Device Drivers

Chapter 13, "Hardening Solaris Drivers," has been separated to give it more attention. All Solaris and OpenSolaris drivers must be hardened to a certain level. Documentation needs to be added on exactly what that minimum level is. Also, we should add information on how to harden specific types of drivers.

Drivers for Network Devices (GLD)

The GLD chapter, "Chapter 19, Drivers for Network Devices," needs a rewrite. The very first sentence, "Solaris network drivers are STREAMS-based." is not accurate. Perhaps this documentation is satisfactory for Solaris 10, but it is way out of date for OpenSolaris.

GLDv3 Porting Guide

The GLDv3 Porting Guide describes how to port drivers to from GLDv2 architecture to GLDv3 architecture. This porting guide is out of date and needs a rewrite.

Direct Memory Access (DMA)

The DMA chapter, "Chapter 9, Direct Memory Access (DMA)," has a comment from a community member that needs to be addressed.

Do you have ideas to help address CR 6552987:

"I did have issues with handling of partial DMA transfers, which I don't feel was explained that well in WDD. I got better examples from source code for other drivers in the OpenSolaris tree. That deserves some more text, especially dealing with dma windows, the fact that you can't reiterate over the dma cookies (requiring you to stash them yourself), and the fact that you have to deal with partial dma windows."

Can you help add information about ddi_umem_iosetup(9F) to the DMA chapter? CR 4630654

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact