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:ether 在 TFTP 引导后不会与客户电路板#39连接

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588843/tms320c6678-ether-does-not-link-up-after-tftp-boot-with-customer-s-board

器件型号:TMS320C6678

大家好、

我们的客户构建了自己的原型板、并且一直面临一个问题、即 TFTP 引导后以太网无法连接。
它们的 TFTP 引导似乎可以与 TI 的 EVM 正常配合使用。
如果 TI 能提供解决此问题的检查点、我们将不胜感激。

其电路板与 EVM 之间的差异如下:

EVM: (TFTP 引导工作正常)
   DIP 软件设置:BM_GPIO_I
   DSP GPIO 输入:DSP_GPIO_o
   Verilog 代码:(DIP 软件设置--> DSP GPIO 输入)
 是否分配 FORCE_BOOTMODE [13:1]=(BM_GPIO_I[6:5]=2'b00 & BM_GPIO_i[3:1]=3'b000)? BM_GPIO_I[13:1]:13'h405;//20110219
 分配 DSP_GPIO_={BM_GPIO_i[15:14]、FORCE_BOOTMODE[13:1]、BM_GPIO_i[0]}; //20110219

   注意:(BM_GPIO_i[6:5]=2'b00 && BM_GPIO_i[3:1]=3'b000)
   如果没有 BOO  
         true、BM_GPIO_I[13:1]被忽略。
         false、 13'h405 I2C 引导。  
 步骤:
 (1) I2C 引导。  DEVSTAT 寄存器= DSP GPIO 输入不等于 DSP SW 设置。
 (2)初始化
 (3) DEVSTAT 寄存器= DIP SW 设置。
 (4)调用 main 函数。
 (5)设置 DEVSTART 后的 TFTP 引导。  以太网工作正常。


他们自己的电路板:
  DSP GIIO 输入= DIP 软件设置。

 步骤:
 (1) I2C 引导。 DEVSTART 寄存器= DSP GPIO 输入= DIP 软件设置。  将在明天检查 DEVSTAT 的值。
 (2)初始化
 (3) DEVSTART 寄存器= DIP 软件设置。 (通过修改 IBL 可跳过此过程。)
 (4)调用 main 函数。
 (5)设置 DEVSTART 后的 TFTP 引导。  以太网未连接。  

非常感谢您的支持。

