FreeBSD DRIVER DEVELOPMENT

rk47 rk at nanoteq.co.za
Tue Dec 2 22:31:24 PST 2003


 
> As with every device driver, the recommended (or at least proved)
> way is to take an existing, simple driver, and modify it to suit
> your needs.
The simplest driver is probably the puc (sys/dev/pci/puc.c) driver, it has a
lot of the elements that a driver can have.

> Kernel interfaces are documented in intro(9) and related section 9
> man pages (ls /usr/share/man/man9)
Some (one that I can think of) of the kernel interfaces are not given here.
The interface to the dma services (bus_dma) you can find at :
http://www.openbsd.org/cgi-bin/man.cgi

> http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/pci.html)
> 
You can also look at the ISA section, because of the NEWBUS architecture an
ISA driver is very similar to a PCI driver in many ways, e.g. allocating
bus resources, setting up interupt handlers etc. 

A few articles on www.daemonnews.org can also help:
NEWBUS intro (helped me a lot):
http://www.daemonnews.org/200007/newbus-intro.html
KLD (loadable modules) :
http://www.daemonnews.org/200010/blueprints.html

Good Luck
Riaan





More information about the freebsd-questions mailing list