3 Replies Latest reply on Nov 1, 2020 7:29 PM by RashiV_61

    DMA or GPIF stall when connected through USB Hub

    DaGr_4328696

      I'm currently working on a project that sets up a UVC video stream using the FX3. When the device is plugged into a host directly, it works absolutely wonderfully, but when it is connected through a USB hub with other devices it will stall and stop streaming video.

       

      When trying to inspect the transfer through wireshark or ffmpeg, it seems as if the device just stops sending UVC packets to the host despite the host still asking for them.

       

      The DMA is set up as a multi channel auto many to one.

       

      Thank you!

        • 1. Re: DMA or GPIF stall when connected through USB Hub
          RashiV_61

          Hello,

           

          Please help us with some more details about the application:

          - Please let me know if AN75779 is used as the base of your application

          - Can you share the UART debug prints when the streaming stopped and also share the wireshark traces for us to check.

           

          Regards,

          Rashi

          • 2. Re: DMA or GPIF stall when connected through USB Hub
            DaGr_4328696

            Hello Rashi,

             

            Thank you for the response!

             

            I'm uncertain if the AN75779 was the example used as the base of our application as I've recently inherited the project. Is there anything specific that would be helpful in knowing about the project as it might relate to AN75779?

             

            The UART debug prints are as follows right before the crash. The application currently detects a GPIF stall, and then will stop the video before sending the "UVC GPIF stall detected"

             

            GPIF[6] state[2], pc[335709192], cons[671418384]

            GPIF[6] state[2], pc[336636244], cons[673262940]

            GPIF[1] state[2], pc[337553748], cons[675107496]

            GPIF[131] state[2], pc[338595488], cons[677181428]

            GPIF[131] state[2], pc[340020896], cons[680025408]

            GPIF[6] state[2], pc[341242860], cons[682485720]

            GPIF[1] state[2], pc[342169912], cons[684330276]

            GPIF[7] state[2], pc[343087416], cons[686174832]

            GPIF[131] state[2], pc[344129156], cons[688248764]

            GPIF[131] state[2], pc[345554564], cons[691092744]

            GPIF[1] state[2], pc[346776528], cons[693553056]

            GPIF[1] state[2], pc[347703580], cons[695397612]

            GPIF[1] state[2], pc[348621084], cons[697242168]

            GPIF[131] state[2], pc[349662824], cons[699316100]

            GPIF[131] state[2], pc[351088232], cons[702160080]

            GPIF[6] state[2], pc[352310196], cons[704620392]

            GPIF[1] state[2], pc[353237248], cons[706464948]

            GPIF[6] state[2], pc[354154752], cons[708309504]

            GPIF[131] state[2], pc[355196492], cons[710383436]

            GPIF[131] state[2], pc[356621900], cons[713227416]

            GPIF[6] state[2], pc[357843864], cons[715687728]

            GPIF[1] state[2], pc[358106008], cons[716097328]

            GPIF[6] state[2], pc[358106008], cons[716097328]

            GPIF[1] state[2], pc[358106008], cons[716097328]

            GPIF[1] state[2], pc[358106008], cons[716097328]

            GPIF[1] state[2], pc[358106008], cons[716097328]

            GPIF[1] state[2], pc[358106008], cons[716097328]

            GPIF[6] state[2], pc[358106008], cons[716097328]

            GPIF[1] state[2], pc[358106008], cons[716097328]

            Pre-Stop GPIF[1], DMA status state[2], pc[358106008], cons[716097328]

            Post-DMA status GPIF[6], state[1], pc[0], cons[0]

            [13369]-Stopping Video...

            [13369]-SR2[A020780] [Aud] VidFF OR GPIF TO

            UVC GPIF stall detected

            GPIF[1] state[1], pc[0], cons[0]

            [13381]~~~~~> State change from state[3] to state[1]

            [13368]-FPGA[0] write[F080002]

            [13369]-FPGA[0] write[F080002]

             

            Attached is a wireshark capture from plug in to stall, with the stall happening at around packet 112683

             

            Thank you so much for your assistance!

             

            Dallas

            • 3. Re: DMA or GPIF stall when connected through USB Hub
              RashiV_61

              Hello Dallas,

               

              Thank you for the traces.

              From the Wireshark traces, I don't see any error codes (for failing transfer).

              Please let me know when are these debug prints printed (due to which event) or please share the firmware file for us to check the reason for these prints being printed.

               

              Pre-Stop GPIF[1], DMA status state[2], pc[358106008], cons[716097328]

              Post-DMA status GPIF[6], state[1], pc[0], cons[0]

              [13369]-Stopping Video...

              [13369]-SR2[A020780] [Aud] VidFF OR GPIF TO

              UVC GPIF stall detected

              I also don't understand the prints "DMA status state[2], pc[358106008], cons[716097328]" . Please let me know details about these prints

              Also, let me know if streaming is fine when the device is connected without the hub (i.e. directly to the host)

               

              Regards,

              Rashi