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]

 



śr., 13 lut 2019 o 17:33 H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> napisał(a):
>
> 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:~#
>
Where i could find that SGX_ClipBlit test (source or binary)?
> 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.
For mainline You will probably need
https://github.com/PabloPL/linux/commit/de0f7e299d94f5dfdcf15375ec2d3ace54ac4a24
because powervr is using some strange pointers.

I'm building my kernel and will get strace output of pvrsrvinit on my
device (where it's working) in few minutes.
For me it fails when trying to use egl programs (egl configurations =
0). Of course on mainline (5.0-rc4).
>
> 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