Quantcast
Channel: C6000™多核 - 最近的话题
Viewing all articles
Browse latest Browse all 5545

关于6678网口发送的问题

$
0
0

您好,现在使用EVM6678LE的开发板调试网口,需要通过SGMII1口发送数据。根据数据手册中KeyStone Architecture Gigabit Ethernet(GbE) Switch Subsystem的第2.5节进行操作,并使用了开发例程提供的void KeyStone_MDIO_PHY_Set_Reg(Uint32 phyNum, Uint32 regNum, Uint16 data)函数发送UDP报文,使用Wireshark进行抓包,没有收到任何数据。有如下以及疑问:

1、 KeyStone_MDIO_PHY_Set_Reg中的形参Uint16 data是否就是需要发送的UDP报文,phyNum和regNum分别如何配置;

2、现在无法发送数据是不是还是因为配置不对;

3、如果配置正常的话,是不是就可以使用Wireshark抓到数据;

4、UDP报文最终的CRC-32是否需要自己产生?在PA这个例程中似乎没有看到CRC-32如何产生;

5、UDP报文中的CRC-16是不是即便错了数据也能发送?在PA例程中,故意将CRC-16置错,数据照样能发送,但是Wireshark软件中会提示校验有错。

    //SGMII  KeyStone_main_PLL_init(100, 10, 1);  KeyStone_PASS_PLL_init(100, 21, 2);

  KeyStone_GE_Config *ge_cfg;   memset(&ge_cfg, 0, sizeof(ge_cfg));  ge_cfg->serdes_cfg.commonSetup.inputRefClock_MHz = 312.5;

 ge_cfg->ethernet_port_cfg[1]->mode = ETHERNET_AUTO_NEGOTIAT_SLAVE;  ge_cfg->ethernet_port_cfg[1]->CPPI_Src_ID= 1;  ge_cfg->ethernet_port_cfg[1]->RX_FIFO_Max_blocks= 8;  ge_cfg->ethernet_port_cfg[1]->RX_flow_control_enable= TRUE;  ge_cfg->ethernet_port_cfg[1]->TX_flow_control_enable= TRUE;  ge_cfg->ethernet_port_cfg[1]->flow_control_MAC_Address= 0x0017EAC9F88F;  ge_cfg->ethernet_port_cfg[1]->ethenet_port_statistics_enable= TRUE;  ge_cfg->ethernet_port_cfg[1]->host_port_statistics_enable= TRUE;  ge_cfg->ethernet_port_cfg[1]->prmiscuous_mode = ETHERNET_RX_CMF_EN;

 ge_cfg->mdio_cfg->clock_div = 0;  ge_cfg->mdio_cfg->link_INT0_PHY_select= MDIO_INT_SELECT_PHY_0;  ge_cfg->mdio_cfg->link_INT1_PHY_select= MDIO_INT_SELECT_PHY_1;

 ge_cfg->RX_MAX_length= 9504;

 KeyStone_GE_Init(ge_cfg);

 Wait_PHY_link();     gpMDIO_regs->USER_GROUP[0].USER_ACCESS_REG = gpMDIO_regs->ALIVE_REG;     gpSGMII_regs[0]->CONTROL_REG |= CSL_CPSGMII_CONTROL_REG_MASTER_MASK;

    while(1)     {

     //SGMII    

  if(gpMDIO_regs->LINK_REG == 0)     

 {     

 printf("link PHY%d is NOT up\n", 1);    

  }     

 else   

   {     

 printf("link PHY%d is up\n", 1);    

  }

 for(i=0; i<sizeof(pktMatch);i++)    

  {     

 test = (pktMatch[i]<<8) | pktMatch[i+1];     

  i++;      

 KeyStone_MDIO_PHY_Set_Reg(0,0,test);

     }

十分着急,谢谢了。


Viewing all articles
Browse latest Browse all 5545

Latest Images

Trending Articles