This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Doubt about the qmss example



Hi all:

I've sevel questions about the example code in the document sprugr9c section 6.2

       1、It use the queue 800 as a Tx queue, and how the navigator know this queue is a Tx queue? Why any descriptor push into this queue will deal with as a DMA source information?

       2、The PDSP1 run the accumulator firmware, it just monitor the Rx queue, how the Tx descriptor pass to the Rx queue?

       3、Why configure the logical queue managers? How the use it?

       4、The code just enable the Tx channel, Is there  no need to indicate a Tx queue associate with a Tx channel?

       5、stream i/f appear in the document,  what the i/f mean?

  • Eric,

    Replies:

    1) See Table 5-1.  The queue manager has dedicated queues that drive each of the various pktDMA Tx channels. It is a hardcoded connection between queue number and Tx channel.

    2) Yes, the PDSPs run firmware (not only Accumulation firmware). In the case of the QMSS pktDMA, the Rx side is directly connected to the Tx side because its streaming i/f (interface) is wired together to create a loopback condition. So sending a descriptor to an enabled Tx channel will cause it to pop out on the Rx side, depending on the contents of the Tx descriptor and the Rx Flow programming.

    3) The pktDMA views the QM as logical queue managers, 4096 queues each. To access all 8192 queues you must configure the second logical queue manager (the first is mapped to queue 0 during reset). Logical queue managers allow the pktDMA to send to queue managers on other devices that are connected together.

    4) Not sure what the question is, but I think it may have been answered in reply #1.

    5) i/f is "interface". In this case, the "streaming interface" connects a pktDMA to its host peripheral, or as mentioned above, to itself in the QMSS pktDMA.

      -dave

  • Answers are below:

     

     1、It use the queue 800 as a Tx queue, and how the navigator know this queue is a Tx queue? Why any descriptor push into this queue will deal with as a DMA source information?

    AVM: Please check Table 5-1 for the Queue map information.

           2、The PDSP1 run the accumulator firmware, it just monitor the Rx queue, how the Tx descriptor pass to the Rx queue?

    AVM: For infrastructure mode the TX channel N is hardwired to RX channel N. So one you push a descriptor to the TX queue, it will be pushed to the RX queue connected to that channel.

           3、Why configure the logical queue managers? How the use it?

    AVM: Please check section 6.2.6 for this. Basically it is SW to HW mapping. For all purposes, you can avoid configuring and assume only one instance of QM is available.

           4、The code just enable the Tx channel, Is there  no need to indicate a Tx queue associate with a Tx channel?

    AVM: Each queue is mapped to a TX channel. So queue 800 is mapped to TX channel 0 and so on.

           5、stream i/f appear in the document,  what the i/f mean?

    AVM: I/F mean interface. It actually ties up the tx channel to a particular RX flow. For example you can have multiple RX flow for RX channel 0 and the tx channel decides which flow to use.

     

    Hope this helps.

     

    Thanks,

    Arun.

  • Hi db_woodall,  ArunMani

      1) I see the queue map table , know why queue 800 can used as a Tx queue.

     2)  I still dobut about this question,  in the two answers, said that the Tx  is directly connected to the Rx side. I want to know the mapp relationship between the Rx and Tx queue. In the example, use the queue 800 as the Tx queue,  Table5-1 indicate the queue 800 as the first QMSS Tx queue, but the Rx queue is 712.   How queue 800 connect to the queue 712. 

         following is my suspect, please let me know it's error or right.

         2.a、table5-1 show the queue 800-831 as QMSS Tx queue,   And  Table 5-2 show QMSS has 32 Tx channels.  Does queue 800 mapped to the channel 0, and queue 801 mapped to channel ... queue 831 mapped to the channel 32.  This is fixed!

         2.b、Rx Flow configure the Rx channel 0 's Rx destination queue number is 712. so the connect relationship between the Rx queue and Tx queue  is base on the channel.  Rx channel 0 is connect to Tx channel 0. because the queue 800 is mapped to the Tx channel 0, So any descriptor pushed into the queue 800 will pass to queue 712!

    3) I know how to use the QM now.

    4) Dose the  mapped relationship between the Tx queue and the Tx channel is said as 2.a ?

    5) I know the I/F mean.

     

        

       

  • Your assumption is correct.

     

    Thanks,

    Arun.