IMX6 X11 Vivante GPU acceleration Segmentation Fault

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

IMX6 X11 Vivante GPU acceleration Segmentation Fault

3,396 Views
edward_fu
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 imx_4.9.123_imx8mm_ga GA Linux Kernel. I am currently using yocto warrior version and meta-freescale layer is also warrior version  :

Below is the Xorg log:

How to solve this issue ?

[ 132.357]
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[ 132.358] Build Operating System: Linux 4.15.0-70-generic x86_64
[ 132.358] Current Operating System: Linux ariel 4.9.123-imx+g6a71cbc #1 SMP PREEMPT Tue Feb 18 02:46:17 UTC 2020 armv7l
[ 132.358] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw net.ifnames=0 biosdevname=0 video=mxcfb0:dev=ldb,LDB-SVGA,if=RGB666,bpp=18 ldb=spl0 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=40M vmalloc=400M enable_wait_mode=off fsck.mode=force fsck.repair=yes
[ 132.358] Build Date: 04 December 2019 10:49:08AM
[ 132.358]
[ 132.358] Current version of pixman: 0.38.0
[ 132.358] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 132.358] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 132.359] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Mar 2 05:35:12 2020
[ 132.361] (==) Using config file: "/etc/X11/xorg.conf"
[ 132.361] (==) Using config directory: "/etc/X11/xorg.conf.d"
[ 132.361] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 132.364] (==) ServerLayout "ServerLayout0"
[ 132.364] (==) No screen section available. Using defaults.
[ 132.364] (**) |-->Screen "Default Screen Section" (0)
[ 132.364] (**) | |-->Monitor "<default monitor>"
[ 132.366] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 132.366] (**) | |-->Device "i.MX Accelerated Framebuffer Device"
[ 132.366] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[ 132.366] (**) Option "BlankTime" "0"
[ 132.366] (**) Option "StandbyTime" "0"
[ 132.366] (**) Option "SuspendTime" "0"
[ 132.366] (**) Option "OffTime" "0"
[ 132.366] (==) Automatically adding devices
[ 132.366] (==) Automatically enabling devices
[ 132.366] (==) Automatically adding GPU devices
[ 132.366] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 132.366] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[ 132.367] Entry deleted from font path.
[ 132.367] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[ 132.367] Entry deleted from font path.
[ 132.367] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[ 132.367] Entry deleted from font path.
[ 132.367] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[ 132.367] Entry deleted from font path.
[ 132.367] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[ 132.367] Entry deleted from font path.
[ 132.367] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[ 132.367] Entry deleted from font path.
[ 132.367] (==) FontPath set to:

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

