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.

请教关于6672中SGMII通讯的问题,非常着急!



您好,现在新设计的板子采用的dsp是6672,phy芯片为88e1322,软件采用的是开发包中的GE例程。现在始终无法实现6672由SGMII口向phy芯片发送数据的功能。在调试过程中出现如下问题: 1、GE例程在开发板可以运行,但在自己开发的板上无法运行,在调试中发现,程序运行至KeyStone_Navigator_init_drv.c文件的KeyStone_Host_Descriptor_Queues_init()中的 for(j=0;j<uiQuCfgNum; j++) {...}中时,当j的值为6时,程序跑飞。 想咨询该例程在用于6672时是否需要对原GE例程修改。 2、88E1322芯片在硬件复位时,与6672之间始终没有自协商信号。 万分着急,非常感谢。
  • Hi, 您好!

    6672只有两个核, 在GE的例程中,是按4个核去配置的,您需要把descMemRegionsCfg, freeHostQueueCfgTable, FDQ_str, flow_str中CORE2, CORE3的内容删掉:

    例如freeHostQueueCfgTable中的如下代码需要删掉:

        {CORE2_LL2_HOST_SIZE0_FDQ,  ((Uint32)&hostDescriptor_LL2[0][0])+0x12000000,                         GE_DESCRIPTOR_SIZE,   LL2_SIZE0_PKT_BUF_NUM,      ((Uint32)packetBuffer_LL2_Size0)+0x12000000,    LL2_PACKET_BUFFER_SIZE0},/*CORE2 LL2 Size0 host Free Descriptor Queue*/
        {CORE2_LL2_HOST_SIZE1_FDQ,  ((Uint32)&hostDescriptor_LL2[LL2_SIZE1_DESC_START_IDX][0])+0x12000000,  GE_DESCRIPTOR_SIZE,   LL2_SIZE1_PKT_BUF_NUM,      ((Uint32)packetBuffer_LL2_Size1)+0x12000000,    LL2_PACKET_BUFFER_SIZE1},/*CORE2 LL2 Size1 host Free Descriptor Queue*/

        {CORE3_LL2_HOST_SIZE0_FDQ,  ((Uint32)&hostDescriptor_LL2[0][0])+0x13000000,                         GE_DESCRIPTOR_SIZE,   LL2_SIZE0_PKT_BUF_NUM,      ((Uint32)packetBuffer_LL2_Size0)+0x13000000,    LL2_PACKET_BUFFER_SIZE0},/*CORE3 LL2 Size0 host Free Descriptor Queue*/
        {CORE3_LL2_HOST_SIZE1_FDQ,  ((Uint32)&hostDescriptor_LL2[LL2_SIZE1_DESC_START_IDX][0])+0x13000000,  GE_DESCRIPTOR_SIZE,   LL2_SIZE1_PKT_BUF_NUM,      ((Uint32)packetBuffer_LL2_Size1)+0x13000000,    LL2_PACKET_BUFFER_SIZE1},/*CORE3 LL2 Size1 host Free Descriptor Queue*/

    谢谢!

  • 非常感谢Kevin Cai的帮助,根据您的方法已经解决了上述问题。但程序在6672上进一步运行时出现了新的问题,在GE_2DSP_Test()中,运行至Fill_EMAC_header()函数中的buffer[1]=(_hill(destMAC)>>0)&0xFF时,程序便会跑飞。我所用的Source_MAC_address和例程中是一样的。 另外,请问该如何获取正在运行dsp的mac地址? 十分感谢您的帮助。
  • 追加:从调试的情况看,应该是对CORE2和CORE3相关删除后,影响了内存,现在所有对指针的操作都会导致程序跑飞。请求指点,谢谢。