IMX6D: Unable to load galcore module with NXP Linux Kernel 4.14.98-2.0.0-r0

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6D: Unable to load galcore module with NXP Linux Kernel 4.14.98-2.0.0-r0

Jump to solution
7,687 Views
npatel
Contributor III

Hello all,

Using the 4.14.98-2.0.0-r0 NXP Linux Kernel on an custom IMX6D based board, the galcore driver fails to load during boot:

.

.

.

[    4.591424] galcore: loading out-of-tree module taints kernel.

.

.

[    4.616583] galcore: probe of 130000.gpu failed with error -22

When I manually insmod galcore.ko, more information is displayed:

# insmod galcore.ko
[ 1936.127601] galcore 130000.gpu: Unbalanced pm_runtime_enable!
[ 1936.133524] Galcore version 6.2.4.150331
[ 1936.138025] galcore: probe of 130000.gpu failed with error -22

Galcore driver info:

# modinfo galcore
filename:       /lib/modules/4.14.98-imx+g1175b5961153/extra/galcore.ko
license:        Dual MIT/GPL
description:    Vivante Graphics Driver
srcversion:     533BB7E5866E52F63B9ACCB
alias:          of:N*T*Cfsl,imx6q-gpuC*
alias:          of:N*T*Cfsl,imx6q-gpu
alias:          of:N*T*Cfsl,imx8-gpu-ssC*
alias:          of:N*T*Cfsl,imx8-gpu-ss
depends:
name:           galcore
vermagic:       4.14.98-imx+g1175b5961153 SMP mod_unload modversions ARMv6 p2v8
parm:           initgpu3DMinClock:int
parm:           major:major device number for GC device (uint)
parm:           irqLine:IRQ number of GC core (int)
parm:           registerMemBase:Base of bus address of GC core AHB register (ulong)
parm:           registerMemSize:Size of bus address range of GC core AHB register (ulong)
parm:           irqLine2D:IRQ number of G2D core if irqLine is used for a G3D core (int)
parm:           registerMemBase2D:Base of bus address of G2D core if registerMemBase2D is used for a G3D core (ulong)
parm:           registerMemSize2D:Size of bus address range of G2D core if registerMemSize is used for a G3D core (ulong)
parm:           irqLineVG:IRQ number of VG core (int)
parm:           registerMemBaseVG:Base of bus address of VG core (ulong)
parm:           registerMemSizeVG:Size of bus address range of VG core (ulong)
parm:           contiguousSize:Size of memory reserved for GC (ulong)
parm:           contiguousBase:Base address of memory reserved for GC, if it is 0, GC driver will try to allocate a buffer whose size defined by contiguousSize (ulong)
parm:           externalSize:Size of external memory, if it is 0, means there is no external pool (ulong)
parm:           externalBase:Base address of external memory (ulong)
parm:           fastClear:Disable fast clear if set it to 0, enabled by default (int)
parm:           compression:Disable compression if set it to 0, enabled by default (int)
parm:           powerManagement:Disable auto power saving if set it to 1, enabled by default (int)
parm:           gpuProfiler:Enable profiling support, disabled by default (int)
parm:           baseAddress:Only used for old MMU, set it to 0 if memory which can be accessed by GPU falls into 0 - 2G, otherwise set it to 0x80000000 (ulong)
parm:           physSize:Obsolete (ulong)
parm:           logFileSize:Size of buffer to store GC driver output messsage, if it is not 0, message is read from /sys/kernel/debug/gc/galcore_trace, default value is 0 (uint)
parm:           recovery:Recover GPU from stuck (1: Enable, 0: Disable) (uint)
parm:           stuckDump:Level of stuck dump content (1: Minimal, 2: Middle, 3: Maximal) (uint)
parm:           showArgs:Display parameters value when driver loaded (int)
parm:           mmu:Disable MMU if set it to 0, enabled by default (int)
parm:           irqs:Array of IRQ numbers of multi-GPU (array of int)
parm:           registerBases:Array of bases of bus address of register of multi-GPU (array of uint)
parm:           registerSizes:Array of sizes of bus address range of register of multi-GPU (array of uint)
parm:           chipIDs:Array of chipIDs of multi-GPU (array of uint)
parm:           type:0 - Char Driver (Default), 1 - Misc Driver (uint)