[ 132.372] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 132.374] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 132.376] (II) no primary bus or device found
[ 132.376] falling back to /sys/devices/platform/Vivante GCCore/drm/card0
[ 132.376] (II) LoadModule: "glx"
[ 132.377] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 132.389] (II) Module glx: vendor="X.Org Foundation"
[ 132.389] compiled for 1.20.4, module version = 1.0.0
[ 132.389] ABI class: X.Org Server Extension, version 10.0
[ 132.389] (II) LoadModule: "vivante"
[ 132.390] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[ 132.391] (II) Module vivante: vendor="X.Org Foundation"
[ 132.391] compiled for 1.20.4, module version = 1.0.0
[ 132.391] ABI class: X.Org Video Driver, version 24.0
[ 132.391] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
VivanteGCCORE
[ 132.396] (WW) Falling back to old probe method for vivante
[ 132.397] (II) Loading sub module "fbdevhw"
[ 132.397] (II) LoadModule: "fbdevhw"
[ 132.397] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 132.398] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 132.398] compiled for 1.20.4, module version = 0.0.2
[ 132.398] ABI class: X.Org Video Driver, version 24.0
[ 132.398] (II) VIVANTE(0): using default device
[ 132.404] (II) VIVANTE(0): Device preferred mode 'fb0':U:800x600p-66
[ 132.404] (II) VIVANTE(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 16/16
[ 132.404] (==) VIVANTE(0): Depth 16, (==) framebuffer bpp 16
[ 132.404] (==) VIVANTE(0): RGB weight 565
[ 132.404] (==) VIVANTE(0): Default visual is TrueColor
[ 132.404] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[ 132.404] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[ 132.405] (**) VIVANTE(0): mExaHwType:1
[ 132.405] (II) VIVANTE(0): checking modes against framebuffer device...
[ 132.405] (II) VIVANTE(0): checking modes against monitor...
[ 132.405] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[ 132.405] (==) VIVANTE(0): DPI set to (96, 96)
[ 132.405] (II) Loading sub module "fb"
[ 132.405] (II) LoadModule: "fb"
[ 132.405] (II) Loading /usr/lib/xorg/modules/libfb.so
[ 132.407] (II) Module fb: vendor="X.Org Foundation"
[ 132.407] compiled for 1.20.4, module version = 1.0.0
[ 132.407] ABI class: X.Org ANSI C Emulation, version 0.4
[ 132.407] (II) Loading sub module "exa"
[ 132.407] (II) LoadModule: "exa"
[ 132.408] (II) Loading /usr/lib/xorg/modules/libexa.so
[ 132.408] (II) Module exa: vendor="X.Org Foundation"
[ 132.408] compiled for 1.20.4, module version = 2.6.0
[ 132.408] ABI class: X.Org Video Driver, version 24.0
[ 132.472] (II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[ 132.472] (II) VIVANTE(0): Modeline "U:800x600p-66"x0.0 40.00 800 840 850 950 600 603 605 635 hskew 1 vscan 10884672 -hsync -vsync -csync (42.1 kHz eP)
[ 132.500] (II) VIVANTE(0): Output DISP3 BG has no monitor section
[ 132.500] (II) VIVANTE(0): Printing probed modes for output DISP3 BG
[ 132.500] (II) VIVANTE(0): Modeline "U:800x600p-66"x0.0 40.00 800 840 850 950 600 603 605 635 hskew 1 vscan 10884672 -hsync -vsync -csync (42.1 kHz eP)
[ 132.500] (II) VIVANTE(0): Output DISP3 BG connected
[ 132.500] (II) VIVANTE(0): Using exact sizes for initial modes
[ 132.500] (II) VIVANTE(0): Output DISP3 BG using initial mode U:800x600p-66 +0+0
[ 132.500] (II) VIVANTE(0): imxDisplayPreInit: virtual set 800 x 600, display width 0
[ 132.500] (II) VIVANTE(0): VivPreInit: adjust display width 800
[ 132.560] (II) VIVANTE(0): reserve 4177920 bytes for on screen frame buffer; total fb memory size 8358400 bytes; offset of shadow buffer 4177920
[ 132.630] (II) VIVANTE(0): hardware: DISP3 BG (video memory: 8162kB)
[ 132.662] (II) VIVANTE(0): FB Start = 0x75ccc000 FB Base = 0x75ccc000 FB Offset = (nil)
[ 132.662] (II) VIVANTE(0): test Initializing EXA
[ 133.142] (II) EXA(0): Driver allocated offscreen pixmaps
[ 133.142] (II) EXA(0): Driver registered support for the following operations:
[ 133.142] (II) Solid
[ 133.142] (II) Copy
[ 133.142] (II) Composite (RENDER acceleration)
[ 133.142] (II) UploadToScreen
[ 133.142] (==) VIVANTE(0): Backing store enabled
[ 133.142] (==) VIVANTE(0): DPMS enabled
[ 133.145] drmOpenDevice: node name is /dev/dri/card0
[ 133.145] drmOpenDevice: open result is 13, (OK)
[ 133.145] drmOpenDevice: node name is /dev/dri/card0
[ 133.145] drmOpenDevice: open result is 13, (OK)
[ 133.145] drmOpenByBusid: Searching for BusID platform:Vivante GCCore:00
[ 133.145] drmOpenDevice: node name is /dev/dri/card0
[ 133.145] drmOpenDevice: open result is 13, (OK)
[ 133.145] drmOpenByBusid: drmOpenMinor returns 13
[ 133.145] drmOpenByBusid: drmGetBusid reports platform:Vivante GCCore:00
[ 133.146] (II) [drm] DRM interface version 1.4
[ 133.146] (II) [drm] DRM open master succeeded.
[ 133.146] (II) VIVANTE(0): [drm] Using the DRM lock SAREA also for drawables.
[ 133.146] (II) VIVANTE(0): [drm] framebuffer handle = 0x44700000
[ 133.146] (II) VIVANTE(0): [drm] added 1 reserved context for kernel
[ 133.146] (II) VIVANTE(0): X context handle = 0x1
[ 133.146] (EE) VIVANTE(0): [drm] failed to setup DRM signal handler
[ 133.146] (EE) VIVANTE(0): [dri] DRIScreenInit failed. Disabling DRI.
[ 133.146] (II) Initializing extension Generic Event Extension
[ 133.146] (II) Initializing extension SHAPE
[ 133.146] (II) Initializing extension MIT-SHM
[ 133.146] (II) Initializing extension XInputExtension
[ 133.146] (II) Initializing extension XTEST
[ 133.147] (II) Initializing extension BIG-REQUESTS
[ 133.147] (II) Initializing extension SYNC
[ 133.147] (II) Initializing extension XKEYBOARD
[ 133.147] (II) Initializing extension XC-MISC
[ 133.147] (II) Initializing extension XFIXES
[ 133.147] (II) Initializing extension RENDER
[ 133.147] (II) Initializing extension RANDR
[ 133.147] (II) Initializing extension COMPOSITE
[ 133.147] (II) Initializing extension DAMAGE
[ 133.147] (II) Initializing extension MIT-SCREEN-SAVER
[ 133.147] (II) Initializing extension DOUBLE-BUFFER
[ 133.147] (II) Initializing extension DPMS
[ 133.147] (II) Initializing extension Present
[ 133.147] (II) Initializing extension DRI3
[ 133.147] (II) Initializing extension X-Resource
[ 133.147] (II) Initializing extension XVideo
[ 133.147] (II) Initializing extension XVideo-MotionCompensation
[ 133.147] (II) Initializing extension GLX
[ 133.147] (II) AIGLX: Screen 0 is not DRI2 capable
[ 133.193] (II) IGLX: Loaded and initialized swrast
[ 133.193] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 133.193] (II) Initializing extension XFree86-VidModeExtension
[ 133.193] (II) Initializing extension XFree86-DGA
[ 133.193] (II) Initializing extension XFree86-DRI
[ 133.193] (II) Initializing extension DRI2
[ 133.193] (II) Initializing extension vivext
[ 133.193] (II) VIVANTE(0): Setting screen physical size to 211 x 158
[ 133.381] (II) config/udev: Adding input device gpio-keys (/dev/input/event0)
[ 133.382] (**) gpio-keys: Applying InputClass "evdev keyboard catchall"
[ 133.382] (**) gpio-keys: Applying InputClass "libinput keyboard catchall"
[ 133.382] (**) gpio-keys: Applying InputClass "evdev keyboard catchall"
[ 133.382] (II) LoadModule: "evdev"
[ 133.382] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 133.385] (II) Module evdev: vendor="X.Org Foundation"
[ 133.385] compiled for 1.20.4, module version = 2.10.6
[ 133.385] Module class: X.Org XInput Driver
[ 133.385] ABI class: X.Org XInput driver, version 24.1
[ 133.385] (II) Using input driver 'evdev' for 'gpio-keys'
[ 133.385] (**) gpio-keys: always reports core events
[ 133.385] (**) evdev: gpio-keys: Device: "/dev/input/event0"
[ 133.450] (--) evdev: gpio-keys: Vendor 0x1 Product 0x1
[ 133.450] (--) evdev: gpio-keys: Found keys
[ 133.450] (II) evdev: gpio-keys: Configuring as keyboard
[ 133.450] (**) Option "config_info" "udev:/sys/devices/soc0/gpio-keys/input/input0/event0"
[ 133.450] (II) XINPUT: Adding extended input device "gpio-keys" (type: KEYBOARD, id 6)
[ 133.450] (**) Option "xkb_rules" "evdev"
[ 133.511] (EE)
[ 133.512] (EE) Backtrace:
[ 133.512] (EE)
[ 133.512] (EE) Segmentation fault at address 0xc0000000
[ 133.512] (EE)
Fatal server error:
[ 133.512] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 133.512] (EE)
[ 133.512] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[ 133.512] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 133.513] (EE)
[ 133.682] (EE) Server terminated with error (1). Closing log file.

