PCI driver development problems

Bob Pickles BPICKLES at btconnect.com
Fri Jan 23 06:08:21 PST 2004


I am in the same position, but have gone past most of these issues, I only
have 5 days
experience though.

The device should be made in your attach() function using make_dev(), then
the device should
be installed...

use tail -f /var/log/messages to see errors that kldload reports, this is
helpful, as it will give
silly errors, when it's just link errors.

Hope this helps.

Bob Pickles
SBS Technologies.

----- Original Message ----- 
From: "Admin" <admin at sycos.co.uk>
To: <freebsd-questions at freebsd.org>
Cc: <peter at sycos.co.uk>
Sent: Friday, January 23, 2004 1:50 PM
Subject: PCI driver development problems

I am using FreeBSD Version 5.1.

I am developing a driver for a PCI interface. I have spent almost a month to
understand the FreeBSD architecture and how to develop a device driver. I
have a number of issues requiring immediate help:

1. I have tried using the /usr/share/examples/drivers/make_device_driver.sh
file to generate a skeleton driver and it failed with a number of errors and

2. I used the examples for 'echo' Pseudo device driver (FreeBSD Architecture
Handbook) and managed to compile the code. When I tried to load the driver,
the load failed due to there being no node in the /dev directory. I tried
using mknod  /dev/echo c 33 0 and the following error message was returned:
No such file or directory. I can create a node in any other directory but
not in /dev directory.

3. I have tried compiling /usr/share/examples/kld file and they are giving
errors. I have tried compiling PUC driver code and it fails on header files.
I managed to find other files, but, I could not find opt_puc.h header file.

4. I have modified the make_device_driver.sh to generate code for a pci
device driver. when I try to compile the kernel with the pci driver node, it
won't compile, because I am unable to enter device node in /dev directory.
Can I communicate with my PCI card without creating the device node?

5. I can see the product hardware details using pciconf -l command. But,
when I try using pciconf -a(selector), it returns error "cannot parse

6. Is there a document which covers how to convert a driver into kld?

7. I am currently using FreeBSD 5.1. Have any of the above problems been
addressed in FreeBSD 5.2?

8. Are there any kernel debugging tools in the system I can use?

9. Are there any working examples in FreeBSD 5.2?

I am stuck and desperately need your help. Would you please advise a.s.a.p.

If you have an up-to-date example of a PCI interface device driver that
works, I would be very grateful to receive a copy to assist me.


Gurdial Chandra

freebsd-questions at freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"

***This message has been scanned for virus, spam, and undesirable
***For further information, contact your mail administrator.***

More information about the freebsd-questions mailing list