[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/