Labels (1)
0 Kudos
9 Replies

2,817 Views
cyril_francesch
Contributor I
0 Kudos

2,817 Views
edward_fu
Contributor III

Nobody has ever faced this problem?

joanxie‌   Do you have any comments about my reply to you?

0 Kudos

2,817 Views
joanxie
NXP TechSupport
NXP TechSupport

you can refer to the 4.9.123 release note, this release version is tested for imx8mm, we never test this version for imx6, I really suggest you to use another version we tested on imx6

Embedded Linux for i.MX Applications Processors | NXP 

0 Kudos

2,817 Views
edward_fu
Contributor III

Do 5.4 kernel solve this IPU issue?

And what's your suggestion aoubt using yocto warriror version on imx6?

0 Kudos

2,817 Views
joanxie
NXP TechSupport
NXP TechSupport

we haven't released 5.4 kernel, try to uses 4.19.35(version 2.7 Warrior.) which has been tested on the imx6 board successfully:

i.MX 6 Series
• i.MX 6QuadPlus SABRE-SD and SABRE-AI
Boards
• i.MX 6Quad SABRE-SD and SABRE-AI Boards
• i.MX 6DualLite SDP SABRE-SD and SABRE-AI
Boards
• i.MX 6SoloX SABRE-SD and SABRE-AI Boards

