NetBSD Problem Report #56766

From www@netbsd.org  Fri Mar 25 22:50:01 2022
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id E668C1A921F
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 25 Mar 2022 22:50:01 +0000 (UTC)
Message-Id: <20220325225000.23AA71A9239@mollari.NetBSD.org>
Date: Fri, 25 Mar 2022 22:50:00 +0000 (UTC)
From: tnn@nygren.pp.se
Reply-To: tnn@nygren.pp.se
To: gnats-bugs@NetBSD.org
Subject: rkdrm panic when attaching framebuffer
X-Send-Pr-Version: www-1.0

>Number:         56766
>Category:       port-evbarm
>Synopsis:       rkdrm panic when attaching framebuffer
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-evbarm-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 25 22:55:00 +0000 2022
>Closed-Date:    Fri Mar 25 23:20:58 +0000 2022
>Last-Modified:  Fri Mar 25 23:20:58 +0000 2022
>Originator:     Tobias Nygren
>Release:        9.99.95
>Organization:
>Environment:
evbarm-aarch64

>Description:
rkvop0: activating port 0 endpoint 0 (direct)
rkvop0: using CRTC 0 for RK3399 VOPL
rkdrm0: failed to activate endpoint 0: 19
rkvop0: activating port 0 endpoint 1 (direct)
rkdrm0: failed to activate endpoint 1: 19
rkvop0: activating port 0 endpoint 2 (direct)
dwhdmi0: activating port 0 endpoint 1
warning: /usr/src/sys/external/bsd/drm2/dist/drm/drm_connector.c:218: drm_drv_uses_atomic_modeset(dev) && (!funcs->atomic_destroy_state || !funcs->atomic_duplicate_state)
rkvop0: activating port 0 endpoint 3 (direct)
rkdrm0: failed to activate endpoint 3: 19
rkvop0: activating port 0 endpoint 4 (direct)
rkdrm0: failed to activate endpoint 4: 19
rkvop1: activating port 0 endpoint 0 (direct)
rkvop1: using CRTC 1 for RK3399 VOPB
rkdrm0: failed to activate endpoint 0: 19
rkvop1: activating port 0 endpoint 1 (direct)
rkdrm0: failed to activate endpoint 1: 19
rkvop1: activating port 0 endpoint 2 (direct)
dwhdmi0: activating port 0 endpoint 0
rkvop1: activating port 0 endpoint 3 (direct)
rkdrm0: failed to activate endpoint 3: 19
rkvop1: activating port 0 endpoint 4 (direct)
rkdrm0: failed to activate endpoint 4: 19
rkdrm0: reserved 40 MB DRAM for CMA
rkfb0 at rkdrm0
rkfb0: WARNING: power management not supported
kern info: [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
kern info: [drm] No driver support for vblank timestamp query.
kern info: [drm] Initialized rk 1.0.0 20191109 for rkdrm0 on minor 0
rkdrm0: initialized rk 1.0.0 20191109 on minor 0
rkfb0: framebuffer at 0x4c9000, size 1920x1080, depth 32, stride 7680
panic: Trap: Instruction Abort (EL1): Translation Fault L0 for 0000000000000000: pc 0000000000000000: opcode unknown

cpu0: Begin traceback...
trace fp ffffc000011bb3d0
fp ffffc000011bb400 vpanic() at ffffc0000057293c netbsd:vpanic+0x14c
fp ffffc000011bb460 panic() at ffffc00000572a34 netbsd:panic+0x44
fp ffffc000011bb4f0 data_abort_handler() at ffffc000000b056c netbsd:data_abort_handler+0x1ec
tf ffffc000011bb560 el1_trap() at ffffc000000b1f84 netbsd:el1_vectors+0x784
---- trapframe 0xffffc000011bb560 (304 bytes) ----
    pc=0000000000000000,   spsr=0000000080000005
   esr=0000000086000004,    far=0000000000000000
    x0=ffffc000402880f0,     x1=0000000000000000
    x2=ffff0000f4015710,     x3=0000000000000001
    x4=0000000000000001,     x5=0000000000000001
    x6=0000000000000000,     x7=000000000000001d
    x8=ffffc000012db000,     x9=0000000000000006
   x10=0000000000000040,    x11=0000000000000898
   x12=00000000000007d8,    x13=0000000000024414
   x14=0000000000000020,    x15=ffff0000f4015738
   x16=ffffc00000004110,    x17=00e483c3245ecb03
   x18=0000000000001000,    x19=ffff0000f4009110
   x20=0000000000000000,    x21=0000000000000000
   x22=ffffc000402880f0,    x23=ffff0000f4009110
   x24=0000000000000028,    x25=ffff0000f4ba6410
   x26=ffffc000011bb998,    x27=ffff0000f40c7a00
   x28=ffff0000f40bf110, fp=x29=ffffc000011bb890
lr=x30=ffffc000003ae280,     sp=ffffc000011bb890
------------------------------------------------
fp ffffc000011bb890 drm_atomic_get_connector_state() at ffffc000003ae280 netbsd:drm_atomic_get_connector_state+0x80
fp ffffc000011bb8e0 __drm_atomic_helper_set_config() at ffffc000003af0f0 netbsd:__drm_atomic_helper_set_config+0x2d0
fp ffffc000011bb930 drm_client_modeset_commit_atomic() at ffffc000003bd148 netbsd:drm_client_modeset_commit_atomic+0x168
fp ffffc000011bb9f0 drm_client_modeset_commit_force() at ffffc000003bd2cc netbsd:drm_client_modeset_commit_force+0x48
fp ffffc000011bba20 drm_fb_helper_restore_fbdev_mode_unlocked() at ffffc000003d7228 netbsd:drm_fb_helper_restore_fbdev_mode_unlocked+0x68
fp ffffc000011bba50 drmfb_genfb_setmode() at ffffc000003aa6ec netbsd:drmfb_genfb_setmode+0x18
fp ffffc000011bba60 genfb_attach() at ffffc0000040f500 netbsd:genfb_attach+0x130
fp ffffc000011bbb10 drmfb_attach() at ffffc000003aa9b4 netbsd:drmfb_attach+0x1c4
fp ffffc000011bbb90 rk_fb_init() at ffffc00000049288 netbsd:rk_fb_init+0x54
fp ffffc000011bbbe0 rk_drm_init() at ffffc000000489e8 netbsd:rk_drm_init+0xa8
fp ffffc000011bbc00 config_process_deferred() at ffffc00000553858 netbsd:config_process_deferred+0xb8
fp ffffc000011bbc40 config_attach_internal() at ffffc00000553cf0 netbsd:config_attach_internal+0x1ec
fp ffffc000011bbca0 config_found() at ffffc00000553eb8 netbsd:config_found+0xd8
fp ffffc000011bbd10 arm_fdt_attach() at ffffc0000006ed98 netbsd:arm_fdt_attach+0x94
fp ffffc000011bbd70 config_attach_internal() at ffffc00000553cbc netbsd:config_attach_internal+0x1b8
fp ffffc000011bbdd0 config_rootfound() at ffffc00000554084 netbsd:config_rootfound+0x64
fp ffffc000011bbe30 cpu_configure() at ffffc0000006a824 netbsd:cpu_configure+0x54
fp ffffc000011bbe60 main() at ffffc00000800150 netbsd:main+0x2e0
fp 0000000000000000 aarch64_start() at ffffc00000001898 netbsd:aarch64_start+0x1098
cpu0: End traceback...
Stopped in pid 0.0 (system) at  netbsd:cpu_Debugger+0x4:        ret

>How-To-Repeat:
Attach HDMI console on rockpro64.



>Fix:

>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->feedback
State-Changed-By: riastradh@NetBSD.org
State-Changed-When: Fri, 25 Mar 2022 23:14:48 +0000
State-Changed-Why:
patch provided


From: Taylor R Campbell <riastradh@NetBSD.org>
To: tnn@nygren.pp.se
Cc: gnats-bugs@NetBSD.org
Subject: Re: kern/56766: rkdrm panic when attaching framebuffer
Date: Fri, 25 Mar 2022 23:12:32 +0000

 This is a multi-part message in MIME format.
 --=_La7nkjIJilZyzQ04m7iYdJZjSuvrF8DG

 Does the attached patch help?

 --=_La7nkjIJilZyzQ04m7iYdJZjSuvrF8DG
 Content-Type: text/plain; charset="ISO-8859-1"; name="dwhdmiatomic"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment; filename="dwhdmiatomic.patch"

 From af9e9a5f607ebc49fa8462e1cc6e5950e4325a85 Mon Sep 17 00:00:00 2001
 From: Taylor R Campbell <riastradh@NetBSD.org>
 Date: Fri, 25 Mar 2022 23:11:08 +0000
 Subject: [PATCH] dwhdmi(4): Wire up to atomic modesetting.

 ---
  sys/dev/ic/dw_hdmi.c | 3 +++
  1 file changed, 3 insertions(+)

 diff --git a/sys/dev/ic/dw_hdmi.c b/sys/dev/ic/dw_hdmi.c
 index db3e83f20d5f..6d77aa3afa80 100644
 --- a/sys/dev/ic/dw_hdmi.c
 +++ b/sys/dev/ic/dw_hdmi.c
 @@ -570,6 +570,9 @@ static const struct drm_connector_funcs dwhdmi_connecto=
 r_funcs =3D {
  	.detect =3D dwhdmi_connector_detect,
  	.fill_modes =3D drm_helper_probe_single_connector_modes,
  	.destroy =3D dwhdmi_connector_destroy,
 +	.reset =3D drm_atomic_helper_connector_reset,
 +	.atomic_duplicate_state =3D drm_atomic_helper_connector_duplicate_state,
 +	.atomic_destroy_state =3D drm_atomic_helper_connector_destroy_state,
  };
 =20
  static int

 --=_La7nkjIJilZyzQ04m7iYdJZjSuvrF8DG--

From: "Tobias Nygren" <tnn@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/56766 CVS commit: src/sys/dev/ic
Date: Fri, 25 Mar 2022 23:16:04 +0000

 Module Name:	src
 Committed By:	tnn
 Date:		Fri Mar 25 23:16:04 UTC 2022

 Modified Files:
 	src/sys/dev/ic: dw_hdmi.c

 Log Message:
 dwhdmi: properly initialize connector atomic helper funcs (PR port-evbarm/56766)


 To generate a diff of this commit:
 cvs rdiff -u -r1.9 -r1.10 src/sys/dev/ic/dw_hdmi.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Tobias Nygren <tnn@nygren.pp.se>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/56766: rkdrm panic when attaching framebuffer
Date: Sat, 26 Mar 2022 00:18:48 +0100

 On Fri, 25 Mar 2022 23:15:02 +0000 (UTC)
 Taylor R Campbell <riastradh@NetBSD.org> wrote:

 >  Does the attached patch help?

 It does. I independently came up with nearly the same fix when
 comparing against other drm drivers (needs drm_atomic_state_helper.h also)

State-Changed-From-To: feedback->closed
State-Changed-By: tnn@NetBSD.org
State-Changed-When: Fri, 25 Mar 2022 23:20:58 +0000
State-Changed-Why:
fixed


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.