discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] FX2 firmware


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] FX2 firmware
Date: Wed, 6 May 2009 10:13:30 -0700
User-agent: Mutt/1.5.18 (2008-05-17)

On Wed, May 06, 2009 at 06:35:36PM +0200, Dominik Auras wrote:
> Hi Eric,
>
> Thanks for the answer.
>
>> It's hard to say.  If you've got a logic analyzer you can instrument
>> the inner loop of the firmware and see if that's the bottleneck or not.
> Unfortunately, I don't have a access to a logic analyer :(
>
> However, I made progress that I am going to share once it is tested and  
> cleaned up.
>
> Short summary:
> When doing RX only, I am at 45 Mb/s (yes! decim=6 works without  
> underruns).

That's great!

> On the TX side, I can't get above 32.7 Mb/s. Now I suspect  
> that this is a host side bottleneck. On the FX2, if using only one  
> direction, I am setting the GPIF to loop infinitely. With GPIFABORT=0xFF  
> to switch if the state changes. Hence there is no main loop left that  
> could be a bottleneck. The TX state machine now consists of 2 states,  
> where state one is the idle state, and state 2 transferring data (one  
> word per clock, as before). The 8051 core is completely out of the data  
> path. (Auto commit etc.)
> Same for RX, except that a few more states were needed.
>
> When RX and TX are needed, the firmware is still faster, though the same  
> TX bottleneck appears (which is, of course, no big problem because we  
> already share USB bandwidth).
>
> Do you have, maybe, an idea why TX bandwidth is limited? Interestingly  
> enough, 32.7 Mb/s is the limit on my computer and my notebook.

Not sure.  Could be the EHCI controller, or the host driver, etc.

> Of  course, I made the tx loop on the host as short as possible, set  
> SCHED_FIFO and rtprio to 49, and played with fusb_nblock/size etc.

Let us know what else you figure out!

Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]