Ziatech 5503 watchdog driver

Devon H. O'Dell dodell at offmyserver.com
Sat Mar 19 00:03:23 PST 2005


On Fri, Mar 18, 2005 at 03:55:53PM -0700, Warner Losh wrote:
> > I'm busy writing a Ziatech 5503 watchdog driver for FreeBSD (and
> > porting all the watchdog stuff to DragonFly BSD) and Plan 9. For my
> > driver, I have no way to identify that the system has the driver, so
> > I wanted to make it conditional on

Rather, I have no way to identify that the system has the device :).

> > options ZT5503
> 
> That's not a good enough reason to make it an option, it should really
> be a device.  Users that want it can add it to their kernel config.
> In fact, they'd have to add it either way, so why make it weird for
> them.
> 
> Put this device on the ISA bus, give it an identify routine that
> always adds it (this isn't GENERIC safe, but since there's no way to
> know the device is there, you are stuck with that).

OK. I don't know a hell of a lot about how the ISA bus works, though
I suppose that I remember that things using the old SB 16 cards
(Wolfenstein, anyone?) would simply probe various I/O ports.

Unfortunately, in my case, there are really no board specific I/O
registers that will give me information I can detect (or so it seems
from the manufacturer's manuals), though I am going to write a
couple of tests today to read some of these registers and see if
there is any useful information contained within them which I
might use to probe.

Assuming no useful information exists, is it enough to let the
device attach regardless if the user has

device zt5503

in the configuration file? Maxime suggested that I use device hints
to gather the port and such. Where should I put these hints? NOTES?

If I understand correctly, to hook this up into the build, I will
still have a line in files which will look something like:

dev/ziatech/zt5503.c	optional zt5503

Hm, Ziatech is now Performance Technologies. Should that perhaps be
dev/pt then instead?

> > existing in the kernel configuration file. I have a couple of
> > related questions:
> > 
> > 1) Where in the tree should my zt5503wd.c file be placed?
> 
> usually these thigns go in dev/foo/foo.c.  However FreeBSD and
> DragonFly have differeing layouts.  FreeBSD has a modules subtree to
> build modules, while DF has it in the dev tree.  The dev tree is also
> partitioned so it would be in dev/misc/foo/foo.c.

Yeah, I figured I'd ask Matt or Joerg where it'd best go there :). I
Think the preferred location was dev/misc/foo as you suggest.

> > 2) Regarding watchdog.h; this device supports other times than those
> > provided from between 250MS to 256S. Hope nobody minds this changing
> > :).
> 
> Nope. :-)

Ok then :)

> > 3) To make sure I understand how this works:
> > 	o The device is compiled in / loaded
> 
> You'll need to make it a real device if you want loading to work.  The
> alternative is to make it a pseudo-device, but that's more hassle than
> it is worth since you need to access resources.  An option definitely
> won't work.

Another good reason to not write it as such.

> > 	o watchdogd is used to tell the system to start the timer
> > 	o I get a bunch of flags in my eventhandler function's 2nd
> >     argument that I can then use to write to my device's
> >     registers with the proper information
> 
> These don't look like questions...

They're not stated as such; I've only taken a brief look around the 
watchdog functionality and I just wanted to confirm that this is how
the stuff works so I don't end up goofing it up :).

> 
> Warner

Thanks for the help!

--Devon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20050319/247567b0/attachment.bin


More information about the freebsd-hackers mailing list