OMAP3530: HW Acceleration won't work with SGX (BRANCH 1.17.4948957/mesa/glibc-2.35) and Linux 6.6 under use of yocto

Part Number: OMAP3530

Tool/software:

Haven't found part NO OMAP3630 so I selected 3530.
I have a custom board based on the omap3-beagle-xm.
I try to update it from Kernel 3.X to 6.6.x under use of yocto.
With the latest recipe which uses the latest branch "1.17.4948957/mesa/glibc-2.35"
Didn't get the GPU acceleration to work.
The KM Module is loaded and there is no issue on starting the pvrsrvctl driver.
(After removing the 50-... udev rule. otherwise I get Error 129 already loaded)

[~ ]$ /etc/init.d/rc.pvr start
[  378.953186] [drm] Initialized pvr 1.17.4948957 20110701 for 50000000.gpu on minor 1
[  378.995422] PVR_K: UM DDK-(4948957) and KM DDK-(4948957) match. [ OK ]
Loaded PowerVR consumer services.


When starting kmscube it mentions that the display is not initialised and starts turning the cube without acceleration (2.8Fps)

[ ~ ]$ kmscube
MESA: info: Loaded libpvr_dri_support.so
PVR:(Error): PVRDRICreateScreenImpl: Failed to create display device (err=19) [0, ]
MESA: info: Unloaded libpvr_dri_support.so
kmsro: driver missing
Using display 0x5fc2d0 with EGL version 1.4
...