Also gmem_info command fails as well:

gmem_info
[     1] Failed to open device: No such file or directory, Try again...
[     2] Failed to open device: No such file or directory, Try again...
[     3] Failed to open device: No such file or directory, Try again...
[     4] Failed to open device: No such file or directory, Try again...
[     5] _OpenDevice(1229): FATAL: Failed to open device, errno=No such file or directory.

I'm assuming the gmem_info command failure happens due /dev/galcore not being created.

Has anyone encountered this issue with the galcore driver with a newer NXP Linux Kernel? Is there a work around/fix?Any help/suggestions would be very much appreciated!

Thanks,

Neil

1 Solution
6,673 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

It has not an issue with 4.14.98 Linux kernel, however since you are using MX6D we recommend to use the 4.9.88 is the last for MX6D, the 4.14.98 is more for MX8.

However we are trying to reproduce your issue without success the galcore run normal

Regards

View solution in original post

0 Kudos
11 Replies
6,673 Views
npatel
Contributor III

Hi Bio_TICFSL,

Which imx-gpu-viv library binary should be used with the galcore driver from the 4.9.88 NXP imx kernel? I'm trying use the vivante fb with X11, but I'm encountering a segfault during X11 startup. Here is what my Xorg log file looks like:

# cat /var/log/Xorg.0.log
[    48.306]
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[    48.306] Build Operating System: Linux 4.15.0-62-generic x86_64
[    48.306] Current Operating System: Linux dbh670 4.14.98-imx+g1175b5961153 #1 SMP Thu Oct 3 15:51:42 UTC 2019 armv7l
[    48.306] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw
[    48.306] Build Date: 26 September 2019  01:31:08AM
[    48.306]
[    48.306] Current version of pixman: 0.38.0
[    48.307]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    48.307] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    48.307] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Sep 25 23:46:29 2019
[    48.307] (==) Using config file: "/etc/X11/xorg.conf"
[    48.307] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    48.308] (==) No Layout section.  Using the first Screen section.
[    48.308] (==) No screen section available. Using defaults.
[    48.308] (**) |-->Screen "Default Screen Section" (0)
[    48.308] (**) |   |-->Monitor "<default monitor>"
[    48.309] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    48.309] (**) |   |-->Device "i.MX Accelerated Framebuffer Device"
[    48.309] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    48.309] (**) Option "BlankTime" "0"
[    48.309] (**) Option "StandbyTime" "0"
[    48.309] (**) Option "SuspendTime" "0"
[    48.310] (**) Option "OffTime" "0"
[    48.310] (==) Automatically adding devices
[    48.310] (==) Automatically enabling devices
[    48.310] (==) Automatically adding GPU devices
[    48.310] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    48.310] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    48.310]    Entry deleted from font path.
[    48.310] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    48.310]    Entry deleted from font path.
[    48.310] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    48.310]    Entry deleted from font path.
[    48.310] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    48.310]    Entry deleted from font path.
[    48.310] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    48.310]    Entry deleted from font path.
[    48.310] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    48.310]    Entry deleted from font path.
[    48.310] (==) FontPath set to:
[    48.310] (==) ModulePath set to "/usr/lib/xorg/modules"
[    48.310] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    48.310] (II) Loader magic: 0x62ddd0
[    48.310] (II) Module ABI versions:
[    48.310]    X.Org ANSI C Emulation: 0.4
[    48.310]    X.Org Video Driver: 24.0
[    48.310]    X.Org XInput driver : 24.1
[    48.310]    X.Org Server Extension : 10.0
[    48.313] (--) using VT number 2
[    48.313] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    48.317] (II) xfree86: Adding drm device (/dev/dri/card2)
[    48.318] (II) xfree86: Adding drm device (/dev/dri/card0)
[    48.333] (II) xfree86: Adding drm device (/dev/dri/card1)
[    48.333] (II) no primary bus or device found
[    48.333]    falling back to /sys/devices/platform/platform:Vivante GCCore/drm/card2
[    48.333] (II) LoadModule: "glx"
[    48.334] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    48.348] (II) Module glx: vendor="X.Org Foundation"
[    48.348]    compiled for 1.20.4, module version = 1.0.0
[    48.348]    ABI class: X.Org Server Extension, version 10.0
[    48.348] (II) LoadModule: "vivante"
[    48.349] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[    48.351] (II) Module vivante: vendor="X.Org Foundation"
[    48.351]    compiled for 1.20.4, module version = 1.0.0
[    48.351]    ABI class: X.Org Video Driver, version 24.0
[    48.351] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
        VivanteGCCORE
