Driver PCI

Attilio Rao asmrookie a gmail.com
Gio 27 Apr 2006 11:07:04 CEST


Ei,
Visto che mi ero messo a smanettare con il mio winmodem "Agere LT
.v90" (bleah) ho pensato che forse un template per un driver PCI
poteva interessare ad un po di gente, cosi eccolo qua.

Quello che fa e' un corretto probe, attach e detach. Inoltre crea
anche una entry nel devfs con cui, aggiungendo una chiamata alla
ioctl, potete comunicare con il vostro driver da userspace.

Un po di tips:
- Questo e' solo un character device driver, i network driver si fanno
in modo diverso. (Forse sara' oggetto di un template futuro :)) )
- Se volete usare il template per un altro device avete bisogno di
beccarvi i vostri VENDORID e DEVICEID. Per fare cio' ricordate che
pciconf e' vostro amico (non vi dico proprio tutto senno' che sfizio
c'e'?)
- Manca la DMA allocation (visto che non e' necessaria per tutti i
driver). Se comunque ne avete bisogno: man 9 bus_dmamem_alloc (vi
avverto, e' piu' semplice di quello che puo' sembrare a prima vista,
quindi non fatevi spaventatre dal prototipo :P).
- L'interrupt handler e' implementato tramite un interrupt thread, ed
e' marcato MP_SAFE (come potete anche vedere dal fatto che sono
fornite LT_LOCK ed LT_UNLOCK per la vostra softc).
- Se c'e' qualcosa di poco chiaro lavorate di manpage e tutti i dubbi
si dissolveranno. Essendo che ho iniziato ieri alle 2 di notte a
svilupparlo, non ho avuto la forza di commentare troppo il codice.

Per qualsiasi suggerimento, dubbio, discussione in proposito e
*soprattutto* se qualcuno ha voglia di prendere il template e
continuare a lavorarci su migliorandolo scrivete qui o privatamente.

Attilio

--
Peace can only be achieved by understanding - A. Einstein
-------------- parte successiva --------------
Un allegato non testuale  stato rimosso....
Nome:        lt-winmodem-scheleton.tar.gz
Tipo:        application/x-gzip
Dimensione:  1757 bytes
Descrizione: non disponibile
Url:         http://mailman.gufi.org/pipermail/esperti/attachments/20060427/be864db2/lt-winmodem-scheleton.tar.bin


Maggiori informazioni sulla lista esperti