[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[microblaze-uclinux] uClinux support for FSL devices
Hi folks,
I'm releasing some of my research drivers into the public CVS. I think
(hope?) that it's interesting work, and may be useful in broadening
awareness of what Microblaze uClinux can do.
On a more philsophical level, I think that the best validation of
research is for it to find use in the wider community. If this proves
useful to someone, I'd love to hear about it.
First cab off the rank is a generic FSL FIFO driver. FSL is one of the
bus architectures supported by Microblaze, that provides register mapped
streaming IO. An FSL bus is essentially a hardware FIFO, with simple
handshaking signals. Interfacing to FSL is so easy it's almost trivial,
particularly if you have an example to follow. Read all about it in the
Microblaze HW reference.
This driver create a linux device abstraction over the top of an FSL
channel, providing software buffering and read/write/ioctl operations.
If you have an FSL-enabled core, you can simply cat (or write() ) data
to the device node, and it is automagically buffered and streamed to the
FSL channel. IOCTL calls are used to reset the buffers, send and read
control words, that sort of thing. I chose the misc device major number
(10), with minor numbers 192-199. If this is a horrible clash with some
existing device let me know and we'll pick a different number.
The driver lives in linux-2.4.x/drivers/misc/fslfifo - and is available
in CVS right now.
Regards,
John
PS If you are writing your own FSL-enabled device drivers or user code,
but don't need this driver, then you may still find the file
/include/asm-microblaze/fsl.h useful. It's a bunch of support macros
for getting and putting to/from FSL channels, and interpreting the
status results and so on.
PPS For those who know about FSL - my personal policy in uClinux is that
blocking FSL ops are strictly verboten... Nothing locks microblaze
harder than a blocking get on a non-existent FSL port! Not even an NMI
will save you - it's reset-city...
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/