[    48.377] (WW) Falling back to old probe method for vivante
[    48.377] (II) Loading sub module "fbdevhw"
[    48.377] (II) LoadModule: "fbdevhw"
[    48.378] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    48.378] (II) Module fbdevhw: vendor="X.Org Foundation"
[    48.378]    compiled for 1.20.4, module version = 0.0.2
[    48.378]    ABI class: X.Org Video Driver, version 24.0
[    48.378] (II) VIVANTE(0): using default device
[    48.382] (II) VIVANTE(0): Device preferred mode 'fb0':U:1680x1050p-0
[    48.382] (II) VIVANTE(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 16/16
[    48.382] (==) VIVANTE(0): Depth 16, (==) framebuffer bpp 16
[    48.383] (==) VIVANTE(0): RGB weight 565
[    48.383] (==) VIVANTE(0): Default visual is TrueColor
[    48.383] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[    48.383] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[    48.383] (**) VIVANTE(0): mExaHwType:1
[    48.383] (II) VIVANTE(0): checking modes against framebuffer device...
[    48.383] (II) VIVANTE(0): checking modes against monitor...
[    48.383] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[    48.383] (==) VIVANTE(0): DPI set to (96, 96)
[    48.383] (II) Loading sub module "fb"
[    48.383] (II) LoadModule: "fb"
[    48.383] (II) Loading /usr/lib/xorg/modules/libfb.so
[    48.384] (II) Module fb: vendor="X.Org Foundation"
[    48.384]    compiled for 1.20.4, module version = 1.0.0
[    48.384]    ABI class: X.Org ANSI C Emulation, version 0.4
[    48.384] (II) Loading sub module "exa"
[    48.384] (II) LoadModule: "exa"
[    48.384] (II) Loading /usr/lib/xorg/modules/libexa.so
[    48.385] (II) Module exa: vendor="X.Org Foundation"
[    48.385]    compiled for 1.20.4, module version = 2.6.0
[    48.385]    ABI class: X.Org Video Driver, version 24.0
[    48.385] (WW) VIVANTE(0): unable to support largest resolution (Invalid argument)(II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[    48.442] (EE) VIVANTE(0): unable to set VSCREENINFO for mode 'U:1680x1050p-0': Invalid argument
[    48.442] (EE) VIVANTE(0): unable to set frame buffer mode 'U:1680x1050p-0'
[    48.442] (II) VIVANTE(0): Modeline "current"x0.0    0.00  1680 1680 1680 1680  1050 1050 1050 1050 -hsync -vsync -csync (0.0 kHz b)
[    48.492] (II) VIVANTE(0): Output  has no monitor section
[    48.492] (II) VIVANTE(0): Printing probed modes for output
[    48.492] (II) VIVANTE(0): Modeline "current"x0.0    0.00  1680 1680 1680 1680  1050 1050 1050 1050 -hsync -vsync -csync (0.0 kHz b)
[    48.492] (II) VIVANTE(0): Output  connected
[    48.492] (II) VIVANTE(0): Using sloppy heuristic for initial modes
[    48.492] (II) VIVANTE(0): Output  using initial mode current +0+0
[    48.492] (II) VIVANTE(0): imxDisplayPreInit: virtual set 1680 x 1050, display width 0
[    48.493] (II) VIVANTE(0): VivPreInit: adjust display width 1680
[    48.493] (II) VIVANTE(0): reserve 4177920 bytes for on screen frame buffer; total fb memory size 3528000 bytes; offset of shadow buffer 4177920
[    48.493] (EE) VIVANTE(0): fb memory is not big enough to hold shadow buffer!
[    48.500] (EE) VIVANTE(0): unable to write 'current
' to sysnode '/sys/class/graphics/fb0/mode': Invalid argument
[    48.535] (II) VIVANTE(0): hardware:  (video memory: 3445kB)
[    48.576] (II) VIVANTE(0): FB Start = 0xb6147000  FB Base = 0xb6147000  FB Offset = (nil)
[    48.576] (II) VIVANTE(0): test Initializing EXA
[    48.820] (II) EXA(0): Driver allocated offscreen pixmaps
[    48.820] (II) EXA(0): Driver registered support for the following operations:
[    48.820] (II)         Solid
[    48.821] (II)         Copy
[    48.821] (II)         Composite (RENDER acceleration)
[    48.821] (II)         UploadToScreen
[    48.821] (==) VIVANTE(0): Backing store enabled
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    48.822] (==) VIVANTE(0): DPMS enabled
[    48.843] drmOpenDevice: node name is /dev/dri/card0
[    48.844] drmOpenDevice: open result is 13, (OK)
[    48.859] drmOpenDevice: node name is /dev/dri/card0
[    48.860] drmOpenDevice: open result is 13, (OK)
[    48.876] drmOpenByBusid: Searching for BusID platform:Vivante GCCore
[    48.876] drmOpenDevice: node name is /dev/dri/card0
[    48.876] drmOpenDevice: open result is 13, (OK)
[    48.876] drmOpenByBusid: drmOpenMinor returns 13
[    48.876] drmOpenByBusid: drmGetBusid reports display-subsystem
[    48.893] drmOpenDevice: node name is /dev/dri/card1
[    48.893] drmOpenDevice: open result is 13, (OK)
[    48.893] drmOpenByBusid: drmOpenMinor returns 13
[    48.893] drmOpenByBusid: drmGetBusid reports 130000.gpu
[    48.893] drmOpenDevice: node name is /dev/dri/card2
[    48.893] drmOpenDevice: open result is 13, (OK)
[    48.893] drmOpenByBusid: drmOpenMinor returns 13
[    48.894] drmOpenByBusid: drmGetBusid reports platform:Vivante GCCore
[    48.894] (II) [drm] DRM interface version 1.4
[    48.894] (II) [drm] DRM open master succeeded.
[    48.894] (II) VIVANTE(0): [drm] Using the DRM lock SAREA also for drawables.
[    48.894] (II) VIVANTE(0): [drm] framebuffer handle = 0x2c100000
[    48.894] (II) VIVANTE(0): [drm] added 1 reserved context for kernel
[    48.894] (II) VIVANTE(0): X context handle = 0x1
[    48.894] (EE) VIVANTE(0): [drm] failed to setup DRM signal handler
[    48.894] (EE) VIVANTE(0): [dri] DRIScreenInit failed.  Disabling DRI.
[    48.895] (II) Initializing extension Generic Event Extension
[    48.895] (II) Initializing extension SHAPE
[    48.895] (II) Initializing extension MIT-SHM
[    48.895] (II) Initializing extension XInputExtension
[    48.895] (II) Initializing extension XTEST
[    48.895] (II) Initializing extension BIG-REQUESTS
[    48.895] (II) Initializing extension SYNC
[    48.895] (II) Initializing extension XKEYBOARD
[    48.895] (II) Initializing extension XC-MISC
[    48.896] (II) Initializing extension XFIXES
[    48.896] (II) Initializing extension RENDER
[    48.896] (II) Initializing extension RANDR
[    48.896] (II) Initializing extension COMPOSITE
[    48.896] (II) Initializing extension DAMAGE
[    48.896] (II) Initializing extension MIT-SCREEN-SAVER
[    48.896] (II) Initializing extension DOUBLE-BUFFER
[    48.896] (II) Initializing extension DPMS
[    48.896] (II) Initializing extension Present
[    48.896] (II) Initializing extension DRI3
[    48.896] (II) Initializing extension X-Resource
[    48.896] (II) Initializing extension XVideo
[    48.896] (II) Initializing extension XVideo-MotionCompensation
[    48.896] (II) Initializing extension GLX
[    48.897] (II) AIGLX: Screen 0 is not DRI2 capable
[    48.951] (II) IGLX: Loaded and initialized swrast
[    48.951] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    48.951] (II) Initializing extension XFree86-VidModeExtension
[    48.951] (II) Initializing extension XFree86-DGA
[    48.952] (II) Initializing extension XFree86-DRI
[    48.952] (II) Initializing extension DRI2
[    48.952] (II) Initializing extension vivext
[    48.952] (II) VIVANTE(0): Setting screen physical size to 444 x 277
[    49.144] (EE)
[    49.145] (EE) Backtrace:
[    49.145] (EE)
[    49.146] (EE) Segmentation fault at address 0xc0000000
[    49.146] (EE)
Fatal server error:
[    49.147] (EE) Caught signal 11 (Segmentation fault). Server aborting
[    49.147] (EE)
[    49.148] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[    49.149] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    49.149] (EE)
[    49.236] (EE) Server terminated with error (1). Closing log file.
I appreciate your help!
Thanks,
Neil
0 Kudos
6,674 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

