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.

[参考译文] AM3354:视频崩溃

Guru**** 2616675 points

Other Parts Discussed in Thread: AM3354, AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/580047/am3354-video-crash

器件型号:AM3354
主题中讨论的其他器件: AM3358

您好!

我们正在设计基于 AM3354和 Linux 的定制硬件。

一切都进展顺利、直到我们尝试显示视频。  

Linux 内核在任何地方崩溃。 它看起来像是改变了 DDR 并使软件崩溃。

一种“解决”问题的方法是将 LCD_DATA (0、1、3、4、5)多路复用为 GPIO (而不是 LCD_DATA)。 它改变了颜色、但工作正常。

我们曾考虑过 LCD 总线和 DDR 之间的串扰或耦合等问题、但在对电路板的这一部分进行布线之后、我们会遇到完全相同的问题。

我们尝试移除 LVDS 收发器、因此 LCD 总线仅加载启动配置电阻器、但我们遇到了相同的问题。

 

LCD 和 DDR 上的布线长度受大小控制。

我们应用 Exel 文件来配置 DDR 寄存器。

我正在寻找新的想法以推动发展。

感谢您的帮助、

BR、

Olivier

 

CPU: AM3354ZCZ

DDR: MT41K512M16HA-125

Linux 4.1.18、Yocto 1.8.2

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用 DDR3、还需要执行软件矫正: processors.wiki.ti.com/.../AM335x_DDR_PHY_register_configuration_for_DDR3_using_Software_Leveling
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    我们正在尝试、我将与您保持联系、谢谢、

    此致、

    Olivier。

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

    我们重新分析所有寄存器并执行软件调平、情况更好、但我们的测试(QT_CinematicExperience -平台 eglfs)在2到10分钟后仍然崩溃。

    我们将 DDR3周期从400MHz 减慢至303MHz。

    RD DQS 0x3D
    FIFO We 0x9d
    WR DQS 0x46
    WR 数据0x7E

    TIM1 0x0888A39B
    TIT2 0x266D7FDA
    TIM3 0x501F86AF
    CFG 0x62C053B2
    CTRL 0x00100007/0x00100008

    根据您的经验、它看起来更像是路由、还是配置寄存器?

    感谢您的帮助、

    此致、

    Olivier。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    配置 EMIF 后是否运行了内存测试? 有关详细信息、请参阅 processors.wiki.ti.com/.../Sitara_Linux_Training:_Tuning_the_DDR3_Timings_on_BeagleBoneBlack。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是 的、结果看起来不错(见下文)。  

    我们只需更改 DDR PLL、即可将频率降低至266MHz、这似乎也更好(此时无故障...)。

    CortxA8:输出:**** AM3358_SK 初始化正在进行中..........

    CortxA8:输出:**** AM335x OPP =OPP100的所有 PLL 配置正在进行中........

    CortxA8:输出:从 SYSBOOT[15:14]读取输入时钟: 24MHz

    CortxA8:输出:**** 将绕过...

    CortxA8:输出:**** 已绕过,正在更改值...

    CortxA8:输出:**** 锁定臂 PLL

    CortxA8:输出:**** 内核被绕过

    CortxA8:输出:**** 现在锁定内核...

    CortxA8:输出:**** 内核已锁定

    CortxA8:输出:**** DDR DPLL 已旁路

    CortxA8:输出:**** DDR DPLL 锁定

    CortxA8:输出:**** 每个 DPLL 被旁路

    CortxA8:输出:**** 每个 DPLL 被锁定

    CortxA8:输出:**** DISP PLL 配置正在进行中..........

    CortxA8:输出:**** DISP PLL 配置完成........

    CortxA8:输出:**** 针对 OPP =OPP100的 AM335x 所有 ADPLL 配置完成.........

    CortxA8:输出:**** AM335x DDR3 EMIF 和 PHY 配置正在进行中...

    CortxA8:输出:EMIF PRCM 正在进行中........

    CortxA8:输出:EMIF PRCM 完成

    CortxA8:输出:正在进行 DDR PHY 配置

    CortxA8:输出:正在等待 VTP 就绪..........

    CortxA8:输出:VTP 已就绪!

    CortxA8:输出:DDR PHY CMD0寄存器配置正在进行中..........

    CortxA8:输出:DDR PHY CMD1寄存器配置正在进行中..........

    CortxA8:输出:DDR PHY CMT2寄存器配置正在进行中..........

    CortxA8:输出:DDR PHY DATA0寄存器配置正在进行中..........

    CortxA8:输出:DDR PHY Data1寄存器配置正在进行中..........

    CortxA8:输出:设置 IO 控制寄存器……

    CortxA8:输出:EMIF 定时寄存器配置正在进行中........

    CortxA8:输出:EMIF 定时寄存器配置完成.........

    CortxA8:输出:PHY 已就绪!!

    CortxA8:输出:DDR PHY 配置完成

    CortxA8:输出:**** AM3358_SK 初始化完成

    CortxA8:GEL 输出:

    此 EDMA 测试包含8项测试。

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:写入从@0x40300000开始完成

    CortxA8:GEL 输出:

    测试1.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000000的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000000的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000000的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000000的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试2.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:QUEPRI 0x00000001的 EDMA 传输开始

    CortxA8:GEL 输出:QUEPRI 0x00000001的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:QUEPRI 0x00000001的 EDMA 传输开始

    CortxA8:GEL 输出:QUEPRI 0x00000001的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试3.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000002的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000002的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000002的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000002的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试4.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000003的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000003的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000003的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000003的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试5.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000004的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000004的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000004的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000004的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试6.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000005的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000005的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000005的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000005的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试7.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000006的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000006的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000006的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000006的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:

    测试8.

    CortxA8:GEL 输出:写入从@0x8000000开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000007的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000007的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x40300000时通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:写入从@0x40300800开始完成

    CortxA8:GEL 输出:针对 QUEPRI 0x00000007的 EDMA 传输开始

    CortxA8:GEL 输出:针对 QUEPRI 0x00000007的 EDMA 传输完成

    CortxA8:GEL 输出:目标地址=0x80000800通过测试用例

    CortxA8:GEL 输出:

    CortxA8:GEL 输出:测试完成

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、这表明 DDR3正在正常运行。 我建议您将注意力集中在视频软件上-检查内存泄漏、CPU 负载、这种情况...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    DDR3的最小时钟频率为303MHz、266MHz 时的使用超出了规格。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该软件只是 QT 示例(QT_CinematicExperience -platform eglfs)。

    好的、对于266MHz、我将进行检查。

    感谢您的支持、

    Olivier。