From nobody Tue Aug 08 07:56:22 2023 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RKlrN18Xmz4Trwk for ; Tue, 8 Aug 2023 07:56:36 +0000 (UTC) (envelope-from titus@edc.ro) Received: from eatlas.ro (eatlas.ro [86.126.82.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "eatlas.ro", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RKlrL3D0jz4HdL for ; Tue, 8 Aug 2023 07:56:33 +0000 (UTC) (envelope-from titus@edc.ro) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=edc.ro header.s=mail header.b=amuMj4M1; spf=pass (mx1.freebsd.org: domain of titus@edc.ro designates 86.126.82.18 as permitted sender) smtp.mailfrom=titus@edc.ro; dmarc=none Received: from mail.edc.ro ([10.1.4.58]) by eatlas.ro (8.16.1/8.16.1) with ESMTPS id 3787uNAD004990 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Tue, 8 Aug 2023 10:56:24 +0300 (EEST) (envelope-from titus@edc.ro) Received: from tituss-imac.eatlas.local (eatlas.ro [86.126.82.18]) (authenticated bits=0) by mail.edc.ro (8.16.1/8.16.1) with ESMTPSA id 3787uM0Z069390 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 8 Aug 2023 10:56:23 +0300 (EEST) (envelope-from titus@edc.ro) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=edc.ro; s=mail; t=1691481383; bh=ED/BjSChTZDPR8zBXTP+nW9ExVja3D1/TQTnMxH52eg=; h=From:Subject:Date:To; b=amuMj4M1ZA80Hs9LBJqYf4A4Wy4t31h0BrJOs02wTvcHEB5St6TbKC+R/P41ZjY8u ymTIDmFi3yWJL9XcyDfmBrbItA7xwhX7yuTew86TjPSyZsOY5zo1yEm3rLGMe5qWU7 ghkj0u4gZTI6yT6RUEmRVCPWB0n5S1i/86g+snfU= From: titus Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: allwinner i2c (twsi) Message-Id: Date: Tue, 8 Aug 2023 10:56:22 +0300 To: freebsd-arm@freebsd.org X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ns.edc.ro X-Spamd-Result: default: False [-3.00 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; MV_CASE(0.50)[]; R_DKIM_ALLOW(-0.20)[edc.ro:s=mail]; R_SPF_ALLOW(-0.20)[+ip4:86.126.82.18/32]; MIME_GOOD(-0.10)[text/plain]; DKIM_TRACE(0.00)[edc.ro:+]; MLMMJ_DEST(0.00)[freebsd-arm@freebsd.org]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:8708, ipnet:86.120.0.0/13, country:RO]; DMARC_NA(0.00)[edc.ro]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_HAS_DN(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-arm@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4RKlrL3D0jz4HdL Hello, I have this H616 based android tv/media box with a H616 soc which has an = AXP305 power management IC. The pmic is controlled via i2c (not RSB).=20 The problem is that for some reason iicbus_transfer does not work = properly before kernel boots. The twsi (allwinner i2c) driver sets up the interrupt late via = config_intrhook_oneshot and while the interrupt is not available (during = boottime) twsi_transfer falls back to iicbus_transfer_gen which will read bogus values instead of the = real AXP305 registers which will cause the axp driver to cut the cpu = power (reads bogus val, do some bitops, write back, ending up turning = off some regulators) enabling twsi interrupt at device/iicbus attach time causes a panic due = to a call to msleep_sbt which will panic because timers are not = available replacing msleep_sbt with mtx_sleep with 0 as waittime and enabling the = interrupt at attach time works but Im not sure this is the best/only way = to fix it i can provide twsi debug logs if anyone is interested=