It has not an issue with 4.14.98 Linux kernel, however since you are using MX6D we recommend to use the 4.9.88 is the last for MX6D, the 4.14.98 is more for MX8.

However we are trying to reproduce your issue without success the galcore run normal

Regards

0 Kudos
6,673 Views
npatel
Contributor III

Hi Bio_TICFSL,

Would you be able to provide the gpu node entries in the device tree for the IMX6D/IMX6Q? I want to verify if that may be causing the problem of the galcore driver not loading properly.

I appreciate your help!

Thanks,

Neil

0 Kudos
6,673 Views
npatel
Contributor III

Hi Bio_TICFSL,

Using the galcore driver from the 4.9.88 imx kernel did the trick! Now I can also run the gmem_info utility as well (used to either crash the galcore driver or couldn't open the /dev/galcore device):

root@imx:/dev# gmem_info
 Pid          Total      Reserved    Contiguous       Virtual      Nonpaged    Name
 ------------------------------------------------------------------------------
    0             0             0             0             0             0    Summary
    -             -   134,217,728             -             -             -    Available
GPU Idle time:  0.000000 ms
root@imx:/dev#

Thank you very much for your help!

-Neil

6,673 Views
satyajit_bhuyan
Contributor I

Hi,

I am using kernel 4.14.174 with yocto Sumo revision.

My galcore is 6.2.4 and i am using qt5 for my HMI

As soon as i run HMI , it gets crashed.

the log of backtrace looks like:

root@fusion:/opt/HMI/bin# root@fusion:/opt/HMI/bin# ./HMI -platform eglfs
QEglFSVivIntegration will set environment variable FB_MULTI_BUFFEUnable to handle kernel paging request at virtual address 50d3d904
R=2 to enable double buffering anpgd = a95d4000
d vsync.
If this is not desired[50d3d904] *pgd=00000000
, you can override this via: expoInternal error: Oops: 5 [#2] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 340 Comm: HMI Tainted: G D 4.14.174-ga-fusion+ga1a0dd213d72 #1
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
task: a81af800 task.stack: a8076000
PC is at gckDEVICE_Dispatch+0x30/0x124
LR is at drv_ioctl+0x144/0x1f8
pc : [<80705274>] lr : [<806fe068>] psr: 800d0013
sp : a8077d60 ip : 7ed46cb0 fp : 7549fd34
r10: 00000036 r9 : a8076000 r8 : 7ed46a28
r7 : 00000051 r6 : a95cc900 r5 : a861c000 r4 : 00000051
r3 : 50d3d860 r2 : 0000000b r1 : a8077d88 r0 : a86d0a00
Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control: 10c53c7d Table: 395d4059 DAC: 00000051
Process HMI (pid: 340, stack limit = 0xa8076210)
Stack: (0xa8077d60 to 0xa8078000)
7d60: 00000051 806fe068 7ed46a78 00000000 00000190 00000000 7ed46a78 00000000
7d80: 00000190 00000000 00000028 7ed46cb0 76f90808 7ed47e04 7582db8c 00000009
7da0: 7549d4c0 754cab20 00000001 0d696914 76fa6a80 00000002 76fa8ad8 7ed46b20
7dc0: 000002fa 7ed46b24 753bf8d4 76f86870 00000001 753c2874 000002fa 753c3714
7de0: 76fa8ad8 7ed46b24 7ed46b20 7ed46b50 0000013b 00000000 bb797b34 753c3714
7e00: 753bf8d4 05dbcbd9 753c3c17 753c3714 753c2874 7ed46b94 76fad908 76fadfa4
7e20: aaaaaaab 76fa51c8 00000018 76fad908 00000000 00000000 753c3d82 bb797b34
7e40: 00000000 76fa8c90 7ed46b94 753c3c17 7ed46bf4 76fa8ad8 7ed46b9c 76f872f8
7e60: 7ed46b9c 76faea64 00000016 00000000 00000001 00000000 00000001 76fa8ad8
7e80: 7ed46c24 76fa8c90 00000000 76f872f8 7ed46bcc 76faea64 00000016 00000000
7ea0: 00000001 037fd108 00000001 753c2874 76fa8ad8 76fa8c90 00000000 00000000
7ec0: 00000001 0229fb28 00000001 753be000 000f3518 76fa34d0 00000000 00000001
7ee0: 000f4240 7549fd24 7549fd34 76f8c570 00000000 00000001 00000001 00000000
7f00: 000f3214 753c2874 022a13e0 754c95a4 00000000 7ed46c5c 80f0aedc 7ed46a28
7f20: a85d97a0 a95a3480 00007530 8021ae98 00000001 00000000 76fad908 809cfda0
7f40: a814f700 8016fa5c 80e7ac34 00000000 00000047 00000000 80e7ac34 00000000
7f60: 00000047 00000000 00000001 8016f10c a95a3480 a95a3480 00000006 00007530
7f80: 7ed46a28 a8076000 00000036 8021b6f4 00002710 00007530 754c95a4 00000036
7fa0: 80107ac4 801078c0 00002710 00007530 00000006 00007530 7ed46a28 022a17e8
7fc0: 00002710 00007530 754c95a4 00000036 00000000 7ed46a78 00000190 7549fd34
7fe0: 757b69e0 7ed46a14 754992a0 757b69ec 600d0010 00000006 00000000 00000000
[<80705274>] (gckDEVICE_Dispatch) from [<806fe068>] (drv_ioctl+0x144/0x1f8)
[<806fe068>] (drv_ioctl) from [<8021ae98>] (do_vfs_ioctl+0x9c/0x8c4)
[<8021ae98>] (do_vfs_ioctl) from [<8021b6f4>] (SyS_ioctl+0x34/0x58)
[<8021b6f4>] (SyS_ioctl) from [<801078c0>] (ret_fast_syscall+0x0/0x54)
Code: e5913008 e3a0200b e0233c92 e0803103 (e593c0a4)
rt QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
---[ end trace bb430ff122e888b5 ]---
Segmentation fault

Any help would be appreciated

0 Kudos
6,673 Views
npatel
Contributor III

Hello Bio_TICFSL,

Can you confirm whether there is an issue with the vivante driver in the 4.14.98 NXP Linux kernel?

Thanks,

Neil

0 Kudos
6,673 Views
npatel
Contributor III

Using the galcore driver from kernel-module-imx-gpu-viv_6.2.4.p4.0.bb kernel-module-imx-gpu-viv_6.2.4.p4.0.bb, in which the SRCBRANCH is the same 4.14.98_2.0.0 linux kernel, the driver crashes when manually loaded:

During boot:
[    3.889871] Galcore version 6.2.4.190076
[    3.893962] galcore: probe of 130000.gpu failed with error -22
.
.
.
.
.
.
root@dbh670:~# modprobe galcore showArgs=1
[   42.768132] Unable to handle kernel paging request at virtual address bf03d2c4
[   42.775410] pgd = d8c40000
[   42.778122] [bf03d2c4] *pgd=28aea811, *pte=00000000, *ppte=00000000
[   42.784446] Internal error: Oops: 7 [#1] SMP ARM
[   42.789067] Modules linked in: galcore(O+) [last unloaded: galcore]
[   42.795349] CPU: 1 PID: 275 Comm: modprobe Tainted: G           O    4.14.98-imx+g1175b5961153 #1
[   42.804221] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[   42.810750] task: d8884ac0 task.stack: d91b4000
[   42.815291] PC is at of_dma_configure+0x120/0x274
[   42.819996] LR is at 0x0
[   42.822530] pc : [<c06eae20>]    lr : [<00000000>]    psr: 80070013
[   42.828798] sp : d91b5d28  ip : d80ae340  fp : 00000028
[   42.834023] r10: 00000000  r9 : 00000000  r8 : db73b8f4
[   42.839248] r7 : 00000000  r6 : ffffffff  r5 : d80ae210  r4 : 00000000
[   42.845776] r3 : ffffffff  r2 : bf03d2c0  r1 : 00000000  r0 : db73b8f4
[   42.852305] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   42.859441] Control: 10c5387d  Table: 28c4004a  DAC: 00000051
[   42.865188] Process modprobe (pid: 275, stack limit = 0xd91b4210)
[   42.871282] Stack: (0xd91b5d28 to 0xd91b6000)
[   42.875642] 5d20:                   ffffffed d9014c10 d80ae210 ffffffed 00000000 00000000
[   42.883823] 5d40: bf0c02dc c04f5708 00000000 00000001 d80ae210 d80ae210 c0ecae10 00000000
[   42.892003] 5d60: 00000000 bf0c02dc 00000005 c04f22e0 d80ae210 bf0c02dc d80ae244 00000000
[   42.900183] 5d80: d9014764 00000001 00000000 c04f24d8 00000000 bf0c02dc c04f2428 c04f0928
[   42.908364] 5da0: d803a158 d80bc6b4 bf0c02dc d811f600 c0e2bcb0 c04f1920 bf0b99b4 bf0c02c8
[   42.916545] 5dc0: bf0c02dc bf0c02dc bf0c02c8 00000000 00000000 c04f2d90 bf0e93e4 bf0c02c8
[   42.924725] 5de0: 00000000 bf0f4054 ffffe000 bf0f4000 00000000 bf0e91c0 d9014764 c01018f8
[   42.932906] 5e00: 00000000 8040003f 00187961 00000000 00000001 c0e6495c d8138800 0000000f
[   42.941086] 5e20: c0d71104 8040003f c0e64600 00000400 00000000 80070013 d8001e40 014000c0
[   42.949266] 5e40: 00000028 c02025b0 bf0e91c0 00000001 d9014b40 bf0e91c0 d9014764 c01982c4
[   42.957446] 5e60: 00000001 c019a200 d91b5f50 d91b5f50 00000001 d9014740 bf0e91c0 c019a208
[   42.965627] 5e80: bf0e91cc 00007fff bf0e91c0 c0197570 bf0e9208 c0196f14 bf0e937c bf0bd424
[   42.973807] 5ea0: bf0e92f0 c0c09760 c0a0381c c0b61824 c0b616e8 ffffe000 bf000000 000895e4
[   42.981987] 5ec0: 00000000 d89826c0 d91b5f48 00000000 00000000 00000000 00000000 00000000
[   42.990167] 5ee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   42.998346] 5f00: 00000000 00000000 7fffffff 00000000 00000003 0083e458 0000017b c0107964
[   43.006526] 5f20: d91b4000 0000017b 0083e290 c019a9b0 7fffffff 00000000 00000003 00000000
[   43.014706] 5f40: 00000000 f0e47000 000895e4 00000000 f0e8124a f0e47000 000895e4 f0ecfeb4
[   43.022887] 5f60: f0ecfcd8 f0eb8984 00067000 0006ae00 00000000 00000000 00000000 000108bc
[   43.031067] 5f80: 0000002b 0000002c 00000023 00000027 0000001b 00000000 00000000 0083e458
[   43.039247] 5fa0: 0000000a c0107760 00000000 0083e458 00000003 0083e458 00000000 00040000
[   43.047427] 5fc0: 00000000 0083e458 0000000a 0000017b 00000000 0000000a 008452e8 0083e290
[   43.055607] 5fe0: be8079c0 be8079b0 0048a4c9 b6eeee12 40070030 00000003 00000000 00000000
[   43.063801] [<c06eae20>] (of_dma_configure) from [<c04f22e0>] (driver_probe_device+0x190/0x2d8)
[   43.072508] [<c04f22e0>] (driver_probe_device) from [<c04f24d8>] (__driver_attach+0xb0/0xb4)
[   43.080952] [<c04f24d8>] (__driver_attach) from [<c04f0928>] (bus_for_each_dev+0x78/0x9c)
[   43.089135] [<c04f0928>] (bus_for_each_dev) from [<c04f1920>] (bus_add_driver+0x1bc/0x200)
[   43.097405] [<c04f1920>] (bus_add_driver) from [<c04f2d90>] (driver_register+0x78/0xf4)
[   43.105561] [<c04f2d90>] (driver_register) from [<bf0f4054>] (gpu_init+0x54/0x1000 [galcore])
[   43.114199] [<bf0f4054>] (gpu_init [galcore]) from [<c01018f8>] (do_one_initcall+0x44/0x170)
[   43.122649] [<c01018f8>] (do_one_initcall) from [<c01982c4>] (do_init_module+0x60/0x210)
[   43.130747] [<c01982c4>] (do_init_module) from [<c019a208>] (load_module+0x1d2c/0x22c4)
[   43.138757] [<c019a208>] (load_module) from [<c019a9b0>] (SyS_finit_module+0xa4/0xbc)
[   43.146595] [<c019a9b0>] (SyS_finit_module) from [<c0107760>] (ret_fast_syscall+0x0/0x54)
[   43.154777] Code: e1a00006 e1a01004 e1cc00f0 e1a00008 (e5921004)
[   43.160926] ---[ end trace 63d0275da6157e5c ]---
Segmentation fault
root@dbh670:~#
0 Kudos
6,673 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello Neil,

It appears that galcore compiled for other kernel version, however please download again the whole bsp.

Regards

0 Kudos
6,672 Views
npatel
Contributor III

Hi Bio_TICFSL,

I've rebuilt my image from scratch, re-downloading the BSP and still got the same error. Can you also tell me what the galcore error flags are?

I.e.:

galcore: probe of 130000.gpu failed with error -22

What is error -22?

Thanks,

Neil

6,575 Views
hiteshviradiya
Contributor I

Hi Neil,

I am facing similar error, how did you resolve it ?

--

Thanks,

Hitesh

0 Kudos
6,673 Views
npatel
Contributor III

Hi Bio_TICFSL,

I'll try doing a clean build in yocto and let you know how that goes.

Thanks,

Neil

0 Kudos