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,788 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
Reply
9 Replies

3,209 Views
cyril_francesch
Contributor I
0 Kudos
Reply

3,209 Views
edward_fu
Contributor III

Nobody has ever faced this problem?

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

0 Kudos
Reply

3,209 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
Reply

3,209 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
Reply

3,209 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
Reply

3,209 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
Reply

3,209 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
Reply

3,209 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
Reply

3,209 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
Reply