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.

自己做的C6671板子运行开发包里面的post_evmc6678l,网口无法通过



TI工程师你好:

      我们自己按照 6678开发板做了一块板子,焊接的是6671,在用post_evmc6678l程序运行时,发现程序进入一个死循环,网口测试无法通过                 

1、用TI官网的开发板跑 post_evmc6678l 工程没有问题,通过串口观察,全部OK;但是用我们自己的板子跑这个程序,程序在附件中截图的位置死循环出不来,串口打印信息停止在网口部分,显示没有测试通过
2、原理图就是抄开发套件中的公版原理图。
我个人怀疑这个是不是和FPGA程序有关? 或者时钟PLL设置有关?
附件中是程序运行截图、原理图、FPGA程序
         麻烦帮帮忙,谢谢
mc_v03a_fpga_top_20140306_TEST.rar
  • 1. 从你的原理图来看,EMAC serdes时钟是312.5MHz,PASS时钟为100MHz,请在你自己的硬件板上确定这两个时钟输入没有问题;论坛首页有一个Keystone STK软件开发包,里面有单独的GE的代码,你可以先测一下内部的loopback;

    2. 从截图来看,是取不到PHY芯片的状态,你可以尝试用JTAG连接后读取MDIO的寄存器看看现在是什么状态,MDIO的起始地址是0x02090300,寄存器定义见KeyStone Architecture Gigabit Ethernet (GbE) Switch Subsystem 3.4节;在初始化完成以后测量MDCLK引脚看是否有时钟输出,MDCLK<=2.5MHz;也可以持续观察MDIO引脚是否发起了读写操作;

    3. 如果有读写请求仍没有响应,检查你的PHY芯片是否正常工作;

     

     

  • 正在按照你提出的方法进行测试,中间发现有点其他的问题,在板子上运行论坛里面的GE 工程 memory_test工程 都会因为不能让DDR正常的工作导致所有的测试失败,而用开发包提供的post_evmc6678l工程则能让DDR正常工作,且将GE工程中的所有的PLL配置函数都去掉,在先用post工程运行之后(主要使用post工程初始化ddr),再运行GE工程,就能顺利通过内部循环测试

    [C66xx_0] Enable Exception handling...
    [C66xx_0] GE 1000M fullduplex internal SERDES loopback test...
    [C66xx_0] GE transfer from 0x820c0000 to 0x820c2800, 1 packets x 64 bytes, 11849 cycles, 43 Mbps
    [C66xx_0] GE transfer from 0x820c2800 to 0x820c5000, 1 packets x 128 bytes, 15322 cycles, 66 Mbps
    [C66xx_0] GE transfer from 0x820c5000 to 0x820c7800, 1 packets x 256 bytes, 22750 cycles, 90 Mbps
    [C66xx_0] GE transfer from 0x820c7800 to 0x820ca000, 1 packets x 512 bytes, 36477 cycles, 112 Mbps
    [C66xx_0] GE transfer from 0x820ca000 to 0x820cc800, 1 packets x 1024 bytes, 63055 cycles, 129 Mbps

    ……

    由于开发板坏了,只能在自己做的板子上测试