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.

AM335x PowerVR flip mode fails

Hi,

we are using the following components on our AM3354-board:
- TI graphics SDK V5.01.01.02
- Linux Kernel v3.14.49

What's working so far:
Front mode only, release build of pvrsrvkm kernel module only

Not working:
pvrsrvkm with debug flag enabled, fails with "SGX Platform data missing deassert_reset"

The same message appears for relase kernel modules but does not terminate operation.

A change in powervr.ini from
Front mode "WindowSystem=libpvrPVR2D_FRONTWSEGL.so"
to
Flip mode  "WindowSystem=libpvrPVR2D_FLIPWSEGL.so"

leads to the following crash:

/ # modprobe pvrsrvkm
[   16.980706] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa04a054
[   16.988747] Internal error: : 1028 [#1] ARM
[   16.993133] Modules linked in: pvrsrvkm(O+)
[   16.997539] CPU: 0 PID: 929 Comm: modprobe Tainted: G           O 3.14.49 #1
[   17.004934] task: cf16a400 ti: cf446000 task.ti: cf446000
[   17.010808] PC is at EnableSystemClocks+0xbc/0x1e8 [pvrsrvkm]
[   17.016909] LR is at EnableSystemClocks+0xb4/0x1e8 [pvrsrvkm]
[   17.022939] pc : [<bf02f5b0>]    lr : [<bf02f5a8>]    psr: a00d0013
[   17.022939] sp : cf447d08  ip : bf05dbe5  fp : 00000001
[   17.034977] r10: bf05bdbc  r9 : 00000000  r8 : 00000002
[   17.040453] r7 : bf05eab4  r6 : bf05eab4  r5 : fa04a054  r4 : bf05eb1c
[   17.047298] r3 : 00000000  r2 : cf682458  r1 : 00000000  r0 : fa04a054
[   17.054144] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   17.061627] Control: 10c5387d  Table: 8f3a4019  DAC: 00000015
[   17.067652] Process modprobe (pid: 929, stack limit = 0xcf446238)
[   17.074044] Stack: (0xcf447d08 to 0xcf448000)
[   17.078616] 7d00:                   00000000 00000000 00000000 cf682458 bf05eab4 00000000
...
[   17.276042] 7fe0: be856b58 be856b48 00025910 b6efac80 600d0010 b6dac008 49101ac1 030848e8
[   17.284778] [<bf02f5b0>] (EnableSystemClocks [pvrsrvkm]) from [<bf02ff2c>] (SysInitialise+0x3dc/0x52c [pvrsrvkm])
[   17.295677] [<bf02ff2c>] (SysInitialise [pvrsrvkm]) from [<bf01c4d8>] (PVRSRVDriverProbe+0x88/0xb0 [pvrsrvkm])
…
[   17.395441] [<c00700ac>] (SyS_init_module) from [<c000ee80>] (ret_fast_syscall+0x0/0x38)
[   17.403942] Code: e3a01004 ebffbd0a e2505000 0a000023 (e5953000)
[   17.410341] ---[ end trace 870e93ad050fcab5 ]---
Segmentation fault


Adding patches to increase framebuffer size to hold swap chain buffers and additions to DRM layer from these sources solves the above failure and gives 3 buffers (for Flip mode) but leads to failure when starting test programs
gitorious.org/.../d3ab5e87304b45dc594351ed091a6ae451f40de7
git.yoctoproject.org/.../linux-ti-staging-3.14 “0001-HACK-drm-fb_helper-enable-panning-support.patch”.

[   47.475800] omaplfb: Device 0: Maximum number of swap chain buffers: 3
[   47.475819] omaplfb: Device 0: PVR Device ID: 1

/ # /usr/bin/OGLES2MagicLantern
Can't open remote control input device (/dev/ttyS1)
PVRShell: EGL 1.4 initialized
[   62.848167] Unable to handle kernel NULL pointer dereference at virtual address 00000001

In this case we are seeing a single frame appear on screen before the above crash so we would guess that buffer allocation in the driver is incorrectly done.

We have cross-checked the tilcdc driver code with the TI Git tree 3.14.y and cannot find any difference aside of the above drm-fb patch .

As debug mode is not working how can we proceed in this situation with RN_5_01_01_02?
Any help would be much appreciated.