DS31256 (HDLC Controller )buffering problems

Have a question or want to start a discussion? Post it! No Registration Necessary.  Now with pictures!

I have a DS31256 driver (basically a modified version of the Dallas
provided driver). I am running into some buffering problems.

I am trying to transmit like a 1000, 512 byte frames continously from a
motorola processor to the HDLC Controller via a PCI bus (33MHz). I have
a while loop which transmits each frame to the controller continously
one after the other.

But after a while I run out of Tx Buffer descriptors and have to wait
till the controller clears them out. Looks like I'm pumping traffic in
much faster than the controller is sending them out. I am using 2048 Tx
Buffer descriptors. Sending out traffic on only one HDLC channel.
This is not much traffic.

Can't understand if I'm sending in traffic way too fast or if the
controller is way too slow.
How can I optimize this and speed up the controller. PCI could be a
bottleneck too.
If I have a timeout of like 1 ms (just as a test), I'm able to transmit
more frames before I run out of Tx Buffer Descriptors.

Any help is appreciated.

Site Timeline