Re: Lay common foundation to make PVR/SGX work without hacks on OMAP34xx, OMAP36xx, AM335x and potentially OMAP4, OMAP5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Pawel,

> Am 13.02.2019 um 08:36 schrieb Paweł Chmiel <pawel.mikolaj.chmiel@xxxxxxxxx>:
> 
> Do You have strace of pvrsrvinit run ? They should be almost identical to one which i have.

I have digged out a version where pvrsrvinit succeeds on our omap3530 based gta04 board (kernel 4.15.17).

oot@letux:~# strace pvrsrvctl --start --no-module
execve("/usr/local/bin/pvrsrvctl", ["pvrsrvctl", "--start", "--no-module"], [/* 14 vars */]) = 0
brk(0)                                  = 0x12000
uname({sys="Linux", node="letux", ...}) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6efd000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/v7l/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/v7l/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/v7l/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/v7l/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/v7l/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/v7l/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/v7l/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/v7l", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/tls/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/tls", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/v7l/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/v7l/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/v7l/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/v7l/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/v7l/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/v7l/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/v7l/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/v7l", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/usr/local/XSGX/lib/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/local/XSGX/lib", 0xbeb3d420) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=45046, ...}) = 0
mmap2(NULL, 45046, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6ef2000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libsrv_init.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0<\7\0\0004\0\0\0"..., 512) = 512
lseek(3, 94656, SEEK_SET)               = 94656
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
lseek(3, 94346, SEEK_SET)               = 94346
read(3, "A6\0\0\0aeabi\0\1,\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 55) = 55
fstat64(3, {st_mode=S_IFREG|0755, st_size=95696, ...}) = 0
mmap2(NULL, 127076, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6eb8000
mprotect(0xb6ecf000, 28672, PROT_NONE)  = 0
mmap2(0xb6ed6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0xb6ed6000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0Mw\1\0004\0\0\0"..., 512) = 512
lseek(3, 908188, SEEK_SET)              = 908188
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2880) = 2880
lseek(3, 904740, SEEK_SET)              = 904740
read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\3\f"..., 53) = 53
fstat64(3, {st_mode=S_IFREG|0755, st_size=911068, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6ef1000
mmap2(NULL, 980392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dc8000
mprotect(0xb6ea3000, 61440, PROT_NONE)  = 0
mmap2(0xb6eb2000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xda000) = 0xb6eb2000
mmap2(0xb6eb5000, 9640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6eb5000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libsrv_um.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340#\0\0004\0\0\0"..., 512) = 512
lseek(3, 168544, SEEK_SET)              = 168544
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
lseek(3, 168210, SEEK_SET)              = 168210
read(3, "A6\0\0\0aeabi\0\1,\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 55) = 55
fstat64(3, {st_mode=S_IFREG|0755, st_size=169664, ...}) = 0
mmap2(NULL, 200992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d96000
mprotect(0xb6dbe000, 28672, PROT_NONE)  = 0
mmap2(0xb6dc5000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0xb6dc5000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\t\0\0004\0\0\0"..., 512) = 512
lseek(3, 8664, SEEK_SET)                = 8664
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
lseek(3, 8328, SEEK_SET)                = 8328
read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53
fstat64(3, {st_mode=S_IFREG|0644, st_size=9824, ...}) = 0
mmap2(NULL, 73912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d83000
mprotect(0xb6d85000, 61440, PROT_NONE)  = 0
mmap2(0xb6d94000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6d94000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0EQ\0\0004\0\0\0"..., 512) = 512
lseek(3, 100684, SEEK_SET)              = 100684
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1520) = 1520
lseek(3, 65940, SEEK_SET)               = 65940
read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53
fstat64(3, {st_mode=S_IFREG|0755, st_size=102204, ...}) = 0
mmap2(NULL, 139836, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d60000
mprotect(0xb6d70000, 61440, PROT_NONE)  = 0
mmap2(0xb6d7f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xb6d7f000
mmap2(0xb6d81000, 4668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6d81000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@\30\0\0004\0\0\0"..., 512) = 512
lseek(3, 21260, SEEK_SET)               = 21260
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1320) = 1320
lseek(3, 20868, SEEK_SET)               = 20868
read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53
fstat64(3, {st_mode=S_IFREG|0644, st_size=22580, ...}) = 0
mmap2(NULL, 86588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d4a000
mprotect(0xb6d4f000, 61440, PROT_NONE)  = 0
mmap2(0xb6d5e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xb6d5e000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\230\321\0\0004\0\0\0"..., 512) = 512
lseek(3, 99900, SEEK_SET)               = 99900
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
lseek(3, 99568, SEEK_SET)               = 99568
read(3, "A2\0\0\0aeabi\0\1(\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 51) = 51
fstat64(3, {st_mode=S_IFREG|0644, st_size=101020, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6ef0000
mmap2(NULL, 165160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d21000
mprotect(0xb6d3a000, 61440, PROT_NONE)  = 0
mmap2(0xb6d49000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0xb6d49000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6d20000
set_tls(0xb6d204c0, 0xb6f00058, 0xb6d20ba8, 0xb6d204c0, 0xb6f00058) = 0
mprotect(0xb6eb2000, 8192, PROT_READ)   = 0
mprotect(0xb6d7f000, 4096, PROT_READ)   = 0
mprotect(0xb6d5e000, 4096, PROT_READ)   = 0
mprotect(0xb6d94000, 4096, PROT_READ)   = 0
mprotect(0xb6dc5000, 8192, PROT_READ)   = 0
mprotect(0xb6ed6000, 4096, PROT_READ)   = 0
mprotect(0x10000, 4096, PROT_READ)      = 0
mprotect(0xb6eff000, 4096, PROT_READ)   = 0
munmap(0xb6ef2000, 45046)               = 0
set_tid_address(0xb6d20068)             = 2672
set_robust_list(0xb6d20070, 12)         = 0
rt_sigaction(SIGRTMIN, {0xb6d64d9d, [], SA_RESTORER|SA_SIGINFO, 0xb6deeb01}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xb6d64cbd, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0xb6deeb01}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0)                                  = 0x12000
brk(0x33000)                            = 0x33000
open("/dev/pvrsrvkm", O_RDWR)           = 3
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
ioctl(3, 0xc01c670c, 0xbeb3e9bc)        = 0
ioctl(3, 0xc01c6744, 0xbeb3e9fc)        = 0
ioctl(3, 0xc01c6700, 0xbeb3e8a4)        = 0
ioctl(3, 0xc01c6701, 0xbeb3e90c)        = 0
ioctl(3, 0xc01c6763, 0xbeb3e614)        = 0
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000005000) = 0xb6efb000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000006000) = 0xb6efa000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000007000) = 0xb6ef9000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000008000) = 0xb6ef8000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000009000) = 0xb6ef7000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000a000) = 0xb6ef6000
ioctl(3, 0xc01c6706, 0xbeb3e80c)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7cc)        = 0
mmap2(NULL, 28672, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000b000) = 0xb6d19000
open("/etc/powervr.ini", O_RDONLY)      = -1 ENOENT (No such file or directory)
open("powervr.ini", O_RDONLY)           = -1 ENOENT (No such file or directory)
ioctl(3, 0xc01c6706, 0xbeb3e80c)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7cc)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000c000) = 0xb6ef5000
ioctl(3, 0xc01c6706, 0xbeb3e80c)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7cc)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000d000) = 0xb6ef4000
ioctl(3, 0xc01c6706, 0xbeb3e7fc)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7bc)        = 0
mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000e000) = 0xb6d13000
ioctl(3, 0xc01c6706, 0xbeb3e7fc)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7bc)        = 0
mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000f000) = 0xb6d0d000
ioctl(3, 0xc01c6706, 0xbeb3e7fc)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7bc)        = 0
mmap2(NULL, 20480, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000010000) = 0xb6d08000
ioctl(3, 0xc01c6706, 0xbeb3e7fc)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7bc)        = 0
mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000011000) = 0xb6d02000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000012000) = 0xb6ef3000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000013000) = 0xb6ef2000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000014000) = 0xb6d01000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000015000) = 0xb6d00000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c670b, 0xbeb3e7e4)        = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000016000) = 0xb6cff000
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c6706, 0xbeb3e824)        = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6efb000, 8192)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6efa000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef9000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef7000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef8000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef6000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d19000, 28672)               = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef5000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef4000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d13000, 24576)               = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d0d000, 24576)               = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d02000, 24576)               = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d08000, 20480)               = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef3000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6ef2000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d01000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6d00000, 4096)                = 0
ioctl(3, 0xc01c671b, 0xbeb3e8dc)        = 0
munmap(0xb6cff000, 4096)                = 0
ioctl(3, 0xc01c6764, 0xbeb3e91c)        = 0
ioctl(3, 0xc01c6745, 0xbeb3e9ec)        = 0
ioctl(3, 0xc01c670d, 0xbeb3e9c4)        = 0
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++
root@letux:~#

