7 Replies Latest reply on Dec 7, 2018 3:09 AM by user_462847463

    FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time

    pascal.douine_3859456

      Hello

      Following the recent discussion (ended Sept 7th) with Yves on this topic, the only solution we have to avoid this issue is to disable the LPM function.

      But disabling the LPM fails the USB compliance test. And unfortunately this is an issue for some of our customers.

      Additionally it appears that this solution does not work with the Renesas USB3 controller present on a DELL T5600.

      Please advise on another solution.

      Thank you

      Pascal

        • 1. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
          hman

          Hello Pascal,

           

          In the firmware, when do you add LPMDisable?

           

          Regards,

          Hemanth

          • 2. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
            pascal.douine_3859456

            Hello Hemanth

             

            Actually we use your application to disable the LPM.

             

            CyFxBulkLoopApplication::CyFxBulkLpApplnUSBEventCB (

             

            switch (evtype)

             

            case CY_U3P_USB_EVENT_SETCONF:

             

            /* Disable the low power entry to optimize USB throughput */

             

            CyU3PUsbLPMDisable();       <= HERE

             

            Thank you

            Pascal

            • 3. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
              hman

              Hi Pascal,

               

              Previous thread:

              https://community.cypress.com/thread/36374

               

              As mentioned in the last comment in the above thread, if you call CyU3PUsbLPMDisable() when SET_CONF is received, then USB Compliance test will fail.

               

              So, can you please refer to source code of AN75779

              In the source code, you will see that CyU3PUsbLPMDisable() is called in CyFxUvcApplnStart() and this is called only video streaming starts.

               

              Please let me know if you have any questions.

               

              Regards,

              Hemanth

              • 4. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
                pascal.douine_3859456

                Hello Hemanth

                 

                I think we don’t understand each other:

                 

                With some type of host controller (for example: Renesas USB 3.0 eXtensible Host
                Controler)
                we face some issue
                in our camera using FX3 while doing basic bulk out write in loop on control
                endpoint 0 => After a while, the Host (PC Win10 v1803 64bit) sends a warm
                reset which makes camera to reenumerate, and an unplug event is sent to the PC
                application.

                With USB3 analyzer, we saw some errors with flow control between FX3 and Host
                Controler which make the PC to generate a warm reset.

                 

                In order to find the root cause we tried to reproduce the issue with EZ-USB FX3
                development board and the Bulkloop example Firmware & software
                (Cypress USB suite v1.3.4) without any modifications. We know that in this this
                example LPM is disabled in the FW, and we are agree it is not USB compliant,
                but our interest for now is just to check if our issue still occurs or not. Of
                course in our final FW we will manage correctly LPM.

                 

                So Tests Results:

                With Bulkloop example Firmware (unmodified code,  so with LPM disabled) =>
                The warm reset issue is solved  but only for some Host Controlers Renesas.

                With Bulkloop example Firmware (we modify code to remove CyU3PUsbLPMDisable,  so LPM is
                always enable) => The warm reset issue occurs with every  Host
                Controlers Renesas.

                • Finally managing
                  LPM seems not to be the solution

                 

                One more time, we are only interested in solving our issue, as it seems to be
                linked to flow control between FX3 and Host Controler, we don’t know how to
                solve it in the FW.

                We think that if we can solve the issue with EZ-USB FX3 development board and the
                Bulkloop example Firmware, we will also solve it in our camera, and moreover it
                will more easy for you to reproduce it on your side. And of course we want to
                be USB compliant.

                 

                So do you think it is the good way to proceed or  do you think we should
                follow another track ?

                 

                Thank you

                Pascal

                • 5. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
                  hman

                  Hi Pascal,

                   

                  - You have mentioned that - ' By using unmodified SDK 1.3.4 Bulkloop example - where LPM is disabled - the issue is still present in few Renesas Host Controller'

                   

                  We need to understand why the issue occurs when LPM is disabled.

                   

                  - So, can you provide 2 USB traces under following conditions:

                  a. Use unmodified SDK 1.3.4 Bulkloop example with the Host controller where you see the issue.

                  b. Remove DisableLPM in SDK 1.3.4 Bulkloop example and test with the same Host Controller.

                   

                  Please provide both the above traces and also the PC information where you do the above test.

                   

                  Regards,

                  Hemanth 

                  • 6. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
                    pascal.douine_3859456

                    Hi Hemanth

                     

                    We will provide you the 2 USB traces but it will take a few days just because another problem with our setup.

                    Please don't close this case.

                    Thank you

                    Pascal

                    • 7. Re: FX3 Bulkloop example: unexpected warm reset sent by host with some host controler after some time
                      user_462847463

                      Hi,

                       

                      We succeeded to reproduce the issue with the EZ-USB FX3 development board and the BulkloopAuto Cypress examples (Firmware & software) using Cypress USB suite v1.3.4.

                      As already said, in you FW example if we run it without modification, we don’t see the issue, but if we comment “CyU3PUsbLPMDisable();” the issue occurred => we got
                      a warm reset when we look with a USB analyser.      

                      CyFxBulkLoopApplication::CyFxBulkLpApplnUSBEventCB()

                      switch (evtype)

                      case CY_U3P_USB_EVENT_SETCONF:

                      /* Disable the low power entry to optimize
                      USB throughput */

                      CyU3PUsbLPMDisable();      <=HERE

                      But, if you remove "CyU3PUsbLPMDisable()" there is still the issue.

                       

                      Once again, our intention is not to disable LPM as it is not anymore USB compliant,  it is just the only way we succeed to reproduce the issue we have in our camera, with Cypress board and softwares.

                      In attachments, I put:

                      • USB Analyser trace with LPM disable and no issue (BulkLoop_LPM_Disable_No_Issue.usb) => it corresponds to your case a)
                      • USB Analyser traces (BulkLoop_WarmReset_Packet_11041272.usb)   The USB analyser used is : Teledyne Lecroy Analyser USB protocol Suite Suite (USB Protocol Analyser 7.65)   it corresponds to your case b)
                        The war reset occurs at packet 11011272
                      • The full configuration (BulkLoop_WarmReset.HTM  &  Renesas_XHCI_USB3_HostControler.png)  of the PC on which the issue occured :  (Win10 64bit 1803,  with external Renesas PCIe USB3 card)
                      • A screen shot of the test :  BulkLoop_WarmReset_Packet_11041272.png

                        When issue occurs,  the C++ application stops and we see a remuneration of the device in the Control Center
                      • A screen shot of the Bulkloop auto project (BulkLoopAuto.png)

                       

                       

                       

                      Best regards