BSDero wrote:
Does anybody has development experience with driver develoment for Irix??
Yes. Written a couple of years ago, still maintaining it.
BSDero wrote:
Or another O.S.?
Yes (Linux, Windows, several PPC based vxWorks platforms, some special purpose in-house RTOSes and a couple others).
I wouldn't choose IRIX as the platform for 'my first device driver'. IRIX isn't all that different from e.g. Linux but the necessary information can be a little harder to find and due to the closed nature of IRIX you cannot inspect the code behind the published interfaces.
But really, the concepts of device drivers are pretty universal. The constraints imposed by the platform/OS vary, but in the end you have to implement these bits:
* device registration.
* PIO or memory mapped register I/O
* interrupt handling
* uncached memory manangement for DMA
* interrupt handling
* implement an interface to user space, or to protocol layers
... and FWIW I'd do it in that order. The OS provides primitives to implement these functions and in case of IRIX they are documented on Techpubs and in to 1000+ page
Device Driver Writer's Guide
. In the case of IRIX, the PCI bus can sometimes be a little oddball because the PCI bus is never the primary system bus and the PCI-XTalk interface can impose some limitations (or amplify effects you wouldn't have noticed on another platform), but really the essentials are all there.
Try to keep your code clean, modular and elegant because (depending on the platform), debugging options beyond 'kprintf' can be a hard enough to be not worth bothering. Apply copious amounts of assert(). And *know* the hardware you're talking to.