IMX6Q X11 Vivante GPU acceleration Segmentation Fault

cancel
Showing results for 
Search instead for 
Did you mean: 

IMX6Q X11 Vivante GPU acceleration Segmentation Fault

351 Views
Contributor III

Hi,

I am currently facing issues when trying to start X11 with Vivante GPU acceleration. This is on a custom board, using the NXP 4.14.98_2.0.0 GA Linux Kernel. I am currently using:

X.Org X Server 1.20.4

imx-gpu-viv_6.2.4.p1.8

xf86-video-imx-vivante  -->
SRCREV = "b765c3ffc0dcc4246afa659aa0d59f78a6736b08"
SRCBRANCH = "imx_exa_viv6_g2d"
SRC_URI = "git://source.codeaurora.org/external/imx/xf86-video-imx-vivante.git;protocol=https;branch=${SRCBRANCH}

Galcore version: 6.2.4.150331 (from NXP 4.9.88_2.0.0 GA Linux kernel release, which is the one that works)

Here is Xorg log, in which a segmentation fault occurs:

X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[    19.959] Build Operating System: Linux 4.15.0-65-generic x86_64
[    19.959] Current Operating System: Linux dbh670 4.14.98-imx+g1175b5961153 #1 SMP Mon Oct 14 20:04:51 UTC 2019 armv7l
[    19.959] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw vmalloc=400M
[    19.960] Build Date: 16 October 2019  05:31:35PM
[    19.960]
[    19.960] Current version of pixman: 0.38.0
[    19.960]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    19.960] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    19.960] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Oct 16 17:03:58 2019
[    19.960] (==) Using config file: "/etc/X11/xorg.conf"
[    19.960] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    19.961] (==) ServerLayout "Default Layout"
[    19.961] (**) |-->Screen "Default Screen" (0)
[    19.961] (**) |   |-->Monitor "Configured Monitor"
[    19.962] (**) |   |-->Device "Your Accelerated Framebuffer Device"
[    19.963] (==) Automatically adding devices
[    19.963] (==) Automatically enabling devices
[    19.963] (==) Automatically adding GPU devices
[    19.963] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    19.963] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    19.963]    Entry deleted from font path.
[    19.963] (==) FontPath set to:

[    19.963] (==) ModulePath set to "/usr/lib/xorg/modules"
[    19.963] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    19.963] (II) Loader magic: 0x557dd0
[    19.963] (II) Module ABI versions:
[    19.963]    X.Org ANSI C Emulation: 0.4
[    19.963]    X.Org Video Driver: 24.0
[    19.963]    X.Org XInput driver : 24.1
[    19.963]    X.Org Server Extension : 10.0
[    19.966] (--) using VT number 2

[    19.966] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    19.970] (II) xfree86: Adding drm device (/dev/dri/card2)
[    19.970] (II) xfree86: Adding drm device (/dev/dri/card0)
[    19.975] (II) xfree86: Adding drm device (/dev/dri/card1)
[    19.975] (II) no primary bus or device found
[    19.975]    falling back to /sys/devices/platform/platform:Vivante GCCore/drm/card2
[    19.975] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[    19.975] (II) LoadModule: "dbe"
[    19.976] (II) Module "dbe" already built-in
[    19.976] (II) LoadModule: "extmod"
[    19.976] (II) Module "extmod" already built-in
[    19.976] (II) LoadModule: "glx"
[    19.976] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    19.988] (II) Module glx: vendor="X.Org Foundation"
[    19.988]    compiled for 1.20.4, module version = 1.0.0
[    19.988]    ABI class: X.Org Server Extension, version 10.0
[    19.988] (II) LoadModule: "dri"
[    19.988] (II) Module "dri" already built-in
[    19.988] (II) LoadModule: "vivante"
[    19.988] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[    19.989] (II) Module vivante: vendor="X.Org Foundation"
[    19.989]    compiled for 1.20.4, module version = 1.0.0
[    19.989]    ABI class: X.Org Video Driver, version 24.0
[    19.989] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
        VivanteGCCORE
[    20.004] (WW) Falling back to old probe method for vivante
[    20.004] (II) Loading sub module "fbdevhw"
[    20.004] (II) LoadModule: "fbdevhw"
[    20.004] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    20.005] (II) Module fbdevhw: vendor="X.Org Foundation"
[    20.005]    compiled for 1.20.4, module version = 0.0.2
[    20.005]    ABI class: X.Org Video Driver, version 24.0
[    20.005] (II) VIVANTE(0): using default device
[    20.007] (II) VIVANTE(0): Device preferred mode 'fb0':U:1920x1080p-0
[    20.007] (II) VIVANTE(0): Creating default Display subsection in Screen section
        "Default Screen" for depth/fbbpp 16/16
