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.

[参考译文] Linux/TMS320DM8148:低温

Guru**** 2595770 points
Other Parts Discussed in Thread: TMS320DM8148

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639641/linux-tms320dm8148-cold-temperature

器件型号:TMS320DM8148

工具/软件:Linux

您好!

 我对基于 TMS320DM8148处理器的客户应用有疑问、我们注意到在尝试从冷温度启动启用 PCI 的内核 Linux (CONFIG_PCI=Y)时出现了问题。

软件在处挂起

while (!(omap_ctrl_readl(TI814X_CONTROL_PCIE_PLLSTATUS) & 0x1))

    cpu_relax();

在文件 Linux-OMAP3/arch/arm/mach-omap2/devices.c 中、等待 PCIe PLL 的锁定。

导致此问题的温度可能因每个模块而异、从环境温度降至0°C (此 P/N 的限制温度)。

如果我们保持模块通电、它会在几分钟后发生预热并启动、如果达到的温度足够高。

该模块使用20MHz 晶体振荡器计时、SERDES 信号使用提供100MHz 源的 CDCM61002RHBx 芯片计时。

您能帮助我们了解哪些因素会导致此问题吗?

谢谢

Umberto

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

    尊敬的 Umberto:

    我知道这是硬件问题、但您能否尝试以下 e2e 帖子中描述的软件方法? 请分享结果。

    e2e.ti.com/.../426001

    还请确保使用外部100MHz 差分时钟源(SerDes_clkp/n)引脚为 PCIe 及其嵌入式 PLL (PCIe_PLLCFG0[31] SEL_IN_FREQ = 0)供电

    此致、
    帕维尔

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

    关于硬件侧、请查看以下指针:


    您可以观察 clkout0/1引脚上的 PCIe PLL 时钟、以比较工作情况和非工作情况:

    CLKOUT_MUX[19:16] CLKOUT1_MUX = 0x2 -源是 PCIe SERDES OBS CLK
    CLKOUT_MUX[3:0] CLKOUT0_MUX = 0x2 -源是 PCIe SERDES OBS CLK

    另请参见 DM814xx 器件勘误表、Advisory 3.0.71 ROMCODE:PCIe 引导不稳定

    您还可以尝试使用 PCIe 诊断软件。 此 CCS 测试应用验证了电路板上的 PCIe 传输和接收数据的能力。 测试代码位于 PG2.1_DM814X_20Mhz、SI.GEL 中
    www.mistralsolutions.com/pes-support/support-downloads/tmdxevm8148.html#

    检查 VDDA_PCIe_1P8电源引脚是否具有稳定的1.8V 电压
    检查 SERDES_CLKP 和 SERDES CLKN 时钟引脚是否稳定为100MHz、您可以导出到 CLKOUT0/1引脚并使用示波器进行测量

    确保符合以下 PCIe 要求:

    DM814x 数据表、第7.4.2节 SERDES_CLKN/P 输入时钟、8.17.2 PCIe 电气数据/时序和8.17.3 PCIe 设计和布局指南


    关于热管理、请参阅以下指针:

    www.ti.com/.../spra953c.pdf

    processors.wiki.ti.com/.../AM335x_Thermal_Considerations
    processors.wiki.ti.com/.../DM814x_AM387x_Power_Estimation

    此致、
    帕维尔

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

       您好!

    关于您的建议、请参阅以下评论:

     e2e.ti.com/.../426001

    通过建议的修改测试不能冷运行的模块、并连接到调试器(在系统停止后)以读取寄存器状态、我们可以看到引导被阻止、其值为:
    PCIe_PLLSTATUS 0000E004
    并且可以通过以下方式解除阻止:
    PCIe_PLLSTATUS 0000E8CD
     

    从硬件的角度来看:

     

    您可以观察 clkout0/1引脚上的 PCIe PLL 时钟、以比较工作板和非工作板:

    CLKOUT_MUX[19:16] CLKOUT1_MUX = 0x2 -源是 PCIe SERDES OBS CLK
    CLKOUT_MUX[3:0] CLKOUT0_MUX = 0x2 -源是 PCIe SERDES OBS CLK

    Clkout 引脚设置为工作模块中的引脚、但 设置 PCIe SERDES 时不会生成任何 Ck。

    SATA 和其他时钟是正确的。


    另请参见 DM814xx 器件勘误表、Advisory 3.0.71 ROMCODE:PCIe 引导不稳定

    未 使用 PCIe Boot
     


    您还可以尝试使用 PCIe 诊断软件。 此 CCS 测试应用验证了电路板上的 PCIe 传输和接收数据的能力。 测试代码位于 PG2.1_DM814X_20Mhz、SI.GEL 中
    www.mistralsolutions.com/pes-support/support-downloads/tmdxevm8148.html#

     我们还开始执行此测试。


    检查 VDDA_PCIe_1P8电源引脚是否具有稳定的1.8V 电压

    该电压正常。

    检查 SERDES_CLKP 和 SERDES CLKN 时钟引脚是否稳定为100MHz、您可以导出到 CLKOUT0/1引脚并使用示波器进行测量

    100MHz 时钟信号与热和工作单元一起存在  、如" SERDES CHECT.png"中所示
    在器件冷却至0°C 时、100Mhz 时钟消失(" SERDES 检查 COLD.png")。
    在温度升高之前、时钟不存在、而与 引导 正常与否无关。
    如果块正在发生并且系统继续引导 (退出 while)、则时钟会再次出现。
    但时钟并非恰好 为100MHz。
    该板是一个插件模块、如果它单独运行、则时钟在100mH 时正常工作、如 "SERDES_CHECK_NOModule.png"中所示(未终止、+和-之间存在一些不平衡)。


    确保符合以下 PCIe 要求:

    DM814x 数据表、第7.4.2节 SERDES_CLKN/P 输入时钟、8.17.2 PCIe 电气数据/时序和8.17.3 PCIe 设计和布局指南

    7.4.2 SERDES_CLKN/P 输入时钟

      • CK 发生器不靠近微处理器并通过连接器
      • 时钟 在交流电中正确耦合

    8.17.2 PCIe
     我们是合规的。

    8.17.3 PCIe
    如上所述,但由于连接器时钟信号质量下降 ,但总线工作正常
     
     



    关于热管理、请参阅以下指针:

    www.ti.com/.../spra953c.pdf

    processors.wiki.ti.com/.../AM335x_Thermal_Considerations
    processors.wiki.ti.com/.../DM814x_AM387x_Power_Estimation

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

    [引用用户="Umberto Frangi"]

    检查 SERDES_CLKP 和 SERDES CLKN 时钟引脚是否稳定为100MHz、您可以导出到 CLKOUT0/1引脚并使用示波器进行测量

    100MHz 时钟信号与热和工作单元一起存在  、如" SERDES CHECT.png"中所示
    在器件冷却至0°C 时、100Mhz 时钟消失(" SERDES 检查 COLD.png")。
    在温度升高之前、时钟不存在、而与 引导 正常与否无关。

    [/报价]

    我认为这是根本原因。 您应该研究在低温下 SERDES_CLKP/N 差分引脚不能正常工作的原因。

    此致、
    帕维尔

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

    Pavel、

     根据上述说明、我了解到 CLKOUT 不是在 COLD 时生成的、  并且当 PCI 被置位时、SERDES_CLK 也不存在。

    谢谢

    Umberto

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

    您好、Pavel、

     你有答案吗?

    谢谢

    Umberto

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

    回答什么? 我在你上次的答覆中没有看到任何待决的问题。 我再次浏览 e2e 主题、您的所有问题都会得到解答。

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

    Pavel、

     问题是:

    如果 CLKOUT 不是在 COLD 时生成的(这是我从客户描述中理解的)、当 PCI 被置位时、是否可以生成 SERDES 时钟?

    如果是这种情况、可能的原因、质量问题或任何应用约束是什么?

    谢谢

    Umberto

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

    翁贝托

    [引用 user="Umberto Frangi"---如果 CLKOUT 不是在冷时生成的(这是我从客户描述中了解的内容),在设置 PCI 时是否可以生成 SERDES 时钟?

    不生成 CLKOUT、因为 SERDES 引脚上可能没有时钟信号。 您应该检查 SERDES 引脚、AF1和 af2上的示波器。 如果100MHz 差分时钟在低温时停止、问题可能出在 CDCM61002RHB 芯片中、该芯片正在停止向 DM814x SERDES 引脚(AF1和 af2)提供该100Mhz 时钟。 使用示波器测量 CDCM61002RHB 芯片100Mhz 输出引脚也很好(如果可能)。

    总之、使用两侧的示波器检查100Mhz 信号(DM814x 输入和 CDCM61002RHB 输出)。

    如果问题出在 CDCM61002RHB 芯片上、则应在以下论坛中提出/发布问题:

    对于 DM814x PCIe、外部100MHz SERDES 时钟是必须的、您只能将内部时钟用于 SATA、而不能用于 PCIe。

    此致、
    帕维尔