• i.MX 6UltraLite EVK Board
• i.MX 6ULL EVK Board
• i.MX 6ULZ EVK Board
• i.MX 6SLL EVK Board

0 Kudos

2,817 Views
edward_fu
Contributor III

Hi Joan,

In  warrior meta-freescale layer GitHub - Freescale/meta-freescale: Layer containing NXP hardware support metadata 

The recipes-kernel/linux directory contains the following files:

linux-fslc_5.0.bb

linux-fslc-imx-rt_4.1-2.0.x.bb

linux-imx_4.9.123.bb

linux-imx-mfgtool_4.9.123.bb

linux-qoriq_4.19.bb
linux-fslc-imx_4.9-1.0.x.bb

linux-fslc-lts-4.19.bb

linux-imx-headers_4.9.123.bb

linux-qoriq_4.14.bb

You mean I need to use linux-fslc-lts-4.19.bb? But in linux-fslc-lts-4.19.bb file kernel vesion is 4.19.78 not 4.19.35.

The content of linux-fslc-lts-4.19.bb is:

# Copyright (C) 2012-2019 O.S. Systems Software LTDA.
# Released under the MIT license (see COPYING.MIT for the terms)

SUMMARY = "FSL Community BSP Linux mainline based kernel with backported features and fixes"
DESCRIPTION = "Linux kernel based on mainline kernel used by FSL Community BSP in order to \
provide support for some backported features and fixes, or because it was applied in linux-next \
and takes some time to become part of a stable version, or because it is not applicable for \
upstreaming."

include linux-fslc.inc

LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"

PV = "4.19.78+git${SRCPV}"

SRCBRANCH = "4.19.x+fslc"
SRCREV = "bc38ce926f0800f19b7523cdb88aea1944e46c51"

COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf|use-mainline-bsp)"

So, 

Thanks

0 Kudos

2,817 Views
joanxie
NXP TechSupport
NXP TechSupport

1)Does 4.19.78 support X11 on imx6 board?

> we don't have this version bsp for imx6, for 4.19.35, yes, support x11 for imx62)As you suggested 4.19.35, which repository should I use still freescale official git hub(GitHub - Freescale/meta-freescale: Layer containing NXP hardware support metadata )?

> for 4.19.35, you can build the bsp as attached document metions

$ DISTRO=fsl-imx-x11 MACHINE=imx6qsabresd source fsl-setup-release.sh -b build-x11
$ bitbake imx-image-multimedia

this is x11 for imx6q board

0 Kudos

2,817 Views
joanxie
NXP TechSupport
NXP TechSupport

since you use imx6 board, why did you use imx_4.9.123_imx8mm_ga  which is demo image for imx8MM board, did you try the image for imx6 boards?

0 Kudos

2,817 Views
edward_fu
Contributor III

Thanks for your reply. 

Yes I am using imx6 board.

Because I need to upgrade yocto version from pyro to warrior, and In Freescale github, the warrior version linux-imx recipe is as below:

I think it is OK because you can see COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 

# Copyright (C) 2013-2016 Freescale Semiconductor
# Copyright 2017-2018 NXP
# Copyright 2018 (C) O.S. Systems Software LTDA.
# Released under the MIT license (see COPYING.MIT for the terms)

SUMMARY = "Linux Kernel provided and supported by NXP"
DESCRIPTION = "Linux Kernel provided and supported by NXP with focus on \
i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU and IPU."

require recipes-kernel/linux/linux-imx.inc

DEPENDS += "lzop-native bc-native"

SRCBRANCH = "imx_4.9.123_imx8mm_ga"
LOCALVERSION = "-imx"
SRCREV = "6a71cbc089755afd6a86c005c22a1af6eab24a70"

DEFAULT_PREFERENCE = "1"

COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"

0 Kudos