AM335X / AM437X 的SGX driver在没有SGX的型号上加载的时候会出现一些错误信息。
=====================
[ 42.981452] CPU: 0 PID: 194 Comm: rmmod Tainted: G W O 4.1.18 #1
[ 42.988815] Hardware name: Generic AM43 (Flattened Device Tree)
[ 42.995075] Backtrace:
[ 42.997695] [<c0012ba0>] (dump_backtrace) from [<c0012dc0>] (show_stack+0x18/0x1c)
[ 43.005703] r7:c07ece04 r6:000008a4 r5:00000009 r4:00000000
[ 43.011735] [<c0012da8>] (show_stack) from [<c0640c28>] (dump_stack+0x20/0x28)
[ 43.019392] [<c0640c08>] (dump_stack) from [<c0038448>] (warn_slowpath_common+0x7c/0xb4)
[ 43.027963] [<c00383cc>] (warn_slowpath_common) from [<c00384b8>] (warn_slowpath_fmt+0x38/0x40)
[ 43.037166] r8:00000000 r7:0000000c r6:c00273d8 r5:00000000 r4:c07ed050
[ 43.044298] [<c0038484>] (warn_slowpath_fmt) from [<c00256a0>] (_idle+0x238/0x254)
[ 43.052304] r3:c07ef1d4 r2:c07ed050
[ 43.056094] r4:c08f1f40
[ 43.058785] [<c0025468>] (_idle) from [<c0025c84>] (omap_hwmod_idle+0x38/0x8c)
[ 43.066424] r5:ddd114c0 r4:a0070013
[ 43.070227] [<c0025c4c>] (omap_hwmod_idle) from [<c0027398>] (omap_device_idle+0x40/0x80)
[ 43.078878] r5:ddd114c0 r4:00000000
[ 43.082676] [<c0027358>] (omap_device_idle) from [<c00273fc>] (_od_runtime_suspend+0x24/0x2c)
[ 43.091695] r5:ddd13010 r4:00000000
[ 43.095503] [<c00273d8>] (_od_runtime_suspend) from [<c040a3f8>] (__rpm_callback+0x58/0x8c)
[ 43.104339] r5:c00273d8 r4:ddd13010
[ 43.108135] [<c040a3a0>] (__rpm_callback) from [<c040a454>] (rpm_callback+0x28/0x88)
[ 43.116327] r5:ddd13010 r4:ddd13010
[ 43.120128] [<c040a42c>] (rpm_callback) from [<c040aa60>] (rpm_suspend+0xe8/0x580)
[ 43.128135] r5:cfeb4000 r4:ddd13010
[ 43.131935] [<c040a978>] (rpm_suspend) from [<c040b10c>] (rpm_idle+0x11c/0x124)
[ 43.139668] r10:00000000 r9:cfeb4000 r8:c000fa44 r7:00000004 r6:00000000 r5:ddd13010
[ 43.147989] r4:00000000
[ 43.150679] [<c040aff0>] (rpm_idle) from [<c040b170>] (__pm_runtime_idle+0x5c/0xa4)
[ 43.158780] r7:ddd13044 r6:bf052a7c r5:00000000 r4:60070013
[ 43.164973] [<c040b114>] (__pm_runtime_idle) from [<bf0189a0>] (DisableSGXClocks+0x3c/0x80 [pvrsrvkm])
[ 43.174822] r5:00000000 r4:bf052ae8
[ 43.178814] [<bf018964>] (DisableSGXClocks [pvrsrvkm]) from [<bf018a3c>] (DisableSystemClocks+0x10/0x14 [pvrsrvkm])
[ 43.189859] r4:bf052a7c
[ 43.192724] [<bf018a2c>] (DisableSystemClocks [pvrsrvkm]) from [<bf017f34>] (SysDeinitialise+0x17c/0x21c [pvrsrvkm])
[ 43.204007] [<bf017db8>] (SysDeinitialise [pvrsrvkm]) from [<bf003fa8>] (PVRCore_Cleanup+0x18/0x34 [pvrsrvkm])
[ 43.214588] r7:ddd13044 r6:bf031e1c r5:d5f2f400 r4:d5f2f400
[ 43.220766] [<bf003f90>] (PVRCore_Cleanup [pvrsrvkm]) from [<bf024c4c>] (PVRSRVDrmUnload+0x10/0x18 [pvrsrvkm])
[ 43.231463] [<bf024c3c>] (PVRSRVDrmUnload [pvrsrvkm]) from [<c03d0c58>] (drm_dev_unregister+0x2c/0xa0)
[ 43.241317] [<c03d0c2c>] (drm_dev_unregister) from [<c03d0eec>] (drm_put_dev+0x30/0x68)
[ 43.249783] r7:ddd13044 r6:bf031e1c r5:ddd13000 r4:d5f2f400
[ 43.255902] [<c03d0ebc>] (drm_put_dev) from [<bf024b84>] (PVRSRVDrmRemove+0x20/0x6c [pvrsrvkm])
[ 43.265106] r5:ddd13000 r4:c08f30fc
[ 43.269009] [<bf024b64>] (PVRSRVDrmRemove [pvrsrvkm]) from [<c0403cfc>] (platform_drv_remove+0x20/0x38)
[ 43.278947] r5:bf031e1c r4:ddd13010
[ 43.282761] [<c0403cdc>] (platform_drv_remove) from [<c0401e24>] (__device_release_driver+0x78/0xec)
[ 43.292423] r5:bf031e1c r4:ddd13010
[ 43.296223] [<c0401dac>] (__device_release_driver) from [<c0402694>] (driver_detach+0x128/0x130)
[ 43.305518] r5:cfeb4000 r4:ddd13010
[ 43.309316] [<c040256c>] (driver_detach) from [<c0401b58>] (bus_remove_driver+0x54/0xa8)
[ 43.317875] r7:00000081 r6:00000880 r5:bed83bb8 r4:bf031e1c
[ 43.323896] [<c0401b04>] (bus_remove_driver) from [<c0402cec>] (driver_unregister+0x30/0x50)
[ 43.332821] r5:bed83bb8 r4:bf031e1c
[ 43.336624] [<c0402cbc>] (driver_unregister) from [<c0403ddc>] (platform_driver_unregister+0x14/0x18)
[ 43.346379] r5:bed83bb8 r4:bf032038
[ 43.350284] [<c0403dc8>] (platform_driver_unregister) from [<bf024e2c>] (PVRSRVDrmExit+0x14/0x1c [pvrsrvkm])
[ 43.360804] [<bf024e18>] (PVRSRVDrmExit [pvrsrvkm]) from [<c0091720>] (SyS_delete_module+0x114/0x1d8)
[ 43.370575] [<c009160c>] (SyS_delete_module) from [<c000f8a0>] (ret_fast_syscall+0x0/0x3c)
[ 43.379319] r6:6d6b7672 r5:73727670 r4:0002655c
[ 43.384222] —[ end trace 93a071ee342cd9f1 ]—
=======================
请问有没有脚本可以判断AM335X 是否带有SGX,这样在系统运行的时候,检测到该型CPU不带SGX,就不加载SGX驱动,避免这样一些错误。
Jian Zhou:
芯片内部有寄存器记录版本信息,但是没有记录带不带SGX,可以在启动脚本里判断下。