Please dig out the code and send to me. I like to give it a try.
----- Original Message ----
From: John Williams <jwilliams@xxxxxxxxxxxxxx>
To: microblaze-uclinux@xxxxxxxxxxxxxx
Sent: Monday, March 24, 2008 3:47:15 PM
Subject: Re: [microblaze-uclinux] FSLFIFO
Hi
Simon,
Simon
Tam
wrote:
>
I
have
only
one
FSL
link
in
my
design.
I
believe
the
tasklet
in
the
>
driver
loops
around
all
8
FIFOs
however.
So
I
changed
the
>
MAX_FSLFIFO_COUNT
from
8
to
1
hoping
this
will
improve
the
performance.
>
But
it
seems
that
did
not
make
any
difference
by
looking
at
the
object
>
code.
I
still
see
the
put
statements
for
each
of
the
8
FSL
links.
And
>
the
performance
did
not
improve.
I
wonder
if
there
is
a
better
way
to
>
make
the
link
faster
if
I
am
only
using
one
FIFO.
The
performance
issue
is
not
related
to
the
number
of
configured
FSL
channels
(that
just
saves
you
a
bit
of
memory
more
than
anything
else),
instead
it's
just
a
limitation
of
the
driver
architecture
and
the
original
FSL
instruction
semantics.
If
you
look
at
the
code,
we
have
to
use
non-blocking
FSL
operations,
and
check
the
result
each
time.
This
is
slow.
Also,
it's
polled
rather
than
interrupt
driven
-
that's
slow
and
inefficient.
One
of
our
students
created
an
interrupt-driven
version
of
the
driver
-
you
hook
the
FSL
channel's
HAS_DATA
signal
to
the
interrupt
controller
-
but
I'll
have
to
dig
it
out.
The
code
needs
some
cleanup
as
well.
But,
from
memory
the
performance
and
latency
is
quite
a
lot
better.
Regards,
John
___________________________
microblaze-uclinux
mailing
list
microblaze-uclinux@xxxxxxxxxxxxxxProject
Home
Page
:
http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinuxMailing
List
Archive
:
http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/