[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] uClinux support for FSL devices



Hi Yashi,

Yasushi SHOJI wrote:

> At Mon, 01 Nov 2004 12:21:59 +1000,
> John Williams wrote:
> [...]
> 
>>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.
> 
> 
> Nice piece of work.  I've been thinking about using FSL to communicate
> multi-cpu on a fpga
> 
> +------------+        +-------------------------+
> |  uClinux   |        |    iTRON or uClinux     |
> |    on      == FSL ===           on            |
> | MicroBlaze |        | MicroBlaze or PicoBlaze |
> +------------+        +-------------------------+

Definitely possible - I tried the picoblaze experiment earlier this 
year, it works quite well.  I factored out the FSL driver abstraction 
and that's what became the fslfifo that this thread is about! :)

>>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.
> 
> If you are gonna reserve hard minor number, you might want to talk to
> people managing linux device numbers.  or just leave it dynamic.

I don't know if we'd get a lot of respect for reserving minor numbers 
for a device that will only work with one arch in the no-mmu 2.4 tree, 
... maybe I'm wrong?

As for dynamic, I guess the problem is that most uClinux targets mount 
the root FS as read only, so running mknod in /dev is not usually 
possible.  In my local vendors Makefile I added the fslfifo devs 
statically...

What do you think?

>>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...
> 
> agree.

There's definitely a place for blocking FSL ops, but a multiprocessing 
operating system isn't one of them! :)


John
___________________________
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/