Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

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



Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1
Moderator:
RSKV

Post Reply
Follow this topic



Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

Katas posted on 20 Jul 2012 10:45 PM PST
Member
6 Forum Posts

Slave Sync Fifo examples are differrent in SDK v.1.1 and v.1.1.1: unable to achive hi throughput with v.1.1.1.

With v.1.1.1 there is only ~200MB/s ( IN endpoint), but with v.1.1 throughput is about 330 MB/s!

I found that difference is in state machine programming.

What is wrong with new version?




Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

Katas posted on 20 Jul 2012 03:40 AM PST
Member
6 Forum Posts

Looks like v.1.1.1 use 16 bit bus even define CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT is set to 1.

Version 1.1.1 cyfxgpif_syncsf.h has a lot of differences, for example:

new version v.1.1.1:

uint32_t Sync_Slave_Fifo_2Bit_CyFxGpifRegValue[]  = {
    0x80000380,  /*  CY_U3P_PIB_GPIF_CONFIG */
    0x000010A7,  /*  CY_U3P_PIB_GPIF_BUS_CONFIG */
    0x01070002,  /*  CY_U3P_PIB_GPIF_BUS_CONFIG2 */
 

old version v.1.1:

uint32_t Sync_Slave_Fifo_2Bit_CyFxGpifRegValue[]  = {
    0x80000380,  /*  PIB_GPIF_CONFIG */
#if (CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT == 0)
    0x000010A7,  /*  PIB_GPIF_BUS_CONFIG */
#else
  0x000010AC,  /*  PIB_GPIF_BUS_CONFIG */
#endif
    0x01070002,  /*  PIB_GPIF_BUS_CONFIG2 */

 

If  I use this code (i.e.  0x000010AC instead of  0x000010A7) in the example from v.1.1.1 than IN transaction return Error 997.

How to fix v.1.1.1? How to run it in 32-bit mode?
 

 

 

 

 



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

RSKV posted on 23 Jul 2012 11:14 PM PST
Cypress Employee
655 Forum Posts

Hi,

I am also seeing the similar issue and I checking with the internal software team. I will update you soon.

Regards,

sai krishna.



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

Sil posted on 30 Jul 2012 07:21 AM PST
Top Contributor
93 Forum Posts

My sync fifo 32 Bit implementation also stopped working after updating to SDK v1.1.1. Interestingly, when downloading the image to RAM using the j-link debugger, it does work sometimes. Please advice what has been changed between SDK v1.1 and 1.1.1 so as to find the root cause for this.

 

In parallel I have an additional endpoint that is served by the CPU and there I have no problem at all.

 

-Sil



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

Ayi posted on 15 Aug 2012 07:23 PM PST
Top Contributor
23 Forum Posts

 hi sil , I have the same problem like yours .it work well in sdk v1.1.But after I updata to sdk V 1.1.1 ,download the *.img to ram it is not work well .the source code are the same .with sdk v 1.1.1 when burst read size more than 0x330 it is receive nothing .In app FinishDataXfer will return false 



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

RSKV posted on 18 Aug 2012 09:32 PM PST
Cypress Employee
655 Forum Posts

Guys,

Can you please try your projects with the latest SDK that is released few days back. (SDKv1.2).

Please let me know the result.

Regards,

sai krishna.



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

Katas posted on 22 Aug 2012 10:47 PM PST
Member
6 Forum Posts

The same result: SDK v.1.2 Slave Fifo example is 16-Bit. Still works  16 bit only. If I set second register in GpifRegValue[] array to 0x000018AC then I got error 997. So, nothing was changed since v.1.1.1 of sdk :(

Note: SDK 1.2 has GPIF-II designe version 1.0.715.0 but SDK 1.2 example (at least slave sync fifo) uses GPIF-II version 1.0.836.1 !

 

 



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

RSKV posted on 23 Aug 2012 06:13 AM PST
Cypress Employee
655 Forum Posts

Guys,

Please change the starting piece of code in the main function as shown below:

CyU3PIoMatrixConfig_t io_cfg;
    CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
    CyU3PSysClockConfig_t clkCfg = {
            CyTrue,
            2, 2, 2,
            CyFalse,
            CY_U3P_SYS_CLK
    };

    /* Initialize the device */
    status = CyU3PDeviceInit (&clkCfg);
    if (status != CY_U3P_SUCCESS)
    {
        goto handle_fatal_error;
    }

    /* Initialize the caches. Enable instruction cache and keep data cache disabled.
     * The data cache is useful only when there is a large amount of CPU based memory
     * accesses. When used in simple cases, it can decrease performance due to large
     * number of cache flushes and cleans and also it adds to the complexity of the
     * code. */

Let me know the result after doing this modification.

Thanks,

sai kirshna.



Re: Slave Sync Fifo: unable to achive hi throughput with SDK v.1.1.1

Katas posted on 24 Aug 2012 09:10 PM PST
Member
6 Forum Posts

Yes, it works!

Thank you!






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.