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.

keystone_srio程序normal模式不能打开端口



我在EVMC6678L_EVM上做SRIO外部回环测试或是直接给fpga发包,用的是keystone_srio程序,出现的问题是打不开端口。运行的到下面的程序就一直在那里循环了。有两个问题想问一下专家。
/*---------wait all enabled ports OK-------------*/
 for(i=0; i<SRIO_MAX_PORT_NUM; i++)
 {
  if(srio_cfg->blockEn.bLogic_Port_EN[i])
  {
   while(0==(srioRegs->RIO_SP[i].RIO_SP_ERR_STAT&
    CSL_SRIO_RIO_SP_ERR_STAT_PORT_OK_MASK))
    printf("***********port OK***************\n");;
  }
 }

(1)我在外部回环测试或是正常工作模式的时候,开发板外部硬件回环链路如果没有接通,是不是端口就不能打开呢?

(2)我的端口打不开,主要是哪些参数没有配置正确呢?

时钟设置如下:

  //DSP core speed
  //KeyStone_main_PLL_init (20, 1);  //for 50MHz input clock
  KeyStone_main_PLL_init (10, 1);  //for 100MHz input clock
  //DDR speed = 66.67*20/1= 1333
  KeyStone_DDR_PLL_init (20, 1);
  Shannon_EVM_DDR_Init(666.667);  //for 1333Mbps
  serdes_cfg.commonSetup.inputRefClock_MHz = 312.5;

硬件时钟树如下:

  • 如果你配置的是和正常FPGA通信模式,而此时FPGA并没有发起链路训练,DSP port 没有收到相应的maintance包,会出现端口检测失败的情况

  • 现在端口能够打开了。主要是因为我的外部链路没有接通,现在把端口的接收和发送通过外部接插件短路,就能打开端口了。

    不过还有问题想问一下。目前我的dsp端能够发包了,fpga端的驱动还没有做,包括物理链路和协议解析。我想用dsp给fpga发包,然后我根据收到的包解析协议。请问这样能实现吗?根据Thomas所说的,fpga不正常时不是就不能跟dsp建立连接啊?

  • 谢谢回复,现在端口能够打开了。主要是因为我的外部链路没有接通,现在把端口的接收和发送通过外部接插件短路,就能打开端口了。

    不过还有问题想问一下。目前我的dsp端能够发包了,fpga端的驱动还没有做,包括物理链路和协议解析。我想用dsp给fpga发包,然后我根据收到的包解析协议。请问这样能实现吗?根据Thomas所说的,fpga不正常时不是就不能跟dsp建立连接啊?