[Mesa-users] Testing VC4 on rpi2 with wayland and weston, weston fail to start with drm (trace translated with addr2line included)
Fabio Fantoni
fabio.fantoni at m2r.biz
Thu Dec 17 06:33:41 PST 2015
Il 12/11/2015 11:29, Fabio Fantoni ha scritto:
>
>
> Il 06/11/2015 14:15, Fabio Fantoni ha scritto:
>>
>>
>> Il 05/11/2015 03:36, Eric Anholt ha scritto:
>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>
>>>> Il 30/10/2015 18:49, Eric Anholt ha scritto:
>>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>>
>>>>>> Il 25/10/2015 15:32, Fabio Fantoni ha scritto:
>>>>>>> Il 07/10/2015 00:01, Eric Anholt ha scritto:
>>>>>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>>>>>
>>>>>>>>> Il 03/10/2015 00:50, Eric Anholt ha scritto:
>>>>>>>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>>>>>>>
>>>>>>>>>>> Hi, I want try VC4 on rpi2 with wayland on debian (I used Sid).
>>>>>>>>>>> Following this howto:
>>>>>>>>>>> http://dri.freedesktop.org/wiki/VC4/
>>>>>>>>>>> I rebuild the kernel from
>>>>>>>>>>> https://github.com/anholt/linux/tree/vc4-kms-v3d-rpi2
>>>>>>>>>>> Base config modified with: CONFIG_DRM_VC4=y and
>>>>>>>>>>> CONFIG_CMA_SIZE_MBYTES=128, full .config in attachment.
>>>>>>>>>>> I did the 2 additions to rpi2 config.txt (full in attachment).
>>>>>>>>>>> New kernel is working, in kern.log about drm I saw only this
>>>>>>>>>>> about
>>>>>>>>>>> drm:
>>>>>>>>>>> Oct 1 11:11:16 jessie-rpi kernel: [ 1.577017] [drm]
>>>>>>>>>>> Initialized drm
>>>>>>>>>>> 1.1.0 20060810
>>>>>>>>>>> I suppose that compiling with CONFIG_DRM_VC4=y should be
>>>>>>>>>>> present
>>>>>>>>>>> but I
>>>>>>>>>>> not saw line about.
>>>>>>>>>> You should also have various lines in dmesg about:
>>>>>>>>>>
>>>>>>>>>> [ 3.185410] vc4-drm soc:vc4 at 7e4c0000: bound 20902000.hdmi
>>>>>>>>>> (ops
>>>>>>>>>> vc4_hdmi_ops)
>>>>>>>>>> [ 3.200606] vc4-drm soc:vc4 at 7e4c0000: bound
>>>>>>>>>> 20206000.pixelvalve
>>>>>>>>>> (ops vc4_crtc_ops)
>>>>>>>>>> [ 3.220583] vc4-drm soc:vc4 at 7e4c0000: bound
>>>>>>>>>> 20207000.pixelvalve
>>>>>>>>>> (ops vc4_crtc_ops)
>>>>>>>>>> [ 3.232884] vc4-drm soc:vc4 at 7e4c0000: bound
>>>>>>>>>> 20807000.pixelvalve
>>>>>>>>>> (ops vc4_crtc_ops)
>>>>>>>>>> [ 3.250938] vc4-drm soc:vc4 at 7e4c0000: bound 20400000.hvs (ops
>>>>>>>>>> vc4_hvs_ops)
>>>>>>>>>> [ 3.263385] [drm] Supports vblank timestamp caching Rev 2
>>>>>>>>>> (21.10.2013).
>>>>>>>>>> [ 3.270162] [drm] No driver support for vblank timestamp
>>>>>>>>>> query.
>>>>>>>>>> [ 3.470743] Console: switching to colour frame buffer
>>>>>>>>>> device 240x67
>>>>>>>>>> [ 3.540179] vc4-drm soc:vc4 at 7e4c0000: fb0: frame buffer
>>>>>>>>>> device
>>>>>>>>>>
>>>>>>>>>> so something is going wrong and keeping you from probing.
>>>>>>>>>> There's at
>>>>>>>>>> least one problem in your config -- you can't have
>>>>>>>>>>
>>>>>>>>>> CONFIG_FB_BCM2708=y
>>>>>>>>>>
>>>>>>>>>> since you're trying to run a proper graphics driver,
>>>>>>>>>> instead. I don't
>>>>>>>>>> think that would keep vc4 from probing, though. Maybe you
>>>>>>>>>> wouldn't
>>>>>>>>>> have
>>>>>>>>>> hit any of those "bound" messages because HDMI fails first
>>>>>>>>>> due to your
>>>>>>>>>> config being missing:
>>>>>>>>>>
>>>>>>>>>> CONFIG_I2C_BCM2835=y
>>>>>>>>>>
>>>>>>>>>> I've added that to the wiki page.
>>>>>>>>> Thanks for your reply and all your work.
>>>>>>>>> I recompiled the kernel and retried, now screen show only and
>>>>>>>>> always
>>>>>>>>> "initial image" but system with ssh is working.
>>>>>>>>> Strange thing is that I not found vc4-drm lines also in this
>>>>>>>>> case.
>>>>>>>>> Actual kernel .config and kern.log in attachment.
>>>>>>>>> I did something missed or wrong or there is problem or an
>>>>>>>>> unexpected
>>>>>>>>> case?
>>>>>>>>> I suppose is probable that also kernel parameters may change
>>>>>>>>> something
>>>>>>>>> but I don't know if I must change something, actual cmdline.txt.
>>>>>>>>> config.txt already attached in previous mail is ok or other
>>>>>>>>> changes not
>>>>>>>>> present in wiki are present?
>>>>>>>>> I also saw the strange thing that kernel is launched with
>>>>>>>>> addition
>>>>>>>>> parameters (from kern.log) but I not know how and if can be a
>>>>>>>>> problem:
>>>>>>>>>> Oct 3 17:22:02 jessie-rpi kernel: [ 0.000000] Kernel command
>>>>>>>>>> line:
>>>>>>>>>> dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1360
>>>>>>>>>> bcm2708_fb.fbheight=768
>>>>>>>>>> bcm2708.boardrev=0x2000010 bcm2708.serial=0x968d5adc
>>>>>>>>>> smsc95xx.macaddr=B8:27:EB:8D:5A:DC bcm2708_fb.fbswap=1
>>>>>>>>>> bcm2708.disk_led_gpio=47 bcm2708.disk_led_active_low=0
>>>>>>>>>> sdhci-bcm2708.emmc_clock_freq=250000000
>>>>>>>>>> vc_mem.mem_base=0x3dc00000
>>>>>>>>>> vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0
>>>>>>>>>> console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootwait
>>>>>>>>>> net.ifnames=1
>>>>>>>>> If you need more informations or tests tell me and I'll post
>>>>>>>>> them.
>>>>>>>> Looking through the logs again, I'm not sure what's going on.
>>>>>>>> At this
>>>>>>>> point I think I'd start adding DRM_INFO()s in vc4_drm_register(),
>>>>>>>> vc4_platform_drm_probe() and vc4_drm_bind() to start bisecting
>>>>>>>> where
>>>>>>>> things are going wrong.
>>>>>>> I saw update on vc4-kms-v3d-rpi2 branch, I build it and tried but I
>>>>>>> had the same result.
>>>>>>>
>>>>>>> I created the .config with:
>>>>>>> make bcm2709_defconfig
>>>>>>> and did the changes of the wiki, full .config used is in
>>>>>>> attachment.
>>>>>>> looking the syslog (see attachment) I not saw vc4 even if
>>>>>>> enabled, I
>>>>>>> suppose there is still something wrong or missed in .config.
>>>>>>>
>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>
>>>>>> I retried with many other changes, in latest kernel build (config in
>>>>>> attachment) I was able to boot with screen output working and
>>>>>> something
>>>>>> about vc4 in logs but there are errors about it like:
>>>>>>> Oct 28 11:44:19 jessie-rpi kernel: [ 3.695517] vc4-drm
>>>>>>> soc:gpu at 7e4c0000: failed to bind 3f902000.hdmi (ops
>>>>>>> vc4_hdmi_ops): -517
>>>>>>> Oct 28 11:44:19 jessie-rpi kernel: [ 3.713539] vc4-drm
>>>>>>> soc:gpu at 7e4c0000: master bind failed: -517
>>>>> Those errors are the normal -EPROBE_DEFERs because Linux sucks at
>>>>> device
>>>>> probe ordering. You get a successful DRM probe a moment later
>>>>> when I2C2
>>>>> probes.
>>>>>
>>>>>> Full syslog in attachment.
>>>>>> I was able to boot weston with vc4 drm but screen output always
>>>>>> freeze
>>>>>> after terminal window draw.
>>>>>> From log I saw a segfault but trying to take a backtrace with gdb
>>>>>> strangely fails, weston log in attachment.
>>>>>>
>>>>>> If you need more informations/tests tell me and I'll post them.
>>>>> Next step is to figure out how to get a good backtrace from gdb.
>>>>>
>>>> I tried to update all debian sid packages and rebuild update mesa
>>>> 11.0.4-1 packages with vc4 with same result.
>>>> With gdbserver connecting to it with ssh I'm able to have gdb working
>>>> until segfault but when I do "bt full" for take the backtrace show
>>>> only
>>>> these kernel messages:
>>>>> Message from syslogd at jessie-rpi at Nov 1 11:18:34 ...
>>>>> kernel:[ 487.628849] Internal error: Oops: 807 [#1] PREEMPT SMP
>>>>> ARM
>>>>> ...
>>>>>
>>>> I not other way to take a backtrace.
>>>> Can you post your kernel's .config for rpi2 please? I suppose there is
>>>> still something different that cause problem.
>>> I've updated http://dri.freedesktop.org/wiki/VC4/ to have links to
>>> .configs.
>>
>> I rebuilt kernel with your .config and added cma=256M at 512M to
>> cmdline.txt but happen the same problem and I'm still unable to take
>> a backtrace with gdb :(
>>> Message from syslogd at jessie-rpi at Nov 6 14:09:10 ...
>>> kernel:[ 283.621660] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
>>> ...
>
> I rebuilt the kernel adding CONFIG_DEBUG_INFO=y to .config and I
> translated the new trace with addr2line, didn't work for any address
> (I suppose related to other softwares) but probably can be useful see
> the kernel lines called:
>
> kernel:[ 798.087325] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.164526] Process weston (pid: 616, stack limit =
> 0xb656a210)
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.170443] Stack: (0xb656bba0 to 0xb656c000)
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.174810] bba0: b656bbdc b656bbb0 80482938 80486fe4
> ba1eb800 b6590dc0 00000002 ba375e10
>
> for addr in b656bbdc b656bbb0 80482938 80486fe4 ba1eb800 b6590dc0
> 00000002 ba375e10; do addr2line -e vmlinux -if $addr; done
> ??
> ??:0
> ??
> ??:0
> vc4_crtc_atomic_flush
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_crtc.c:388
> vc4_plane_write_dlist
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_plane.c:257
> ??
> ??:0
> ??
> ??:0
> __vectors_start
> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
> ??
> ??:0
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.182990] bbc0: b964c480 80988e30 00000000 b6590dc0
> b656bc04 b656bbe0 8045804c 804828c4
>
> for addr in b964c480 80988e30 00000000 b6590dc0 b656bc04 b656bbe0
> 8045804c 804828c4; do addr2line -e vmlinux -if $addr; done
> ??
> ??:0
> __start_rodata
> .tmp_kallsyms2.o:?
> __vectors_start
> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
> drm_atomic_helper_commit_planes
> /root/linux/vc4/drivers/gpu/drm/drm_atomic_helper.c:1179
> vc4_crtc_atomic_flush
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_crtc.c:366
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.191169] bbe0: b6590dc0 ba1eb800 b65cd5c0 b985ec10
> b65cd5c0 00000000 b656bc24 b656bc08
>
> for addr in b6590dc0 ba1eb800 b65cd5c0 b985ec10 b65cd5c0 00000000
> b656bc24 b656bc08; do addr2line -e vmlinux -if $addr; done
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
> __vectors_start
> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
> ??
> ??:0
> ??
> ??:0
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.199349] bc00: 80483be8 80457ebc ffffffff ffffffff
> 00000000 00000000 b656bc64 b656bc28
>
> for addr in 80483be8 80457ebc ffffffff ffffffff 00000000 00000000
> b656bc64 b656bc28; do addr2line -e vmlinux -if $addr; done
> vc4_atomic_complete_commit
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:50
> drm_atomic_helper_commit_planes
> /root/linux/vc4/drivers/gpu/drm/drm_atomic_helper.c:1134
> ??
> ??:0
> ??
> ??:0
> __vectors_start
> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
> __vectors_start
> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
> ??
> ??:0
> ??
> ??:0
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.207529] bc20: 80483d54 80483bb8 ffffffff ffffffff
> 00000000 ba1eb800 b964c380 b6590dc0
>
> for addr in 80483d54 80483bb8 ffffffff ffffffff 00000000 ba1eb800
> b964c380 b6590dc0; do addr2line -e vmlinux -if $addr; done
> vc4_atomic_commit
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:171
> vc4_atomic_complete_commit
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:41
> ??
> ??:0
> ??
> ??:0
> __vectors_start
> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.215709] bc40: ba1eb800 b9af8410 b668c900 0000003c
> b964c380 00400000 b656bc7c b656bc68
>
> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
> kernel:[ 798.223889] bc60: 8047f848 80483c34 b6590dc0 ba375e10
> b656bcb4 b656bc80 804590d0 8047f800
>
> for addr in 8047f848 80483c34 b6590dc0 ba375e10 b656bcb4 b656bc80
> 804590d0 8047f800; do addr2line -e vmlinux -if $addr; done
> drm_atomic_commit
> /root/linux/vc4/drivers/gpu/drm/drm_atomic.c:1259
> vc4_atomic_commit
> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:99
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
> ??
> ??:0
> drm_atomic_helper_update_plane
> /root/linux/vc4/drivers/gpu/drm/drm_atomic_helper.c:1400
> drm_atomic_commit
> /root/linux/vc4/drivers/gpu/drm/drm_atomic.c:1248
>
> At the end of kern.log I found this:
> Nov 12 10:35:37 jessie-rpi kernel: [ 798.065866] Unable to handle
> kernel paging request at virtual address bb8d6000
> Nov 12 10:35:37 jessie-rpi kernel: [ 798.073629] pgd = b871c000
>
I saw this PR where wrote there are a stability improvements:
https://github.com/raspberrypi/linux/pull/1228
I tried the updated kernel and mesa from
https://github.com/anholt/mesa/tree/11.1-vc4 but the same hang problem
still happen :(
What else can I do?
If there are tests and/or data that can be useful tell me and I'll post
them.
Thanks for any reply and sorry for my bad english.
More information about the mesa-users
mailing list