root@letux:~# ls -l /dev/pvrsrvkm
crw------- 1 root root 240, 0 Jan  1 00:06 /dev/pvrsrvkm
root@letux:~# uname -a
Linux letux 4.15.17-letux+ #3337 SMP PREEMPT Wed Feb 13 16:56:27 CET 2019 armv7l GNU/Linux
root@letux:~# ./gpu-demo 
autodetected driver package: omap3630-sgx530-125
compatible driver: omap3630_sgx530_125
System Version String: SGX revision = 125
----------------- SGX CLipBlit test -----------------
---------------------- Start ------------------------
Call PVRSRVConnect with a valid argument:
 OK
Get number of devices from PVRSRVEnumerateDevices:
 OK
.... Reported 1 devices
.... Device Number  | Device Type
            0000    | PVRSRV_DEVICE_ID_SGX
Attempt to acquire device 0:
 OK
Getting SGX Client info
 OK
.... ui32ProcessID:2691
Display Class API: enumerate devices
 OK
PVRSRVEnumerateDeviceClass() returns 0 display device(s)
 FAIL - PVRSRV_ERROR_NO_DC_DEVICES_FOUND(134)
./gpu-demo: line 71:  2691 Aborted                 sgx_clipblit_test
root@letux:~# 

As you can see the firmware is loaded and connected successfully. Then it just fails to enumerate
a display which is the missing/unfixed omaplfb.

Some newer kernels did fail with 

rt_sigaction(SIGRTMIN, {0xb6e07d9d, [], SA_RESTORER|SA_SIGINFO, 0xb6e91b01}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xb6e07cbd, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0xb6e91b01}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0)                                  = 0x12000
brk(0x33000)                            = 0x33000
open("/dev/pvrsrvkm", O_RDWR)           = -1 ENOMEM (Cannot allocate memory)
write(2, "pvrsrvctl: SrvInit failed (alrea"..., 57pvrsrvctl: SrvInit failed (already initialized?) (err=4)
) = 57
exit_group(1)                           = ?
+++ exited with 1 +++

So I have to check what did break in between. And when. Most likely something with memory allocation.

Hope this helps!

BR,
Nikolaus





[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux