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/AM3354:处理器 SDK 03.02.00.05上的 SGX PVR 驱动程序崩溃

Guru**** 2553420 points
Other Parts Discussed in Thread: AM3354

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/743480/linux-am3354-crash-of-sgx-pvr-driver-on-processor-sdk-03-02-00-05

器件型号:AM3354

工具/软件:Linux

你(们)好

   我们有一款在 AM3354 +处理器 SDK 03.02.00.05上运行的产品

  最近,我遇到了以下错误日志的问题:

| |_ |____  ___| _ |_|_ _||_
|||_|.'|     。 |. ||_|    _|. |||-_| _| _|
||||||||、||  |||| ||||||||||||________________||  
             |____|                   |_|            

Arago 项目 http://arago-project.org AM335x-EVM ttyO0

Arago 2016.10 AM335x-EVM ttyO0

AM335x-EVM 登录:random:非阻塞池已初始化
cpsw 4a100000以太网 eth0:链路向上- 100Mbps/全-流控制关闭
IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
CAN:控制器局域网内核(修订版20120528 ABI 9)
NET:注册协议系列29
CAN:原始协议(修订版20120528)
PVR_K:(错误):SGXOSTimer () Detected SGX locked (0x218a 任务)
PVR_K:HWRecoveryResetSGX:触发 SGX 硬件恢复
PVR_K:SGX 调试(SGX_DDK sgxddk main@3699939)
PVR_K:(错误):SGX 寄存器基址(线性):  0xe0c60000
PVR_K:(错误):SGX 寄存器基址(物理):0x56000000
PVR_K:运行 SGXREG 调试脚本:
PVR_K:(P0)
PVR_K: (SGXREG) 0x00000000:0x00222220
PVR_K: (SGXREG) 0x00000004:0x00101100
PVR_K: (SGXREG) 0x00000118:0x00000010
PVR_K: (SGXREG) 0x0000012C:0x20000000
PVR_K: (SGXREG) 0x000004E0:0x00000000
PVR_K: (SGXREG) 0x000004E4:0x00000000
PVR_K: (SGXREG) 0x00000658:0x00000000
PVR_K: (SGXREG) 0x00000A74:0x09BF8200
PVR_K: (SGXREG) 0x00000C04:0x00004002
PVR_K: (SGXREG) 0x00000C08:0x00224000
PVR_K: (SGXREG) 0x00000E04:0x00000000
PVR_K: (SGXREG) 0x00000624:0x00000200
PVR_K: (SGXREG) 0x00000628:0x000103ED
PVR_K: (SGXREG) 0x00000630:0x00000005
PVR_K: (SGXREG) 0x00000734:0x00000000
PVR_K: (SGXREG) 0x00000AA4:0xAAAAAAAAAA
PVR_K: (SGXREG) 0x00000AA8:0xAAAAAAAAAA
PVR_K: (SGXREG) 0x00000B08:0x000142A0
PVR_K: (SGXREG) 0x00000B14:0x00010A3A
PVR_K: (SGXREG) 0x00000B0C:0x00008907
PVR_K: (SGXREG) 0x00000B18:0x0000212C
PVR_K: (SGXREG) 0x00000B10:0x0001218A
PVR_K: (SGXREG) 0x00000B1C:0x00010000
PVR_K:SGX 寄存器转储:
PVR_K:(P0) EUR _CR_CORE_ID:         01120000
PVR_K:(P0) EUR_CR_CORE_REVISION:   00010205
PVR_K:(P0) EUR _CR_EVENT_STATUS:    20000000
PVR_K:(P0) EUR _CR_EVENT_STATUS2:   00000010
PVR_K:(P0) EUR_CR_BIF_CTRL:        00000000
PVR_K:(P0) EUR_CR_BIF_INT_STAT:    00004002
PVR_K:(P0) EUR_CR_BIF_FAULT:       00224000
PVR_K:(P0) EUR_CR_BIF_MEM_REQ_STAT:00000000
PVR_K:(P0) EUR_CR_CLKGATECTL:      00222220
PVR_K:(P0) EUR_CR_PDD_PC_BASE:     00302A0C
PVR_K:找到页面故障0x00224000的 MMU 上下文
PVR_K:GPU 存储器上下文用于 PID=443 (显示)
PVR_K:PDE 有效:Pte = 0x00000000 (PhysAddr = 0x00000000、无效)
PVR_K: 主机 CTL 标志= 00000006
PVR_K:SGX 主机控制:
PVR_K: (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
PVR_K: (HC-10) 0x00000000 0x00000001 0x0000000A 0x00030D40
PVR_K: (HC-20) 0x00000000 0x00000000 0x00000001 0x00000000
PVR_K: (HC-30) 0x00000000 0x03ACA371 0xEF1E40D0 0x00000000
PVR_K: (HC-40) 0x00000000 0x00000000 0x01AF6E21 0x00000000
PVR_K:SGX TA/3D 控制:
PVR_K: (T3C-0) 0x0F003000 0x0F003140 0x0F002000 0x00000000
PVR_K: (T3C-10) 0x00000000 0x00000000 0x00000002 0x00000000
PVR_K: (T3C-20) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-80) 0x00000000 0x00000000 0x0F00AF60 0x0F000000
PVR_K: (T3C-90) 0x9B366000 0x0F090880 0x0F00AF60 0x0F08B920
PVR_K: (T3C-A0) 0x0F00AEA0 0x0F00AFA4 0x0F08B920 0x00000000
PVR_K: (T3C-B0) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-C0) 0x00000000 0x00000000 0x002BF841 0x002BF840
PVR_K: (T3C-D0) 0x0F000000 0x8000B000 0x8004B000 0x0F004000
PVR_K: (T3C-E0) 0x0F00A420 0x0F00A740 0x0F08B000 0x0F08B000
PVR_K: (T3C-F0) 0x00000000 0x000001BB 0x000001BB 0x00000000
PVR_K: (T3C-100) 0x00000003 0x00000000 0x00000000 0x00000001
PVR_K: (T3C-110) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K: (T3C-120) 0x0F00AEA0 0x0F090880 0x00000000 0x00000000
PVR_K:SGX 内核 CCB WO:0x74 RO:0x74
PVR_K:活动同步
PVR_K: SyncInfo 5:
PVR_K:         写入操作(0x0d8010cc):P/C = 960534/960533 (0x000ea816/0x000ea815)
PVR_K:         读取操作(0x0d8010d4):P/C = 0/0 (0x00000000/0x00000000)
PVR_K:         读取操作2 (0x0d8010dc):P/C = 0/0 (0x00000000/0x00000000)
PVR_K: SyncInfo 2:
PVR_K:         写入操作(0x0d801054):P/C = 66/66 (0x00000042/0x00000042)
PVR_K:         读取操作(0x0d80105c):P/C = 2881613/2881612 (0x002bf84d/0x002bf84c)
PVR_K:         读取操作数2 (0x0d801064):P/C = 0/0 (0x00000000/0x00000000)
PVR_K: SyncInfo 0:
PVR_K:         写入操作(0x0d801004):P/C = 2881613/2881612 (0x002bf84d/0x002bf84c)
PVR_K:         读取操作(0x0d80100c):P/C = 0/0 (0x00000000/0x00000000)
PVR_K:         读取操作数2 (0x0d801014):P/C = 0/0 (0x00000000/0x00000000)

 但是、Qt5应用程序正常运行。

有人能告诉我这里有什么问题吗? 这些 PVR_K 错误意味着什么?

谢谢

信标

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

    如日志所示、PVR_K 错误表示 SGX 已崩溃、内核正在尝试重置 SGX。 您能否分享您运行 Qt5应用程序的步骤? 您的应用是否使用 SGX?

    此致、
    Krunal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,Krunal
    是的、我们的应用程序正在使用 SGX (eglfs)并在 Qt5.6.2上运行

    以下是步骤:


    导出 QTDIR =/usr/lib
    导出 LD_LIBRARY_PATH=$QTDIR/
    导出 QT_QPA_platform=eglfs:/dev/fb0
    导出 QT_QPA_EVDEV_keyboard_parameters="/dev/input/event0
    导出 QT_QPA_FONTDIR=$QTDIR/字体
    导出 QT_PLUGIN_PATH=$QTDIR/qt5/plugins

    #启动应用程序

    CD /home/application
    ./application >>/var/bk/log_dsp.txt 2>&1 &
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Semiyd、

    您是否在运行 TI 提供的默认 QT 示例时观察到任何崩溃? 我可以运行位于/usr/share/qt5/examples/opengl/hellogl2下的"hellogl2"示例、而不会出现任何问题。

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

    您好 Krunal:

        是的、我在开发期间运行了许多 TI 演示。

        碰撞是一种罕见的情况。 我们的应用程序每天都运行良好。 就像演示一样。

        但有时会发生这种崩溃。

        我只是想知道:

        可以从崩溃日志中提取哪些详细信息?

        以及可能触发此崩溃的可能性是什么。

       以便我们可以针对它采取一些措施。

    谢谢

    信标

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

    semiyd、

    您能否尝试在 TI 开发板(如 AM335x EVM)上运行您的应用?  首先、我将使用 SDK 3.02中的二进制文件:

    http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/03_02_00_05/index_FDS.html

    如果您可以在 TI EVM 上重现此问题、则表明存在软件问题。  在这种情况下、我们可以在同一 EVM 上使用较新的 SDK、看看问题是否仍然存在。  这至少会让您对升级是否有助于解决此问题有信心。

    另一方面、如果您无法在 TI EVM 上重现此问题、则可能会导致硬件问题。  在这种情况下、我们可能需要查看 VDD_CORE 的稳定性和/或是否存在非常细微的 DDR 问题。  您的所有电路板是否经常出现此问题、或者是否只有某些电路板似乎存在此问题?

    此致、
    Brad

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

    您好 Brad:

        感谢您的详细建议!

        我认为这个主题没有更新、所以我已经有很长一段时间没检查过了...今天就看到了您的回复。

        到目前为止、我们仅在一个电路板上经历过一次这种现象。 这意味着它很少发生。

        我有一个 TI 的小型 AM335x EVM。

        我将让我们的测试团队在 TI EVM 上运行我们自己的应用程序、看看是否会出现问题...

    此致

    信标

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

    SGX 锁定也可能会因内存损坏或任何其他系统问题而发生。 由于 SGX 驱动程序是详细的、因此它会打印错误。 系统中可能还有其他 IP、这些 IP 也可能无法正常运行、但可能不会出现打印错误。 我还建议在电路板上进行 DDR 测试。

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

    谢谢你,Manisha

    我检查了、似乎我们已经完成了 DDR 测试、包括:

    CCS IDE 中的 TI EDMA 测试

    Linux 启动并运行后的 memtest 应用程序测试

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Semiyd、您好、如前所述、系统中可能存在内存损坏等其他问题、也可能是与电源相关的问题或其他问题。 您需要首先确定这是硬件问题(通常仅在某些电路板上发生)还是软件问题、然后从那里获取。