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.

SRIO message



您好,

下面是我的SRIO message初始化,不知道哪里有问题

首先是发送DSP的:

TX_DESCP0_0->TXDESC0 = 0;

TX_DESCP0_0->TXDESC1 = (int )&xmtBuff1[0];  //Buffer Pointer

TX_DESCP0_0->TXDESC2 = CSL_FMK( SRIO_TXBUFFDESC_DEST_ID, 0x8)|

CSL_FMK( SRIO_TXBUFFDESC_PRI, 0)|

CSL_FMK( SRIO_TXBUFFDESC_TT, 1)|

CSL_FMK( SRIO_TXBUFFDESC_PORT_ID, 0)|

CSL_FMK( SRIO_TXBUFFDESC_SSIZE, SSIZE_256B)|

CSL_FMK( SRIO_TXBUFFDESC_MAILBOX, 0);

TX_DESCP0_0->TXDESC3 = CSL_FMK( SRIO_TXBUFFDESC_SOP,1 )|

//CSL_FMK( SRIO_TXBUFFDESC_EOP,1 )|

CSL_FMK( SRIO_TXBUFFDESC_OWNERSHIP,1 )|

//CSL_FMK( SRIO_TXBUFFDESC_EOQ,1 )|

CSL_FMK( SRIO_TXBUFFDESC_TEARDOWN,0 )|

CSL_FMK( SRIO_TXBUFFDESC_RETRY_COUNT,0 )|

CSL_FMK( SRIO_TXBUFFDESC_CC,0 )|

CSL_FMK( SRIO_TXBUFFDESC_MESSAGE_LENGTH,MLEN_512DW );

SRIO_REGS->QUEUE_TXDMA_HDP[0] = (int )TX_DESCP0_0 ;

然后是接收DSP的:发送DSP的SRIO ID号=0x7,接收DSP的ID号=0x8

SRIO_REGS->MAP[0].RXU_MAP_L = CSL_FMK( SRIO_RXU_MAP_L_LETTER_MASK, 0)|

CSL_FMK( SRIO_RXU_MAP_L_MAILBOX_MASK, 0x0)|

CSL_FMK( SRIO_RXU_MAP_L_LETTER, 0)|

CSL_FMK( SRIO_RXU_MAP_L_MAILBOX, 0)|

CSL_FMK( SRIO_RXU_MAP_L_SOURCEID, 0x7);

  SRIO_REGS->MAP[0].RXU_MAP_H = CSL_FMK( SRIO_RXU_MAP_H_TT, 1)|

CSL_FMK( SRIO_RXU_MAP_H_QUEUE_ID, 0)|

CSL_FMK( SRIO_RXU_MAP_H_PROMISCUOUS, 1)| //0)|

CSL_FMK( SRIO_RXU_MAP_H_SEGMENT_MAPPING, 1);  //1 multi-seg

RX_DESCP0_0->RXDESC0 = 0;

RX_DESCP0_0->RXDESC1 = (int )&rcvBuff1[0];

RX_DESCP0_0->RXDESC3 = CSL_FMK( SRIO_RXBUFFDESC_SOP,1 )|

CSL_FMK( SRIO_RXBUFFDESC_EOP,1 )|

CSL_FMK( SRIO_RXBUFFDESC_OWNERSHIP,1 )|

CSL_FMK( SRIO_RXBUFFDESC_EOQ,1 )|

CSL_FMK( SRIO_RXBUFFDESC_TEARDOWN,0 );

我觉得没有问题啊,但是接收方的ownership始终不为0,。

发送方的描述符里的message_length=4096B,但是接收方的memory里只收到2304B。

非常感谢!