freescale / kernel-module-imx-gpu-viv Goto Github PK
View Code? Open in Web Editor NEWFSL Community fork of Vivante i.MX GPU Linux kernel driver
License: GNU General Public License v2.0
FSL Community fork of Vivante i.MX GPU Linux kernel driver
License: GNU General Public License v2.0
Hi,
I'm using Linux kernel version 4.9.144 which is based on toradex_4.9-2.3.x-imx and with this module "kernel-module-imx-gpu-viv" activated within Buildroot, the galcore module is automatically disabled from the kernel's menuconfig (which is enabled by default) and it is not compiled nor generated.
Also I saw that "This module is only meant for NXP-based kernel up to 4.1.x." , I'd like to know how would I get the galcore compiled for the kernel version : 4.9.144, please ?
Moreover, from this link https://boundarydevices.com/customizing-ubuntudebian-kernels/, it is said that for kernel version is 4.1.15 or higher, galcore module has to be built externally and independently to the kernel. Could you confirm, please ?
Best regards,
Khang
Hi,
While trying to compile kernel-module-imx-gpu-viv with 3.14.79 vanilla kernel I am getting an error of missing header files busfreq.imx.h. Is there any other alternative to load the drivers with 3.14.79 vanilla kernel? Or I need to redo all the patches done by freescale?
/A
Hi. I tried to cross-compile this module with gcc-linaro-7.4.1-2019.02-i686_arm-linux-gnueabihf
and process was failed with:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_lock’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:241:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:241:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:241:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_unlock’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:282:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:282:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:282:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_cache’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:329:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:329:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:329:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_query’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:387:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:387:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:387:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_timestamp’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:430:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:430:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:430:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_set_tiling’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:464:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:464:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:464:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_get_tiling’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:499:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:499:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:499:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_attach_aux’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:536:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:536:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:536:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:555:44: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_ts_obj = drm_gem_object_lookup(file, args->ts_handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:555:50: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_ts_obj = drm_gem_object_lookup(file, args->ts_handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:555:22: error: too few arguments to function ‘drm_gem_object_lookup’
gem_ts_obj = drm_gem_object_lookup(file, args->ts_handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c: In function ‘viv_ioctl_gem_ref_node’:
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:602:37: error: passing argument 1 of ‘drm_gem_object_lookup’ from incompatible pointer type [-Werror=incompatible-pointer-types]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_device *’ but argument is of type ‘struct drm_file *’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:602:43: error: passing argument 2 of ‘drm_gem_object_lookup’ makes pointer from integer without a cast [-Werror=int-conversion]
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: expected ‘struct drm_file *’ but argument is of type ‘__u32 {aka unsigned int}’
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:602:15: error: too few arguments to function ‘drm_gem_object_lookup’
gem_obj = drm_gem_object_lookup(file, args->handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:59:0:
include/drm/drm_gem.h:178:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
What I'm doing wrong?
Thanks!
Hello!
It's need to remove database from hash after gckKERNEL_DeinitDatabase()
call in gckKERNEL_CreateProcessDB(). In other case it could be found in
hash after another call of gckKERNEL_CreateProcessDB() and the kernel
will go to panic() while gckOS_AtomIncrement() call.
This bug was found with sress-ng test:
./stress-ng --dev-file /dev/galcore --dev 0
--- drivers/mcst/gpu-viv/hal/kernel/gc_hal_kernel_db.c (revision 27106)
+++ drivers/mcst/gpu-viv/hal/kernel/gc_hal_kernel_db.c (working copy)
@@ -520,6 +520,39 @@
return status;
}
+static void gckKERNEL_RemoveFromHash(
db != gcvNULL;
db = db->next)
if (db->processID == database->processID)
{
break;
}
prev = db;
prev->next = database->next;
Kernel->db->db[slot] = database->next;
/*******************************************************************************
***** Public API **************************************************************/
@@ -670,6 +703,10 @@
{
gcmkVERIFY_OK(gckKERNEL_DeinitDatabase(Kernel, database));
gckKERNEL_RemoveFromHash(Kernel, slot, database);
if (pointer)
{
gcmkOS_SAFE_FREE(Kernel->os, pointer);
Hi Sir,
We are facing 1080p60 video performance issue with the Freescale Sabre SD board running Android Lollipop L5.1.1_2.1.0-ga release. Attached are the Systrace logs captured from prebuilt images, with playing video( lp_good.html) and video+ pulling notification bar (lp_bad.html)
more info of problem are here link
After the bug been reported here, we wanted to try the new GPU 5.0.11p8 driver.
I tried to compile and integrate the freescale gpu driver with the Android Lollipop L5.1.1_2.1.0-ga release.
But I am getting crashes below
I/SurfaceFlinger( 878): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
D/libEGL ( 878): loaded /system/lib/egl/libEGL_VIVANTE.so
--------- beginning of crash
F/libc ( 878): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x140 in tid 878 (surfaceflinger)
I/DEBUG ( 207): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 207): Build fingerprint: 'Freescale/sabresd_6dq/sabresd_6dq:5.1.1/2.1.0-ga-rc3/20151218:eng/release-keys'
I/DEBUG ( 207): Revision: '0'
I/DEBUG ( 207): ABI: 'arm'
I/DEBUG ( 207): pid: 878, tid: 878, name: surfaceflinger >>> /system/bin/surfaceflinger <<<
I/DEBUG ( 207): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x140
I/DEBUG ( 207): r0 00000140 r1 00000140 r2 b60d60d7 r3 00000000
I/DEBUG ( 207): r4 00000000 r5 ffffffff r6 00000006 r7 be8e6fec
I/DEBUG ( 207): r8 be8e7040 r9 be8e85a8 sl 00000000 fp 00000140
I/DEBUG ( 207): ip b6f5a7bc sp be8e6f30 lr b6f26785 pc b6f0598c cpsr 600f0030
I/DEBUG ( 207):
I/DEBUG ( 207): backtrace:
I/DEBUG ( 207): #00 pc 0001498c /system/lib/libc.so (strlen+15)
I/DEBUG ( 207): #1 pc 00035781 /system/lib/libc.so (__vfprintf+2888)
I/DEBUG ( 207): #2 pc 00038be5 /system/lib/libc.so (vsnprintf+88)
I/DEBUG ( 207): #3 pc 00039a4f /system/lib/libGAL.so
I/DEBUG ( 207): #4 pc 00039b49 /system/lib/libGAL.so (gcoOS_Print+20)
I/DEBUG ( 207): #5 pc 0002c7ab /system/lib/libGAL.so (gcoHAL_ConstructEx+166)
I/DEBUG ( 207): #6 pc 0003b349 /system/lib/libGAL.so (gcoOS_GetTLS+104)
I/DEBUG ( 207): #7 pc 00003dfd /system/lib/egl/libEGL_VIVANTE.so
I/DEBUG ( 207): #8 pc 00008c17 /system/lib/egl/libEGL_VIVANTE.so (eglGetProcAddress+142)
I/DEBUG ( 207): #9 pc 000431bd /system/lib/libEGL.so
I/DEBUG ( 207): #10 pc 0004326f /system/lib/libEGL.so
I/DEBUG ( 207): #11 pc 000107bd /system/lib/libEGL.so
I/DEBUG ( 207): #12 pc 00010f7d /system/lib/libEGL.so (eglGetDisplay+24)
I/DEBUG ( 207): #13 pc 00017f61 /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::init()+44)
I/DEBUG ( 207): #14 pc 00000af1 /system/bin/surfaceflinger
I/DEBUG ( 207): #15 pc 00012df9 /system/lib/libc.so (__libc_init+44)
I/DEBUG ( 207): #16 pc 00000c08 /system/bin/surfaceflinger
W/linker ( 879): libfsl_jpeg_enc_arm11_elinux.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
D/AndroidRuntime( 880): >>>>>> START com.android.internal.os.ZygoteInit uid 0 <<<<<<
Looks like the update libEGL_VIVANTE.so, libGAL.so is needed.
Can you give me some inputs to resolve this.
System open numa function, then use tensorflow's benchmark_model test, crashed.
The below log:
/ # benchmark_model
[ 1] gcSHADER_WriteBufferToFile: Failed to open the file ./viv_vir_cl_intrinsic_ImgLS.lib for writing
GazeNet average runtime=2.83967ms
[ 2] gcSHADER_WriteBufferToFile: Failed to open the file ./viv_vir_cl_intrinsic_ImgLS.lib for writing
FaceNet average runtime=3.02899ms
GestureSSD average runtime=4.63865ms
GestureSSDVsiOptimized average runtime=6.134ms
FaceSSD average runtime=12.5895ms
FacePersonSSD average runtime=17.6026ms
[ 196.725808@1] kernel BUG at /home/test/hal/os/linux/
kernel/allocator/default/gc_hal_kernel_allocator_gfp.c:465!
[ 196.737578@1] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[ 196.743169@1] Modules linked in: iv009_isp(O) iv009_isp_sensor(O) iv009_isp_lens(O) iv009_isp_iq(O) galcore(O) dhd(O)
[ 196.753706@1] Process benchmark_model (pid: 1801, stack limit = 0x00000000a149988d)
[ 196.761296@1] CPU: 1 PID: 1801 Comm: benchmark_model Tainted: G W O 4.19.53-g550318ecb8da #0
[ 196.770776@1] Hardware name: Google NQ P1 Development Board (DT)
[ 196.776721@1] pstate: 60400009 (nZCv daif +PAN -UAO)
[ 196.781662@1] pc : _GFPAlloc+0x258/0x3c8 [galcore]
[ 196.786407@1] lr : _GFPAlloc+0xf4/0x3c8 [galcore]
[ 196.791036@1] sp : ffffff8009f5b7a0
[ 196.794487@1] x29: ffffff8009f5b7a0 x28: ffffffc003fb4e00
[ 196.799920@1] x27: ffffffc0075b58a0 x26: ffffff8000de9000
[ 196.805351@1] x25: ffffffc02b14c500 x24: 0000000000241000
[ 196.810787@1] x23: ffffffc003fb4e00 x22: ffffffc007731a80
[ 196.816220@1] x21: ffffffc007731c00 x20: 0000000000000001
[ 196.821654@1] x19: 0000000000000241 x18: 0000000000000000
[ 196.827086@1] x17: 0000000000000000 x16: 0000000000000000
[ 196.832520@1] x15: 0000000000000000 x14: 0000000000000000
[ 196.837954@1] x13: ffffffc01fffed40 x12: ffffffc01fffed50
[ 196.843389@1] x11: ffffffc01fffed30 x10: ffffffc01fffed20
[ 196.848821@1] x9 : 0000000000000400 x8 : 0000000000000000
[ 196.854256@1] x7 : c3c54cda994b7300 x6 : ffffff80080aa060
[ 196.859689@1] x5 : ffffffbf00000000 x4 : ffffff8009036000
[ 196.865125@1] x3 : ffffffbf00000000 x2 : 0000000000000000
[ 196.870557@1] x1 : 0000000000000000 x0 : 0000000000000000
[ 196.875992@1] Call trace:
[ 196.878605@1] _GFPAlloc+0x258/0x3c8 [galcore]
[ 196.883003@1] gckOS_AllocatePagedMemory+0xb8/0x1bc [galcore]
[ 196.888697@1] gckVIDMEM_AllocateVirtual.constprop.10+0xcc/0x140 [galcore]
[ 196.895510@1] gckVIDMEM_NODE_AllocateVirtual+0x64/0xf4 [galcore]
[ 196.901549@1] gckKERNEL_AllocateVideoMemory+0x244/0x338 [galcore]
[ 196.907670@1] _AllocateLinearMemory+0x74/0x13c [galcore]
[ 196.913018@1] gckKERNEL_Dispatch+0x16c/0xc74 [galcore]
[ 196.918199@1] gckDEVICE_Dispatch+0x188/0x2e8 [galcore]
[ 196.923367@1] drv_ioctl+0x134/0x230 [galcore]
[ 196.927750@1] do_vfs_ioctl+0xd0/0xd10
[ 196.931453@1] __arm64_sys_ioctl+0x94/0xa8
[ 196.935511@1] invoke_syscall+0x9c/0xac
[ 196.939302@1] el0_svc_common+0x6c/0xfc
[ 196.943097@1] el0_svc_handler+0x38/0x74
[ 196.946978@1] el0_svc+0x8/0xc
[ 196.950000@1] Code: 17ffffd9 f9400720 f8627801 17ffffbb (d4210000)
[ 196.956214@1] ---[ end trace 059f22c63801fad5 ]---
[ 196.960951@1] Kernel panic - not syncing: Fatal exception
[ 196.966298@1] SMP: stopping secondary CPUs
[ 196.970355@1] Kernel Offset: disabled
[ 196.973973@1] CPU features: 0x0,22802a30
[ 196.977852@1] Memory Limit: none
[ 196.981050@1] Rebooting in 5 seconds..
[ 202.104703@1] reboot reason 12
Hello,
I'm facing this issue with wpe-webkit Igalia/cog#87
I'm building for i.MX 8MQuad using thud branch, the fdo backend and the core-image-weston image
Is this an imx-gpu-viv issue ?
Hello, is it possible to have source code with NPU? Some vivante gpu implementations like the one in RK1808 does have NPU
Hello,
I'm trying to build it and having this build issue:
ubuntu@imx6qp:~/gpu_pack/kernel-module-imx-gpu-viv$ make
make -C M=/home/ubuntu/gpu_pack/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv-src AQROOT=/home/ubuntu/gpu_pack/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv-src
make[1]: *** M=/home/ubuntu/gpu_pack/kernel-module-imx-gpu-viv/kernel-module-imx-gpu-viv-src: No such file or directory. Stop.
Makefile:6: recipe for target 'all' failed
make: *** [all] Error 2
Does KERNEL_SRC needs to be defined before?
/os/linux/kernel/gc_hal_kernel_os.c:5990:25: error: implicit declaration of function '__SI_CODE'; did you mean 'USR_MODE'? [-Werror=implicit-function-declaration]
| info.si_code = __SI_CODE(__SI_RT, SI_KERNEL);
| ^~~~~~~~~
| USR_MODE
I am using custom yocto rocko branch. not NXP yocto BSP.
kernel= mainline 4.14
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.