From nobody Wed Mar 19 22:35:19 2025 X-Original-To: dev-commits-src-main@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 4ZJ3SS4qrFz5qppL; Wed, 19 Mar 2025 22:35:20 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZJ3SR68szz3kd1; Wed, 19 Mar 2025 22:35:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1742423719; 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=e9DTXmlLmjJ3rk2y+Ar3htoDvWDgO6VBfXogcwEIfUs=; b=FcrawY82fCInIx6HaJn02xlEFLOvgyFl8+c6GoABGmk7fKXJYAPXgq4C8amxNoDS/2tmZd N3qJDz1Gp/NbWF0Y+3e5MgeHAYHw98ijS7/rrRHZteKgUQQqCWcbtNTQsX90oVkSU3hskL VJTDV35CoRu1ak/eE+8dwu76eAHlDG2x2ggk0tY2LHDqM6tyRj+2aJrRmhS06Ji+IC8Pc6 atuZ0abOsRPYjbVHwZxJwag982EUsWIJLZ36988hGGuSFL01aMuVD+oJy/kk1ot/PlEA/9 fJYwQZ8R00AcF77oj+eJByqHs4Lnj+aX3qGJxxnS16fMbrYOHDWWBWFGkLDvVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1742423719; a=rsa-sha256; cv=none; b=ReminteWT6pPVSTkAxRuob+F+TwFYr66Rs/aFFLlaT67tNVk5QQhszbjS37wwYrJSmK6ML tYVBwG7VVLD7YPoDcZOgoxkVWJIsP6a8rGkHuyJhr4jTqmDVNIas4XICN+xn+lISPTJkqQ g7o42EBX2e+H8t6ASCxoqfYOZVstela+BiGp7LyXaxwEA0V0SA/tBvF4iI1oRupybwZxeU R05nLGg7Ij7wtbndUvwTFMxMqwGBD/zx3y1OHI8lB4YtchXTR6BlugAXnpyornCogkyL03 4fvIGNfFH/F4WKyuzQ3+b4HBsUoV2ExzZQ3HFKdbgGHWXeMUIv+1RebkbUbwqQ== 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=1742423719; 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=e9DTXmlLmjJ3rk2y+Ar3htoDvWDgO6VBfXogcwEIfUs=; b=Fq9hj5U2YQY8U6s/U4vIhI73w7mVorzjar86plHYVgFXOm9QFO8TBg68yasC7sRy0vMqvT dklUyg+jnbeWIUDUyterBo7R/+a5SVpGfcJBcBKHuv/kJxoimh3knYTU/ERkbnSqx6BeMJ 2p4PSPfXaSkGlg7o4GlyhK/gOU18nTEWujD3g18I4zDXOl5b/rPlbaUApj8rc2URznPHLd prkLTSPSaG3XY2V6qS2O2NMQzC9FZ7p/vYAvJqsSePwHwLANVLk5CYL/2RefpDmUmeVORB orej3ZDZP1WSW/Ml2wB9wjSpOu5o8DF1KfHCt9xhpyNIhmvkznNRBW6MRFO+8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZJ3SR5Ybpzfxy; Wed, 19 Mar 2025 22:35:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52JMZJ81062631; Wed, 19 Mar 2025 22:35:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52JMZJGt062628; Wed, 19 Mar 2025 22:35:19 GMT (envelope-from git) Date: Wed, 19 Mar 2025 22:35:19 GMT Message-Id: <202503192235.52JMZJGt062628@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: fe73eb441f1c - main - powernv: Explicitly enable the facilities we support List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fe73eb441f1c98fe350f4822c7d2abfeef046bf8 Auto-Submitted: auto-generated The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=fe73eb441f1c98fe350f4822c7d2abfeef046bf8 commit fe73eb441f1c98fe350f4822c7d2abfeef046bf8 Author: Justin Hibbits AuthorDate: 2025-03-19 22:25:40 +0000 Commit: Justin Hibbits CommitDate: 2025-03-19 22:35:17 +0000 powernv: Explicitly enable the facilities we support Thus far we've relied on the firmware setting HFSCR correctly, enabling all facilities. However, it appears some recent firmwares do not. Linux explicitly enables all facilities it supports (including transactional memory, which new firmwares apparently do not enable), so do the same here, explicitly enable all the facilities FreeBSD supports. MFC after: 1 week --- sys/powerpc/include/spr.h | 5 +++++ sys/powerpc/powernv/platform_powernv.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/sys/powerpc/include/spr.h b/sys/powerpc/include/spr.h index 5bb3858b0fb5..605b1be194d9 100644 --- a/sys/powerpc/include/spr.h +++ b/sys/powerpc/include/spr.h @@ -162,6 +162,11 @@ #define FSCR_DSCR 0x0000000000000004 /* DSCR available in PR state */ #define SPR_UAMOR 0x09d /* User Authority Mask Override Register */ #define SPR_DPDES 0x0b0 /* .6. Directed Privileged Doorbell Exception State Register */ +#define SPR_HFSCR 0xbe /* Hypervisor Facility Status and Control Register */ +#define HFSCR_BHRB 0x0000000000000010 /* BHRB instructions */ +#define HFSCR_PM 0x0000000000000008 /* Performance monitor SPRs */ +#define HFSCR_VECVSX 0x0000000000000002 /* Vector and VSX facilities */ +#define HFSCR_FP 0x0000000000000001 /* Floating Point facility */ #define SPR_USPRG0 0x100 /* 4.8 User SPR General 0 */ #define SPR_VRSAVE 0x100 /* .6. AltiVec VRSAVE */ #define SPR_SPRG0 0x110 /* 468 SPR General 0 */ diff --git a/sys/powerpc/powernv/platform_powernv.c b/sys/powerpc/powernv/platform_powernv.c index 50af24794e69..678631322173 100644 --- a/sys/powerpc/powernv/platform_powernv.c +++ b/sys/powerpc/powernv/platform_powernv.c @@ -138,6 +138,7 @@ powernv_attach(platform_t plat) phandle_t opal; int res, len, idx; register_t msr; + register_t fscr; bool has_lp; /* Ping OPAL again just to make sure */ @@ -179,6 +180,11 @@ powernv_attach(platform_t plat) mtspr(SPR_LPCR, lpcr); isync(); + fscr = mfspr(SPR_HFSCR); + fscr |= FSCR_TAR | FSCR_EBB | HFSCR_BHRB | HFSCR_PM | + HFSCR_VECVSX | HFSCR_FP | FSCR_MSGP | FSCR_DSCR; + mtspr(SPR_HFSCR, fscr); + mtmsr(msr); powernv_cpuref_init();