此致、
Hitoshi Sugawara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已将其转发给设计团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan、您好!

    以下是我们的更新:

    借助 TI 的 EVM:
    -已确认在通过 IBL 下载应用程序映像后,它工作正常。
    [结果] I2C 引导完成。 TFTP 引导工作正常。 SMGII 链路已启动、数据包传输工作正常。

    -应用程序从 JTAG 下载并检查其运行情况。
    仿真器已连接(CCS Connect)、运行 GEL 初始化。
    应用程序通过 JTAG 下载到 DSP。

    a.未选择引导:
    [结果]链路已启动、数据包传输工作正常。
    b. RBL 引导。
    [结果]链路已启动、数据包传输工作正常。

    客户电路板:
    -已确认在通过 IBL 下载应用程序映像后,该映像不起作用。
    [结果] I2C 引导完成。 他们不确定 TFTP 引导是否正常工作。 SMGII 链路未启动。

    -应用程序从 JTAG 下载并检查其运行情况。
    仿真器已连接(CCS Connect)、运行 GEL 初始化。
    应用程序通过 JTAG 下载到 DSP。

    a.未选择引导:
    [结果]链路未启动。 未配置数据包传输。

    b. RBL 引导。 程序似乎一直在运行、BootP 数据包会定期发出。
    [结果]链路已启动、但其数据包传输不好。


    其他检查点包括:
    他们的电路板基于 TI 的 EVM 而设计。 但它没有 Xilinx 制造的 FPGA XC35200AN。
    MAC1的使用与 EVM 相同。
    TFTP 引导在其主板上仍然无法正常工作。
    硬件差异是 DSP 不直接连接到 PHY。 FPGA 位于两者之间。
    DSP⇔FPGA⇔PHY。 FPGA 插入到中间。
    3. DEVSTAT 值为0000 1000 0100 1010。
    时钟:已测试1.25GHz 和1GHz、但其系统未连接。 目标时钟速度为1.25GHz。
    状态寄存器显示0x30或0x38。 保留位被置位。 链路建立为0。
    6.软件修改:他们的电路板没有 FPGA,因此从 IBL 中删除了它的控制功能。
    IblEnterRom()已删除。

    非常感谢您花时间进行检查。
    此致、

    Hitoshi Sugawara

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!

    客户更新了。
    当它们像 RBL 那样将 IBL 修改为 bow 后、链路就会启动。

    ・SGMII_SERDES_CFGPLL 0x00000041 (MPY=8x)⇒0x00000051 (MPY=10x)
    ・MAINPLLCTL0 1000MHz⇒500MHz
    ・PASSPLLCTL0 1050MHz⇒420MHz

    这三个更改对于链路连接是必需的。
    请告诉我们 SGMII_SERDES_CFGPLL 的含义。

    谢谢、此致、
    Hitoshi Sugawara
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、
    根据客户的说法、在修改 IBL 后、它会按预期与自己的电路板连接、如下所示:
    ・SGMII_SERDES_CFGPLL 0x00000041 (MPY=8x)⇒0x00000051 (MPY=10x)
    ・MAINPLLCTL0 1000MHz⇒500MHz
    ・PASSPLLCTL0 1050MHz⇒420MHz

    您能否告诉我为什么设置 SGMII_SERDES_CFGPLL 有效?

    www.ti.com/lit/SPRUGV9 KeyStone 架构千兆位以太网(GbE)交换子系统
    第196页
    REFCLK = LINERATE * RESCALE/MPY
    ※REFCLK :SGMII CLK
    LINERATE:核心 CLK
    表3-172
    MPY :表3-173 SGMII SerDes PLL 乘法模式

    SGMII_SERDES_CFGPLL.MPY
    表3-172额定刻度值
    完全 :Ratescale = 0.5
    一半 :Ratescale = 1
    四分之一 :Ratescale = 2
    三十秒:Ratescale = 16.

    使用客户的电路板:
    RATESCALE =(REFCLK * MPY)/ LINERATE
    =(250 * 10)/ 1250
    = 2
    表3-172中的※四分之一
    和 C6678EVM
    RATESCALE =(REFCLK * MPY)/ LINERATE
    =(312.5* 8)/ 1000
    = 2.5
    ※2.5的值不在表3-172中

    其他问题:
    1) 1) REFCLK 是输出还是输入时钟?
    2) 2) DSP 似乎必须首先传输数据包才能开始通信。 是这样吗?
    3) 3)如果 MAC 地址未在 SGMII 的 L2 SW ARP 表中注册(如果是 DSP 中的模块)、它是否不传输任何数据包?
    我是对的吗?

    感谢您的检查。
    此致、
    Hitoshi Sugawara
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    1)对于 TI 6678 EVM、SGMII 的参考时钟为312.5MHz、MPY = 8、RATescale = 2 (来自 SGMII_SERDES_CFGRX/TX 位5:4)、LINERATE = 1250MHz、这是正确的。 请注意、对于 SGMII 1Gbps、线速率为1.25GHz、而不是1.00GHz。

    对于客户电路板、如果参考时钟为250MHz、则 MPY = 10、ratescale = 2、LINERATE = 250 * 10 /2 = 1250。 这是正确的配置。

    2) 2) MAINPLLCTL0、这用于主 PLL、C6678可以在1000MHz 下运行、我认为您无需将其更改为500MHz 即可使 SGMII 正常工作。

    3) PASSPLLCTL0、PA 可在1050MHz 下运行、无需将其更改为420MHz 即可使 SGMII 正常工作。

    4) REFCLK 由晶振输出、用作 SGMII 的输入。

    5)在 TFTP 引导模式下,DSP 在加电(到 TFTP 服务器)时以固定间隔生成 BOOTP 数据包,以启动 TFTP 传输

    6) 6)上电时始终传输数据包。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    所有回答都已发送给客户、并将很快通知您他们的答案。
    非常感谢您的支持。
    此致、
    Hitoshi Sugawara
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hitosi-San、

    此问题是否已解决?  Eric 似乎提供了所需的验证。  由于客户能够通过 CCS 加载程序使其正常工作、因此为 SEEPROM 创建的中间引导加载程序似乎存在问题。  ROM 引导加载程序不支持 TFTP 引导、该引导通过 I2C SEEPROM 中的 IBL 启用。

    Tom