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.

关于multicore navigator 收发队列的联系

在看multicore navigator有关文档和代码时,关于收发队列是如何关联起来的不清楚。descriper是如何从发队列到收队列的?在配置descriper和发对列时没有看到地址或者类似的东西指向特定的收队列,如果有多个收发队列,之间是怎么区分的,descriptor怎么知道该到哪里去?用的例子是c6678 驱动中pa_emac_example。

  • 您好!

    每个descriptor都会有一个指定的 Rx flow ,由Rx flow 指定将descriptor放到哪个RxQ.

  • 您好,

    Navigator分成Tx和Rx,在发送方,由应用程序完成descriptor的push,然后由Tx PktDMA根据push的descriptor自动完成descriptor的回收到相应的TxFDQ;在接收方,根据flowID决定从相应的RxFDQ中pop descriptor,由其指定将数据存放在相应的memory,然后将descriptor回收到RX FLOW中配置的RxQ。

  • 这个rxflow是在收端制定的还是在descriptor上定义的?在Host packet descriptor上没有看到定义rxflow的域啊?

  • 以host packet descriptor为例,和包rxflow是在哪里指定的呢?另外“将descriptor回收到RX FLOW中配置的RxQ”的操作是手动编辑完成的吗?

  • 您好!

    1. 程序初始化时候配置好RxFlow,

       For loopback PKTDMA modes (i.e. infrastructure cases), the Rx flow is specified in the

       Tx descriptor, in the SOURCE_TAG_LO field. The PKTDMA will pass this value to the

       streaming I/F as flow index.

       In non-loopback cases, the Rx flow is specified in the packet

       info structure of the Streaming I/F.

       In the event no Rx flow is specified, the Rx DMA will use Rx flow N for Rx channel N.

    2.你只需在RxFlow中配置好RxQ, Rx DMA 会将decriptor 放到指定的queue中;无须手动编辑

  • 1,确实在文档中看到了这一段,但是还是有些不解。首先SOURCE_TAG_LO field和the packet

      info structure of the Streaming I/F在TX descriptor中似乎是一段;其次,我用的例子是PA_EMAC EXAMPLE,其中SOURCE_TAG_LO field这个域并没有配置,而是在PA内部有申明。是不是RXFLOW的配置还和具体的外设有关?另外,Streaming I/F具体怎么解释?

    2,在Rxflow的配置中找到了有关RXQ的配置,但我所用的例子PA_EMAC EXAMPLE仍有手动将完成操作的descriptor手动PUSH回RXFQ的语句

    /* Reset the buffer lenght and put the descriptor back on the free queue */      

       pHostDesc->buffLen = pHostDesc->origBufferLen;

       Qmss_queuePush (gRxFreeQHnd, (Ptr)pHostDesc, pHostDesc->buffLen, SIZE_HOST_DESC, Qmss_Location_TAIL);

    这是为什么?

    谢谢~~~

  • 在PA的例子里面,收到的RX报文是需要软件处理的,在软件处理结束以后,再由软件推送到FreeQ。如果自动回收,软件在什么时候通过什么方式能够处理收到的数据呢?:)

  • 这里列举了三种情况,loopback、no loopback和no flow,这三种情况有什么区别么,loopback是在做回环么?