[    20.008] (**) VIVANTE(0): Depth 16, (--) framebuffer bpp 16
[    20.008] (==) VIVANTE(0): RGB weight 565
[    20.008] (==) VIVANTE(0): Default visual is TrueColor
[    20.008] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[    20.008] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[    20.008] (**) VIVANTE(0): mExaHwType:1
[    20.008] (II) VIVANTE(0): checking modes against framebuffer device...
[    20.008] (II) VIVANTE(0): checking modes against monitor...
[    20.008] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[    20.008] (==) VIVANTE(0): DPI set to (96, 96)
[    20.008] (II) Loading sub module "fb"
[    20.008] (II) LoadModule: "fb"
[    20.008] (II) Loading /usr/lib/xorg/modules/libfb.so
[    20.009] (II) Module fb: vendor="X.Org Foundation"
[    20.009]    compiled for 1.20.4, module version = 1.0.0
[    20.009]    ABI class: X.Org ANSI C Emulation, version 0.4
[    20.010] (II) Loading sub module "exa"
[    20.010] (II) LoadModule: "exa"
[    20.010] (II) Loading /usr/lib/xorg/modules/libexa.so
[    20.010] (II) Module exa: vendor="X.Org Foundation"
[    20.010]    compiled for 1.20.4, module version = 2.6.0
[    20.010]    ABI class: X.Org Video Driver, version 24.0
[    20.011] (WW) VIVANTE(0): unable to support largest resolution (Invalid argument)(II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[    20.068] (EE) VIVANTE(0): unable to set VSCREENINFO for mode 'U:1920x1080p-0': Invalid argument
[    20.068] (EE) VIVANTE(0): unable to set frame buffer mode 'U:1920x1080p-0'
[    20.068] (II) VIVANTE(0): Modeline "current"x0.0    0.00  1920 1920 1920 1920  1080 1080 1080 1080 -hsync -vsync -csync (0.0 kHz b)
[    20.118] (II) VIVANTE(0): Output  using monitor section Configured Monitor
[    20.118] (II) VIVANTE(0): Printing probed modes for output
[    20.118] (II) VIVANTE(0): Modeline "current"x0.0    0.00  1920 1920 1920 1920  1080 1080 1080 1080 -hsync -vsync -csync (0.0 kHz b)
[    20.118] (II) VIVANTE(0): Output  connected
[    20.118] (II) VIVANTE(0): Using sloppy heuristic for initial modes
[    20.118] (II) VIVANTE(0): Output  using initial mode current +0+0
[    20.118] (II) VIVANTE(0): imxDisplayPreInit: virtual set 1920 x 1080, display width 0
[    20.118] (II) VIVANTE(0): VivPreInit: adjust display width 1920
[    20.119] (II) VIVANTE(0): reserve 4177920 bytes for on screen frame buffer; total fb memory size 4147200 bytes; offset of shadow buffer 4177920
[    20.119] (EE) VIVANTE(0): fb memory is not big enough to hold shadow buffer!
[    20.127] (EE) VIVANTE(0): unable to write 'current
' to sysnode '/sys/class/graphics/fb0/mode': Invalid argument
[    20.161] (II) VIVANTE(0): hardware:  (video memory: 4050kB)
[    20.203] (II) VIVANTE(0): FB Start = 0xb613d000  FB Base = 0xb613d000  FB Offset = (nil)
[    20.204] (II) VIVANTE(0): test Initializing EXA
[    20.604] (II) EXA(0): Driver allocated offscreen pixmaps
[    20.604] (II) EXA(0): Driver registered support for the following operations:
[    20.604] (II)         Solid
[    20.604] (II)         Copy
[    20.604] (II)         Composite (RENDER acceleration)
[    20.604] (II)         UploadToScreen
[    20.604] (==) VIVANTE(0): Backing store enabled
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.605] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[    20.606] (==) VIVANTE(0): DPMS enabled
[    20.637] drmOpenDevice: node name is /dev/dri/card0
[    20.637] drmOpenDevice: open result is 13, (OK)
[    20.653] drmOpenDevice: node name is /dev/dri/card0
[    20.653] drmOpenDevice: open result is 13, (OK)
[    20.670] drmOpenByBusid: Searching for BusID platform:Vivante GCCore
[    20.670] drmOpenDevice: node name is /dev/dri/card0
[    20.670] drmOpenDevice: open result is 13, (OK)
[    20.670] drmOpenByBusid: drmOpenMinor returns 13
[    20.670] drmOpenByBusid: drmGetBusid reports display-subsystem
[    20.686] drmOpenDevice: node name is /dev/dri/card1
[    20.686] drmOpenDevice: open result is 13, (OK)
[    20.686] drmOpenByBusid: drmOpenMinor returns 13
[    20.687] drmOpenByBusid: drmGetBusid reports 130000.gpu
[    20.687] drmOpenDevice: node name is /dev/dri/card2
[    20.687] drmOpenDevice: open result is 13, (OK)
[    20.687] drmOpenByBusid: drmOpenMinor returns 13
[    20.687] drmOpenByBusid: drmGetBusid reports platform:Vivante GCCore
[    20.687] (II) [drm] DRM interface version 1.4
[    20.687] (II) [drm] DRM open master succeeded.
[    20.687] (II) VIVANTE(0): [drm] Using the DRM lock SAREA also for drawables.
[    20.687] (II) VIVANTE(0): [drm] framebuffer handle = 0x7c100000
[    20.687] (II) VIVANTE(0): [drm] added 1 reserved context for kernel
[    20.687] (II) VIVANTE(0): X context handle = 0x1
[    20.687] (EE) VIVANTE(0): [drm] failed to setup DRM signal handler
[    20.687] (EE) VIVANTE(0): [dri] DRIScreenInit failed.  Disabling DRI.
[    20.687] (II) Initializing extension Generic Event Extension
[    20.687] (II) Initializing extension SHAPE
[    20.687] (II) Initializing extension MIT-SHM
[    20.687] (II) Initializing extension XInputExtension
[    20.688] (II) Initializing extension XTEST
[    20.688] (II) Initializing extension BIG-REQUESTS
[    20.688] (II) Initializing extension SYNC
[    20.688] (II) Initializing extension XKEYBOARD
[    20.688] (II) Initializing extension XC-MISC
[    20.688] (II) Initializing extension XFIXES
[    20.688] (II) Initializing extension RENDER
[    20.688] (II) Initializing extension RANDR
[    20.688] (II) Initializing extension COMPOSITE
[    20.688] (II) Initializing extension DAMAGE
[    20.688] (II) Initializing extension MIT-SCREEN-SAVER
[    20.688] (II) Initializing extension DOUBLE-BUFFER
[    20.688] (II) Initializing extension DPMS
[    20.688] (II) Initializing extension Present
[    20.688] (II) Initializing extension DRI3
[    20.688] (II) Initializing extension X-Resource
[    20.688] (II) Initializing extension XVideo
[    20.688] (II) Initializing extension XVideo-MotionCompensation
[    20.688] (II) Initializing extension GLX
[    20.688] (II) AIGLX: Screen 0 is not DRI2 capable
[    20.740] (II) IGLX: Loaded and initialized swrast
[    20.741] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    20.741] (II) Initializing extension XFree86-VidModeExtension
[    20.741] (II) Initializing extension XFree86-DGA
[    20.741] (II) Initializing extension XFree86-DRI
[    20.741] (II) Initializing extension DRI2
[    20.741] (II) Initializing extension vivext
[    20.741] (II) VIVANTE(0): Setting screen physical size to 508 x 285
[    20.954] (EE)
[    20.954] (EE) Backtrace:
[    20.954] (EE)
[    20.954] (EE) Segmentation fault at address 0xc0000000
[    20.954] (EE)
Fatal server error:
[    20.954] (EE) Caught signal 11 (Segmentation fault). Server aborting
[    20.954] (EE)
[    20.954] (EE)

What are the recommended versions of Xserver, imx-gpu-viv, and xf86-video-imx-vivante to use with NXP kernel 4.14.98_2.0.0 GA?

Thanks,

Neil

0 Kudos
1 Reply

65 Views
NXP TechSupport
NXP TechSupport

Hello Neil,

Your issue is problem with the memory, try to run DDR stress tool, for X11 you must download the vivante 5.0.11 driver version, because the 6.2 is for DRM. download the L4.1.15 BSP.

Regards

0 Kudos