Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Reliability problems with reading data from slave fifo interface

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Reliability problems with reading data from slave fifo interface
Moderator:
RSKV

Post Reply
Follow this topic



Reliability problems with reading data from slave fifo interface

Sil posted on 02 May 2012 5:44 AM PST
Top Contributor
93 Forum Posts

I am now working with the FX3 for quite some time and while there are a lot of good things to say about, I see one big problem that continues to bugger me during the whole development.

 

This problem is the tendency of the FX3 to crash whenever something goes wrong with the host reading data from the slave fifo interface. As discussed in this forum before, if you request less or more bytes with the XferData() function that there are actually available in the input buffer, the upstream link stalls and seems to recover only with a hardware reset of the FX3. While I am taking extra care to avoid such conditions, in real applications we will always have situations where the requested bytes are not matching with the ones available in the buffer.

 

I have now encountered another problem that is likely to be related to the above topic. I have an application that is reading data from the slave fifo with maximum performance using overlapped data transfers. At the same time, small amounts of data are written to the slave fifo interface to send memory read requests to the FPGA. In this configuration I can reach more than 300 MB/s upstream performance. I have tested this using an ASmedia controller that is integrated on a mainboard and a Renesas/Nec 720700 PCIe host controller. In both setups, everything seems to work fine and data is transferred without problems for hours or even days. I have now tested the same application using a Lenovo T420s laptop with an on-board 720700 host controller and the latest driver software. The performance is nearly the same but after 10…60 minutes no data can be read anymore and the FX3 upstream link stalls until a hardware reset on the FX3 is carried out. On the slave fifo interface I can see that FLAGB indicates buffer full, so data should be available.

 

I have attached a JTAG debugger and found that the FX3 operating system is still working. In fact I am using auto DMA transfer mode and therefore I can even stop the application running on the FX3 and my demo application can still work. Therefore I suspect that the DMA engine in the FX3 gets stuck.  At this point I am wondering if there are some different software settings for the FX3 I could try or if there is a problem with the NEC host controller working with the FX3 chip.




Re: Reliability problems with reading data from slave fifo interface

sodafarl posted on 02 May 2012 10:25 AM PST
Top Contributor
128 Forum Posts

Silvio,

See my reply to something that may be related http://www.cypress.com/?app=forum&id=167&rID=60116&message=posted

Is your FX3 part an engineering sample or production part. Regarding the data stalling I had a similar problem and put a USB 3 analyser on the bus. I noticed that if the data transfer failed for whatever reason the driver in the host would only retry the data transfer twice - after this it no longer tried to get data from the endpoint unless I reset the endpoint in software. I only had to reset it in the software application. It looks like the DMA engine in the FX3 is ok it is the software that is stuck.

Sodafarl






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.