Any Ideas where I could make the issue?


  • output_gfx_check.txt
    [ ~ ]$ ./gfx_check.sh 
    WSEGL settings
    [default]
    DefaultPixelFormat=RGB565
    WindowSystem=libpvrGBMWSEGL.so
    #WindowSystem=libpvrDRMWSEGL.so
    ------
    ARM CPU information
    processor	: 0
    model name	: ARMv7 Processor rev 2 (v7l)
    BogoMIPS	: 600.47
    Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
    CPU implementer	: 0x41
    CPU architecture: 7
    CPU variant	: 0x3
    CPU part	: 0xc08
    CPU revision	: 2
    
    Hardware	: Generic OMAP36xx (Flattened Device Tree)
    Revision	: 0000
    Serial		: 0000000000000000
    ------
    SGX driver information
    Version SGX_DDK sgxddk 1.17@4948957 (release) ti335x_linux
    System Version String: SGX revision = 125
    ------
    Framebuffer settings
    
    mode "800x600"
        geometry 800 600 800 600 32
        timings 0 0 0 0 0 0 0
        rgba 8/16,8/8,8/0,0/0
    endmode
    
    Frame buffer device information:
        Name        : omapdrmdrmfb
        Address     : (nil)
        Size        : 1921024
        Type        : PACKED PIXELS
        Visual      : TRUECOLOR
        XPanStep    : 1
        YPanStep    : 1
        YWrapStep   : 0
        LineLength  : 3200
        Accelerator : No
    ------
    Rotation settings
    0
    ------
    Kernel Module information
    Module                  Size  Used by
    pvrsrvkm              364544  0
    ------
    Boot settings
    console=ttyO2,115200n8 mtdparts=omap2-nand.0:512k(spl),1920k(u-boot),128k(u-boot-env),128k(dtb),6m(kernel),-(rootfs) mpurate=auto buddy=none camera=none vram=12M root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
    ------
    Linux Kernel version
    Linux mmi4 6.6.58-ti-01497-ga7758da17c28-dirty #1 PREEMPT Wed Nov 27 13:23:15 UTC 2024 armv7l GNU/Linux
    
    
    Attached the output of gfx_check.sh

  • pvrsrvctl_dump.txt
    [ ~ ]$ pvrsrvctl --dump-debug --force-regs
    [ 1246.195434] PVR_K: User requested SGX debug info
    [ 1246.200225] PVR_K: SGX debug (SGX_DDK sgxddk 1.17@4948957)
    [ 1246.206512] PVR_K:(Error): SGX Register Base Address (Linear):   0xcd46f94b
    [ 1246.213653] PVR_K:(Error): SGX Register Base Address (Physical): 0x50000000
    [ 1246.220672] PVR_K: Running SGXREG Debug Scripts:
    [ 1246.225738] PVR_K: (P0)
    [ 1246.228302] PVR_K: 	(SGXREG) 0x00000000 : 0x00222220
    [ 1246.233642] PVR_K: 	(SGXREG) 0x00000004 : 0x00000000
    [ 1246.238677] PVR_K: 	(SGXREG) 0x00000118 : 0x00000000
    [ 1246.244049] PVR_K: 	(SGXREG) 0x0000012C : 0x00000000
    [ 1246.249084] PVR_K: 	(SGXREG) 0x000004E0 : 0x00000000
    [ 1246.254486] PVR_K: 	(SGXREG) 0x000004E4 : 0x00000000
    [ 1246.259490] PVR_K: 	(SGXREG) 0x00000658 : 0x00000000
    [ 1246.264984] PVR_K: 	(SGXREG) 0x00000A74 : 0x003F8200
    [ 1246.270019] PVR_K: 	(SGXREG) 0x00000C04 : 0x00000000
    [ 1246.278564] PVR_K: 	(SGXREG) 0x00000C08 : 0x00000000
    [ 1246.284240] PVR_K: 	(SGXREG) 0x00000E04 : 0x00000000
    [ 1246.289245] PVR_K: 	(SGXREG) 0x00000624 : 0x00000000
    [ 1246.294891] PVR_K: 	(SGXREG) 0x00000628 : 0x00000000
    [ 1246.299926] PVR_K: 	(SGXREG) 0x00000630 : 0x00000000
    [ 1246.305389] PVR_K: 	(SGXREG) 0x00000734 : 0x00000000
    [ 1246.310424] PVR_K: 	(SGXREG) 0x00000AA4 : 0xAAAAAAAA
    [ 1246.315826] PVR_K: 	(SGXREG) 0x00000AA8 : 0xAAAAAAAA
    [ 1246.320831] PVR_K: 	(SGXREG) 0x00000B08 : 0x00010000
    [ 1246.326354] PVR_K: 	(SGXREG) 0x00000B14 : 0x00010000
    [ 1246.331634] PVR_K: 	(SGXREG) 0x00000B0C : 0x00010000
    [ 1246.336639] PVR_K: 	(SGXREG) 0x00000B18 : 0x00010000
    [ 1246.342010] PVR_K: 	(SGXREG) 0x00000B10 : 0x0001D886
    [ 1246.347045] PVR_K: 	(SGXREG) 0x00000B1C : 0x00010000
    [ 1246.352416] PVR_K: SGX Register Dump:
    [ 1246.356201] PVR_K: (P0) EUR_CR_CORE_ID:          01120000
    [ 1246.362030] PVR_K: (P0) EUR_CR_CORE_REVISION:    00010205
    [ 1246.367492] PVR_K: (P0) EUR_CR_EVENT_STATUS:     00000000
    [ 1246.373321] PVR_K: (P0) EUR_CR_EVENT_STATUS2:    00000000
    [ 1246.378753] PVR_K: (P0) EUR_CR_BIF_CTRL:         00000000
    [ 1246.384887] PVR_K: (P0) EUR_CR_BIF_INT_STAT:     00000000
    [ 1246.390472] PVR_K: (P0) EUR_CR_BIF_FAULT:        00000000
    [ 1246.396270] PVR_K: (P0) EUR_CR_BIF_MEM_REQ_STAT: 00000000
    [ 1246.404479] PVR_K: (P0) EUR_CR_CLKGATECTL:       00222220
    [ 1246.409973] PVR_K: (P0) EUR_CR_PDS_PC_BASE:      00000000
    [ 1246.416046] PVR_K:  Host Ctl flags= 00000006
    [ 1246.420501] PVR_K: SGX Host control:
    [ 1246.424591] PVR_K: 	(HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    [ 1246.431213] PVR_K: 	(HC-10) 0x00000000 0x00000000 0x00000014 0x00030D40
    [ 1246.438293] PVR_K: 	(HC-20) 0x00000000 0x00000004 0x00000004 0x00000000
    [ 1246.445251] PVR_K: 	(HC-30) 0x00000000 0x0012D8E9 0xEEC8CDD0 0x00000000
    [ 1246.452270] PVR_K: 	(HC-40) 0x00000000 0x00000000 0x00000002 0xFDFFFFFF
    [ 1246.458953] PVR_K: SGX TA/3D control:
    [ 1246.463012] PVR_K: 	(T3C-0) 0x0F003000 0x0F003140 0x0F002000 0x00000000
    [ 1246.469726] PVR_K: 	(T3C-10) 0x00000000 0x00000000 0x00000002 0x00000000
    [ 1246.476867] PVR_K: 	(T3C-20) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.483856] PVR_K: 	(T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.490692] PVR_K: 	(T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.497833] PVR_K: 	(T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.504882] PVR_K: 	(T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.511871] PVR_K: 	(T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.518707] PVR_K: 	(T3C-80) 0x00000000 0x00000000 0x00000000 0x0F000000
    [ 1246.525848] PVR_K: 	(T3C-90) 0x82817000 0x00000000 0x00000000 0x00000000
    [ 1246.532867] PVR_K: 	(T3C-A0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.539611] PVR_K: 	(T3C-B0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.546783] PVR_K: 	(T3C-C0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.553863] PVR_K: 	(T3C-D0) 0x0F000000 0x8000B000 0x8004B000 0x0F004000
    [ 1246.560607] PVR_K: 	(T3C-E0) 0x0F00A420 0x0F00A740 0x00000000 0x00000000
    [ 1246.567779] PVR_K: 	(T3C-F0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.574768] PVR_K: 	(T3C-100) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.581909] PVR_K: 	(T3C-110) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 1246.588775] PVR_K: 	(T3C-120) 0x00000000 0x00000000 0x7DFFFFFF 0xFFFFFFFF
    [ 1246.596008] PVR_K: SGX Kernel CCB WO:0x1 RO:0x1
    [ 1246.600585] PVR_K: Active syncs