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.

TMS320C6678: 【TMDXEVM667LE】SRIO---PORT与PATH的关系

Part Number: TMS320C6678


在测试SRIO接口的时候,我将srio_1x2x4x_path_control设置为4XABCD。但发现当我把outPortID设置为1或2或3时,数据均能传输成功。可是在4XABCD模式下,不是只有port0使能了吗

另外我发现,将srio_1x2x4x_path_control设置为1XA时,将outPortID设置为0可以进行数据传输,但是outPortID设置为1,2,3就不能进行数据传输。

将srio_1x2x4x_path_control设置为2XAB时,将outPortID设置为0,1均可以进行数据传输,但是outPortID设置为2,3就不能进行数据传输。为什么port1可以进行数据传输

随后我在srio_1x2x4x_path_control设置为4XABCD时 人为地将bLogic_Port_EN全设置为TRUE

srio_cfg.blockEn.bLogic_Port_EN[0]= TRUE;
srio_cfg.blockEn.bLogic_Port_EN[1]= TRUE;
srio_cfg.blockEn.bLogic_Port_EN[2]= TRUE;
srio_cfg.blockEn.bLogic_Port_EN[3]= TRUE;

在SRIO初始化的时候一直停在 i=1时

if(srio_cfg->blockEn.bLogic_Port_EN[i])
{
while(0==(gpSRIO_regs->RIO_SP[i].RIO_SP_ERR_STAT&
CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK));
}

这个地方。那就代表在4XABCD时只有port0 enable ok,port1 2 3都不能enable成功。说明4个lane与port0连在一起进行数据传输。可是将outPortID设置为1或2或3时,数据均能传输成功。请问我应该查看哪个寄存器可以看到到底使用的是哪个port将数据传输出去了

  • 另外在将outPortID分别设置为1.2.3时,我查看了LSU-REG4里边的outPortID值确实也分别为1.2.3. 这outPortID:Indicates the output port number for the packet to be transmitted from  在该logic_port没有成功使能情况下,应该是不能通过这个port把数据传输出去的吧

    在测试SRIO接口的时候,我将srio_1x2x4x_path_control设置为4XABCD。但发现当我把outPortID设置为1或2或3时,数据均能传输成功。可是在4XABCD模式下,不是只有port0使能了吗
  • 我再看一下晚一些给您回复。

  • 理论上应该是截图所示的对应关系。

    但发现当我把outPortID设置为1或2或3时,数据均能传输成功。

    此时PLM_SP(n)_PATH_CTL的配置都是一样的吗?

    将outportID设置为1/2/3时,bLogic_Port_EN对应的port端口也能通过吗?

  • ID设置为1/2/3是在LSU_transfer时设置的,而bLogic_Port_EN这个是在SRIO初始化时,根据设置的PATH自动使能的。现在矛盾就出现在port1/2/3没有使能但是在LSU传输函数设置参数outPortID为1/2/3时却可以正常进行数据传输,此时PATH设置的是4xABCD。

    随后我在srio_1x2x4x_path_control设置为4XABCD时 人为地将bLogic_Port_EN全设置为TRUE

    srio_cfg.blockEn.bLogic_Port_EN[0]= TRUE;
    srio_cfg.blockEn.bLogic_Port_EN[1]= TRUE;
    srio_cfg.blockEn.bLogic_Port_EN[2]= TRUE;
    srio_cfg.blockEn.bLogic_Port_EN[3]= TRUE;

    在SRIO初始化的时候一直停在 i=1时

    if(srio_cfg->blockEn.bLogic_Port_EN[i])
    {
    while(0==(gpSRIO_regs->RIO_SP[i].RIO_SP_ERR_STAT&
    CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK));
    }

    这个地方。那就代表在4XABCD时只有port0 enable ok,port1 2 3都不能enable成功。说明4个lane与port0连在一起进行数据传输。可是将outPortID设置为1或2或3时,数据均能传输成功。请问我应该查看哪个寄存器可以看到到底使用的是哪个port将数据传输出去了