Imagination PowerVR SDK Blog

SGX Hardware Recovery triggered


#1

Hi.
I am using the SGX in the OMAP4 processor running Linux.  I am able to run OGLES and OGLES2 demo apps (currently using SDKv3.0).  However, I experience frequent SGX lockups.  The hardware recovery handles it nicely, but the display is jittery because of the timeouts.

It seems that the lockups are get worse with larger output.  On my 800x480 display:

    OGLES2ChameleonMan -width=775 -height=400       results in no errors at all


    OGLES2ChameleonMan -width=800 -height=480       results in lots of errors


The closer to 800x400, the more frequent the errors.


Any hints from the register dump below would be appreciated.

Regards,

    Steve

PVR_K:(Error): SGXOSTimer() detected SGX lockup (0xc tasks) [1763, services4/srvkm/devices/sgx/sgxinit.c]
PVR_K: HWRecoveryResetSGX: SGX Hardware Recovery triggered
PVR_K: SGX debug (SGX_DDK_Linux_CustomerTI sgxddk 19 1.9.RC2@2139099)
PVR_K:(Error): SGX Register Base Address (Linear):   0xE09C0000 [1278, services4/srvkm/devices/sgx/sgxinit.c]
PVR_K:(Error): SGX Register Base Address (Physical): 0x56000000 [1279, services4/srvkm/devices/sgx/sgxinit.c]
PVR_K: (P0) EUR_CR_CORE_ID:          01140000
PVR_K: (P0) EUR_CR_CORE_REVISION:    00010200
PVR_K: (P0) EUR_CR_EVENT_STATUS:     20000000
PVR_K: (P0) EUR_CR_EVENT_STATUS2:    00000008
PVR_K: (P0) EUR_CR_BIF_CTRL:         00000000
PVR_K: (P0) EUR_CR_BIF_INT_STAT:     00008000
PVR_K: (P0) EUR_CR_BIF_FAULT:        00000000
PVR_K: (P0) EUR_CR_BIF_MEM_REQ_STAT: 00000001
PVR_K: (P0) EUR_CR_CLKGATECTL:       000AAA6A
PVR_K: (P0) EUR_CR_PDS_PC_BASE:      00002118
PVR_K: SGX Host control:
PVR_K:     (HC-0) 0x00000001 0x00000000 0x00000000 0x00000000
PVR_K:     (HC-10) 0x00000002 0x0000000A 0x0004B000 0x00000003
PVR_K:     (HC-20) 0x00000000 0x00000003 0x00000000 0x0000002C
PVR_K:     (HC-30) 0x00000116 0xF8BBFA30 0x00000000 0x00000000
PVR_K:     (HC-40) 0x00000000 0xE3530000 0x0AFFFFE8 0xE1A00007
PVR_K: SGX TA/3D control:
PVR_K:     (T3C-0) 0x0F003000 0x0F0030E0 0x0F002000 0x00000000
PVR_K:     (T3C-10) 0x00000000 0x00000000 0x00000000 0x0F00AB80
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 0x0F00AD70 0x0F000000 0x9AF4B000
PVR_K:     (T3C-60) 0x0F02E180 0x00000000 0x0F01E920 0x0F00AB80
PVR_K:     (T3C-70) 0x0F00AD70 0x0F01E920 0x00000000 0x00000000
PVR_K:     (T3C-80) 0x00000000 0x00000000 0x00000000 0x00000000
PVR_K:     (T3C-90) 0x00000000 0x0000002E 0x0000002E 0x0F004000
PVR_K:     (T3C-A0) 0x0F00A420 0x0F00B000 0x0F01E000 0x0F01E000
PVR_K:     (T3C-B0) 0x00000000 0x0000047F 0x0000047F 0x00000000
PVR_K:     (T3C-C0) 0x00000003 0x00000001 0x00000000 0x00000001
PVR_K:     (T3C-D0) 0x00000000 0xE1A00004 0xEBFFFFFE 0xE3A03001
PVR_K: SGX Kernel CCB WO:0x63 RO:0x62