From nobody Mon Feb 9 16:28:37 2026 X-Original-To: dev-commits-src-branches@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 4f8qrP6xcSz6RgJc for ; Mon, 09 Feb 2026 16:28:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrP4Mcmz3Ph1 for ; Mon, 09 Feb 2026 16:28:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Iz8JF3NwiEDUI8LXBHXNnGPmbT2gvanrT0goRxlmQMA=; b=wfdoRy6mHcr+gIcn67xmi41EdI/bdEzceoIca5Gl4c9QNRtOR4Y408C6BA7jjQWMev1gX3 0ShmN0lZpcMuG+a0JgZ0+BdvKNRrs8ETTGz6MK3aZjJhg9FX539I4lBytm2DUR4n28+Gcl c92rYRgiCwlWqXt9o861W5Q906cU2fc2ErB4DVbiihivgyk/2yAfYQCsuRDtNGKkvc4Tf4 raZXkfDB8p1t0wbG7M9lG53NzpyTqKSkZ0FNgYIb4yEMgsiwqtkUO2GMXSWpS9OIt49t1I UavoCL9VQUR5AwdWcAn9wXZAllATs8rF/a/WCyADQ1a3AeS3152bq6+jyEI7rw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654517; a=rsa-sha256; cv=none; b=Mb2qjfCfpH07Zg217N09MEs3tZjYAKt+tyNX+9cl1t4uTLeK3PeXEsUFsGQYsjbre6Z/Mn yPchHolDMpWqgN3bC82RrN8E2b5Eem/XdNZ8NbE+6iYzsjvRCDn6B8VQ3y4rXOlLUp8K2l R2DKe0HHyJI+yDSegQtKa8gytr8kH73q+vP9Z+KKuhL/a++Jw8/S3VP0JSIB6SKaOKO58k EaCmhgT2KumVBRM8O0Z4YTIuQpveLha2/xNkjj2EMigX/89pUsjHKPpqtkXYta+B4eTE/U DQq/pEc5D+t0p/8vRVb/01KBCznAtO6vKuEmysgYfFbJyetMM7H1cKVWOW86cA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Iz8JF3NwiEDUI8LXBHXNnGPmbT2gvanrT0goRxlmQMA=; b=MjTWsaxYZUuYjVcO5iyRLobDoAUMo9Wh8aERDPOerMo8k68IJ8c2NXXTHXA8zR7uaHeQgm 9wY1nIpQSjEHTnrNpOfkMJzOKA6t2VMmv8VUoDKnc44a/iwc69zhVQnDHSfqqXzkq5052r xVLvDQ+5q5uovckwKfGgdid0hz2euxL1rARr8sBBADJq4mSpzEdMyNVoNNwR5hTtRpb3tP 8M60JPuxHRgfow2ViVqMXmS1Et8+3S5WC4NL+CuxMwkiDKw7HO79dz4qS6qOH/EBqSaqgR c4vzCtZM3fap2zacs38FNmiH3H/8Ma62fETSyq0TPJ6A0coHE/yPbU2OwZN17A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrP3wPnzh2K for ; Mon, 09 Feb 2026 16:28:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c4c3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: bcb8b267f323 - stable/15 - arm/gic: Detect broken configurations List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bcb8b267f323bdc91cad9655bdc8f194ba020137 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:37 +0000 Message-Id: <698a0b35.1c4c3.6403ba3e@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=bcb8b267f323bdc91cad9655bdc8f194ba020137 commit bcb8b267f323bdc91cad9655bdc8f194ba020137 Author: Andrew Turner AuthorDate: 2026-01-23 14:31:04 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:51:59 +0000 arm/gic: Detect broken configurations Some virtualization platforms provide broken configurations. There is a GIC interrupt controller, however accessing the CPU interface registers leads to an external data abort. As these are needed to handle interrupts we are unable to boot further. Detect this misconfiguration and panic to tell the user the issue. Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54832 (cherry picked from commit 6c5fdba45a63d66984e15ddc6996f5e88a55f22c) --- sys/arm/arm/gic.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sys/arm/arm/gic.c b/sys/arm/arm/gic.c index c1b2cf626ed8..da91f7e1b22d 100644 --- a/sys/arm/arm/gic.c +++ b/sys/arm/arm/gic.c @@ -151,6 +151,8 @@ static struct arm_gic_softc *gic_sc = NULL; /* CPU Interface */ #define gic_c_read_4(_sc, _reg) \ bus_read_4((_sc)->gic_res[GIC_RES_CPU], (_reg)) +#define gic_c_peek_4(_sc, _reg, _val) \ + bus_peek_4((_sc)->gic_res[GIC_RES_CPU], (_reg), (_val)) #define gic_c_write_4(_sc, _reg, _val) \ bus_write_4((_sc)->gic_res[GIC_RES_CPU], (_reg), (_val)) /* Distributor Interface */ @@ -347,7 +349,18 @@ arm_gic_attach(device_t dev) goto cleanup; } - icciidr = gic_c_read_4(sc, GICC_IIDR); + /* + * Try accessing a CPU interface register. On some broken + * virtualization environments this will raise an external + * data abort. When this happens we can detect it using + * by peeking at the register & checking for the fault. + * As there is no way to continue with a normal boot we + * panic. + */ + if (gic_c_peek_4(sc, GICC_IIDR, &icciidr) != 0) + panic("Unable to access %s CPU registers, " + "broken hardware or hypervisor configuration", + device_get_nameunit(dev)); device_printf(dev, "pn 0x%x, arch 0x%x, rev 0x%x, implementer 0x%x irqs %u\n", GICD_IIDR_PROD(icciidr), GICD_IIDR_VAR(icciidr),