Hi,
I have a
problem with the SGX Graphics Driver on AM3517.
I am using kernel version 2.6.37 from the AM35x-OMAP35x-PSP-04.02.00.07 source.
I can load the pvrsrvkm kernel module but when pvrsrvinit is executed in the init script I get the following kernel error see below.
The first warning "possible recursive locking detected" is according to the
SGXDbg doc expected and can be ignored. But then I get the fatal kernel error "Unable
to handle kernel paging request at virtual address". It seems to happen in the SGXInitialise
when executing OSWriteHWReg(psDevInfo->pvRegsBaseKM, 0xFF08, 0x80000000).
Any ideas on the error?
[ 21.398315] omap_device: omap_i2c.1: new worst case deactivate latency 0: 183105
[ 21.512298] PVR: PVRCore_Init
[ 21.527221] PVR: PVRSRVDriverProbe(pDevice=bf0563c8)
[ 21.533660] PVR: EnableSystemClocks: Enabling System Clocks
[ 21.539825] PVR: GPTIMER11 clock is 13MHz
[ 21.544097] PVR: Setting GPTIMER11 mode to posted (currently is non-posted)
[ 21.551483] PVR: OSUnMapPhysToLin: unmapping 4 bytes from fa088040
[ 21.558166] PVR: OSUnMapPhysToLin: unmapping 4 bytes from fa088024
[ 21.566864] PVR: PVRCore_Init: major device 250
[ 22.137451]
[ 22.137481] =============================================
[ 22.144653] [ INFO: possible recursive locking detected ]
[ 22.150268] 2.6.37 #8
[ 22.152618] ---------------------------------------------
[ 22.158264] pvrsrvinit/593 is trying to acquire lock:
[ 22.163513] (psPVRSRVMutex){+.+.+.}, at: [<bf025688>] LinuxLockMutex+0x18/0x20 [pvrsrvkm]
[ 22.172363]
[ 22.172393] but task is already holding lock:
[ 22.178436] (psPVRSRVMutex){+.+.+.}, at: [<bf025688>] LinuxLockMutex+0x18/0x20 [pvrsrvkm]
[ 22.187164]
[ 22.187164] other info that might help us debug this:
[ 22.193969] 1 lock held by pvrsrvinit/593:
[ 22.198242] #0: (psPVRSRVMutex){+.+.+.}, at: [<bf025688>] LinuxLockMutex+0x18/0x20 [pvrsrvkm]
[ 22.207427]
[ 22.207427] stack backtrace:
[ 22.212005] [<c0047498>] (unwind_backtrace+0x0/0xf0) from [<c009cf70>] (__lock_acquire+0xf10/0x185c)
[ 22.221527] [<c009cf70>] (__lock_acquire+0xf10/0x185c) from [<c009d994>] (lock_acquire+0xd8/0xfc)
[ 22.230804] [<c009d994>] (lock_acquire+0xd8/0xfc) from [<c036ac98>] (mutex_lock_nested+0x60/0x2ec)
[ 22.240234] [<c036ac98>] (mutex_lock_nested+0x60/0x2ec) from [<bf025688>] (LinuxLockMutex+0x18/0x20 [pvrsrvkm])
[ 22.250946] [<bf025688>] (LinuxLockMutex+0x18/0x20 [pvrsrvkm]) from [<bf022e14>] (_KFreeWrapper+0x5c/0x294 [pvrsrvkm])
[ 22.262268] [<bf022e14>] (_KFreeWrapper+0x5c/0x294 [pvrsrvkm]) from [<bf022da8>] (_KMallocWrapper+0x78/0x88 [pvrsrvkm])
[ 22.273681] [<bf022da8>] (_KMallocWrapper+0x78/0x88 [pvrsrvkm]) from [<bf029ad0>] (OSAllocMem_Impl+0x28/0xd0 [pvrsrvkm])
[ 22.285186] [<bf029ad0>] (OSAllocMem_Impl+0x28/0xd0 [pvrsrvkm]) from [<bf009aa4>] (PVRSRVPerProcessDataConnect+0x94/0x364 [pvrsrvkm])
[ 22.297851] [<bf009aa4>] (PVRSRVPerProcessDataConnect+0x94/0x364 [pvrsrvkm]) from [<bf015f74>] (PVRSRVProcessConnect+0x1c/0x2c [pvrsrvkm])
[ 22.310974] [<bf015f74>] (PVRSRVProcessConnect+0x1c/0x2c [pvrsrvkm]) from [<bf0279e0>] (PVRSRVOpen+0x3c/0xe0 [pvrsrvkm])
[ 22.322418] [<bf0279e0>] (PVRSRVOpen+0x3c/0xe0 [pvrsrvkm]) from [<c00f7ca8>] (chrdev_open+0x17c/0x1a4)
[ 22.332122] [<c00f7ca8>] (chrdev_open+0x17c/0x1a4) from [<c00f3280>] (__dentry_open+0x188/0x2a8)
[ 22.341278] [<c00f3280>] (__dentry_open+0x188/0x2a8) from [<c00f3468>] (nameidata_to_filp+0x48/0x54)
[ 22.350830] [<c00f3468>] (nameidata_to_filp+0x48/0x54) from [<c00ff028>] (do_last+0x468/0x5b4)
[ 22.359802] [<c00ff028>] (do_last+0x468/0x5b4) from [<c0100b48>] (do_filp_open+0x180/0x508)
[ 22.368499] [<c0100b48>] (do_filp_open+0x180/0x508) from [<c00f3040>] (do_sys_open+0x58/0xe8)
[ 22.377410] [<c00f3040>] (do_sys_open+0x58/0xe8) from [<c0041700>] (ret_fast_syscall+0x0/0x3c)
[ 22.424682] PVR: Installing MISR with cookie bf05803c
[ 22.430938] PVR: Installing device LISR SGX ISR on IRQ 21 with cookie ce814900
[ 22.438720] PVR: OSUnMapPhysToLin: unmapping 16384 bytes from d0a58000
[ 22.445648] PVR_K:(Warning): SysFinalise: Version string: SGX revision = 1.2.1 [575, opt/R5_CDU/buildroot/output/build/ti-graphics-sdk-4_05_00_02/GFX_Linux_KM/services4/system/omap3/sysconfig.c]
[ 22.463989] Unable to handle kernel paging request at virtual address d0a5ff08
[ 22.471588] pgd = ce92c000
[ 22.474395] [d0a5ff08] *pgd=8eb1b011, *pte=00000000, *ppte=00000000
[ 22.480987] Internal error: Oops: 807 [#1]
[ 22.485260] last sysfs file: /sys/devices/virtual/pvr/pvrsrvkm/dev
[ 22.491699] Modules linked in: pvrsrvkm r5fpga_firmware
[ 22.497161] CPU: 0 Not tainted (2.6.37 #8)
[ 22.502044] PC is at OSWriteHWReg+0x24/0xa0 [pvrsrvkm]
[ 22.507476] LR is at SGXInitialise+0x160/0x268 [pvrsrvkm]
[ 22.513122] pc : [<bf02b6d0>] lr : [<bf02edac>] psr: 60000013
[ 22.513122] sp : ceb87be8 ip : bf064c78 fp : bee9db94
[ 22.525054] r10: 00000000 r9 : ceb86000 r8 : 00000000
[ 22.530517] r7 : 00000003 r6 : c01c6742 r5 : bee9db6c r4 : ce98fd80
[ 22.537292] r3 : d0a5ff08 r2 : 80000000 r1 : 0000ff08 r0 : d0a50000
[ 22.544097] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 22.551544] Control: 10c5387d Table: 8e92c019 DAC: 00000015
[ 22.557525] Process pvrsrvinit (pid: 593, stack limit = 0xceb862f0)
[ 22.564056] Stack: (0xceb87be8 to 0xceb88000)
[ 22.568572] 7be0: 00000021 80000000 0000ff08 d0a50000 c01c6742 ce814900
[ 22.577117] 7c00: 00000000 ce92a000 bf058160 00000000 ceb9a640 d08ab140 00000000 c005913c
[ 22.585632] 7c20: ce98fd80 bf0377f4 0000006e 00000002 00000000 00000002 00000000 ce814900
[ 22.594146] 7c40: 0698a3aa 00000000 3b9aca00 0698a3aa bf0445a8 bf0445c0 bf0580e8 00000002
[ 22.602661] 7c60: 00000000 ce814900 ce92a000 d08ab140 c067da50 bf00a898 ceb87ccc cebd27c0
[ 22.611206] 7c80: 22222222 00000000 00000000 00000000 00000000 00000000 00000003 bf01c13c
[ 22.619720] 7ca0: ceb86000 cebd27c0 bee9db94 ceb87cc0 00000000 00000000 bf00a94c bf00a788
[ 22.628234] 7cc0: 00000000 00000000 00000000 00000000 c0bf52f8 00000000 00000000 00000000
[ 22.636749] 7ce0: bf05803c bf05803c 00000000 ceb87ce4 00000000 bf00aa18 bf058128 00000000
[ 22.645263] 7d00: 00000001 ffffffff 00000000 00000000 cea8e5c8 bf05803c 00000000 ceb87d14
[ 22.653808] 7d20: bf058128 bf031fd0 ceb87d50 bf02a01c ffffffff ceb87d60 00000005 ce814900
[ 22.662322] 7d40: d08ab1a0 ce92a000 bf04f468 bf031290 00000000 00000000 ce814900 ce92a000
[ 22.670837] 7d60: c01c6742 bf058114 ceb87dbc 0f003180 22222222 00000000 bf04f468 00000000
[ 22.679351] 7d80: bf0580e8 d08ab180 d08ab184 d08ab1a0 ceb9a3c0 60000013 bf058114 c036a3e4
[ 22.687896] 7da0: ce98fd80 bee9db6c bf030938 bf03097c 00000000 bf0580d0 ffffffff bf0425dc
[ 22.696411] 7dc0: ffffffff ce814900 00010100 00010101 bf05803c ce92a000 00368019 ffffffff
[ 22.704925] 7de0: ceb9a3c0 d08ab180 c01c6742 00000003 00000000 ffffffff 00000001 00000000
[ 22.713439] 7e00: 80000013 bf014ac8 00000000 ce814900 bf05803c bf014920 c01c6742 bf042ab8
[ 22.721954] 7e20: bf0562cc ce814900 20000013 00000000 bf043cb8 bf01be08 bf01490c ce814900
[ 22.730499] 7e40: 00000000 00000000 ce98fd80 bf014a70 ceac2000 ce809940 bf056f8c 00000001
[ 22.739013] 7e60: bee9dbb4 bf05803c 00000000 ceb87e64 bee9dbb4 bf03c888 ce809940 ceac3000
[ 22.747528] 7e80: ceac2000 00000042 0000001c bf03ed64 00000008 00000001 ceb87eec ce809940
[ 22.756042] 7ea0: bf05803c ceac2000 ceac3000 bf03c7fc 00000042 fffffff2 ceb87ea0 00000000
[ 22.764587] 7ec0: ceb98f60 bf02df1c bf025a94 bf025ab8 bf04d47c 00000000 00000000 bee9db6c
[ 22.773101] 7ee0: c01c6742 ce98fd80 ce809940 00000042 0000001c bee9dbb4 00000008 bee9dbac
[ 22.781616] 7f00: 00000008 00000001 c01c6742 bee9db6c ceb87eec 00000251 fffffff2 00000000
[ 22.790130] 7f20: 60000013 c01026e0 ceb86000 ce82c4f8 bee9d7f4 c036bf78 00000002 00000000
[ 22.798675] 7f40: c01bfdf0 40bb4000 40bb5000 ce82c4f4 00000000 ce82c4c0 ce82c4f4 c01bfdf0
[ 22.807189] 7f60: 60000013 ce82c4f8 00000003 ce98fd80 bee9db6c c01c6742 00000003 00000000
[ 22.815704] 7f80: ceb86000 c0102794 00000003 00000000 00000000 00000000 00000000 00000036
[ 22.824218] 7fa0: c00418c8 c0041700 00000000 00000000 00000003 c01c6742 bee9db6c bee9db6c
[ 22.832733] 7fc0: 00000000 00000000 00000000 00000036 00000000 00000000 400d5000 bee9db94
[ 22.841278] 7fe0: 00000000 bee9db50 4004a780 401b4d3c 60000010 00000003 00000000 00000000
[ 22.850006] [<bf02b6d0>] (OSWriteHWReg+0x24/0xa0 [pvrsrvkm]) from [<bf02edac>] (SGXInitialise+0x160/0x268 [pvrsrvkm])
[ 22.861236] [<bf02edac>] (SGXInitialise+0x160/0x268 [pvrsrvkm]) from [<bf0377f4>] (SGXPostPowerState+0xb4/0x1dc [pvrsrvkm])
[ 22.873016] [<bf0377f4>] (SGXPostPowerState+0xb4/0x1dc [pvrsrvkm]) from [<bf00a898>] (PVRSRVDevicePostPowerStateKM_AnyVaCb+0x110/0x1dc [pvrsrvkm])
[ 22.886871] [<bf00a898>] (PVRSRVDevicePostPowerStateKM_AnyVaCb+0x110/0x1dc [pvrsrvkm]) from [<bf01c13c>] (List_PVRSRV_POWER_DEV_PVRSRV_ERROR_Any_va+0x40/0x80 [pvrsrvkm])
[ 22.902801] [<bf01c13c>] (List_PVRSRV_POWER_DEV_PVRSRV_ERROR_Any_va+0x40/0x80 [pvrsrvkm]) from [<bf00a94c>] (PVRSRVDevicePostPowerStateKM_AnyVaCb+0x1c4/0x1dc [pvrsrvkm])
[ 22.918731] [<bf00a94c>] (PVRSRVDevicePostPowerStateKM_AnyVaCb+0x1c4/0x1dc [pvrsrvkm]) from [<bf00aa18>] (PVRSRVSetDevicePowerStateKM+0xb4/0x12c [pvrsrvkm])
[ 22.933471] [<bf00aa18>] (PVRSRVSetDevicePowerStateKM+0xb4/0x12c [pvrsrvkm]) from [<bf031fd0>] (SGXScheduleCCBCommandKM+0x40/0x12c [pvrsrvkm])
[ 22.946960] [<bf031fd0>] (SGXScheduleCCBCommandKM+0x40/0x12c [pvrsrvkm]) from [<bf031290>] (SGXDevInitCompatCheck+0xa78/0xbe4 [pvrsrvkm])
[ 22.960021] [<bf031290>] (SGXDevInitCompatCheck+0xa78/0xbe4 [pvrsrvkm]) from [<bf03097c>] (SGXDevInitCompatCheck+0x164/0xbe4 [pvrsrvkm])
[ 22.972961] [<bf03097c>] (SGXDevInitCompatCheck+0x164/0xbe4 [pvrsrvkm]) from [<bf014ac8>] (PVRSRVDevInitCompatCheck+0x2c/0x44 [pvrsrvkm])
[ 22.985992] [<bf014ac8>] (PVRSRVDevInitCompatCheck+0x2c/0x44 [pvrsrvkm]) from [<bf014920>] (PVRSRVFinaliseSystem_CompatCheck_AnyCb+0x14/0x60 [pvrsrvkm])
[ 23.000396] [<bf014920>] (PVRSRVFinaliseSystem_CompatCheck_AnyCb+0x14/0x60 [pvrsrvkm]) from [<bf01be08>] (List_PVRSRV_DEVICE_NODE_PVRSRV_ERROR_Any+0x3c/0x74 [pvrsrvkm])
[ 23.016235] [<bf01be08>] (List_PVRSRV_DEVICE_NODE_PVRSRV_ERROR_Any+0x3c/0x74 [pvrsrvkm]) from [<bf014a70>] (PVRSRVFinaliseSystem+0x104/0x130 [pvrsrvkm])
[ 23.030639] [<bf014a70>] (PVRSRVFinaliseSystem+0x104/0x130 [pvrsrvkm]) from [<bf03c888>] (PVRSRVInitSrvDisconnectBW+0x8c/0xe0 [pvrsrvkm])
[ 23.043701] [<bf03c888>] (PVRSRVInitSrvDisconnectBW+0x8c/0xe0 [pvrsrvkm]) from [<bf03ed64>] (BridgedDispatchKM+0x35c/0x408 [pvrsrvkm])
[ 23.056457] [<bf03ed64>] (BridgedDispatchKM+0x35c/0x408 [pvrsrvkm]) from [<bf02df1c>] (PVRSRV_BridgeDispatchKM+0x1f8/0x22c [pvrsrvkm])
[ 23.069183] [<bf02df1c>] (PVRSRV_BridgeDispatchKM+0x1f8/0x22c [pvrsrvkm]) from [<c01026e0>] (do_vfs_ioctl+0x518/0x580)
[ 23.080322] [<c01026e0>] (do_vfs_ioctl+0x518/0x580) from [<c0102794>] (sys_ioctl+0x4c/0x6c)
[ 23.089050] [<c0102794>] (sys_ioctl+0x4c/0x6c) from [<c0041700>] (ret_fast_syscall+0x0/0x3c)
[ 23.097839] Code: e59d200c e59d3008 e0823003 e59d2004 (e5832000)
[ 23.104309] ---[ end trace 0ac83298e688e214 ]---