From nobody Fri Mar 28 02:32:31 2025 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 4ZP4LR69yJz5sGXk; Fri, 28 Mar 2025 02:32:31 +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 4ZP4LR1rl0z3NNw; Fri, 28 Mar 2025 02:32:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1743129151; 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=sUJj/En0e6F0qB6p9ONgG/FDtyXS+7I410CBmrRXm/M=; b=uxH0AIUkZrUs3EcWiNTX5F2pW5EqFDf0lxz4Ka/TBXlInpOL40H72DsEg952xb6UWRSDf2 LJchQjOfb9q3+Oculjv7JJKSe+Tt9RqsKovDABQq1Z9peSKiJ1x/4il3IgH8WqxAhmtBsy S2gqXpFbXnvlXhW6T1bl7wPsi/UHY0eZ9W8m7rw+8Dcu+N4pxLNdbDEzBCX9g/LgHsp1to mwqxwlpu1s3tV1eEJTEYcRQmfq6PB4gff1tHaIiK9cKf/qqUHxzHplPX91Ea+VNrN+BGcN zsQaLMc3OETlfyq3KcKyPTdyfpWke3vxs4zTpYvr1OjpdsBILsVuYC5Fc7kkGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1743129151; a=rsa-sha256; cv=none; b=TxJEP46VK4UzIoSeD3jUjLChe1kCIqAOng20CQ2vfM80Us3eqI/gQ6Fvp88xE9JtEo8Liu b3d6ZFfh5utC4X0TYEtflyAwzohfuEKLQ25CT02JyxfqYuAjtJ6q+RtW76ooDXa9zzBkNg irKZcdMMeCR8V4iuvg2kfxhHlblnR+XYUtQvYP1dCewct/3wwfzGxwonBnzqUqqRhms2Q8 Safwy/p2XZYQ1GsspdNHDEibRK9mTZzAevqvmZdmVYbtlsW6Pl7z77copeGsMqTfbNWkbe Mh5urNLJEzyc5a9r31zn34ZHke6hyXPGt4Q8EvZhTxOwSJ3Xl/ogbhglWDkcWw== 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=1743129151; 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=sUJj/En0e6F0qB6p9ONgG/FDtyXS+7I410CBmrRXm/M=; b=CSrL2pVtmfDBOW/gNJHF0O29kQqziRQwIfge8SiOpldrV9UCZpmnwkoXtX1/7Mi8sokCr0 UE3hnLxHfBTn5D9EzJZZWaoqfO4OjSNFTVJObPkdwvlXHkdCkjTZcvwlyRFhnGnQZy3BM3 CQQGKqvColcUCBwSGGgdSGJH8LtEqw+89hMavLA3We/UhU5DTI0Q4jn5dI8DKr67AHXmD9 JciP5AxVZUNklhlEiHRnuaraa/7mkTkH9l1o6XL8JGUFXtW/sJEzUQ1vE+WveMXO7Bj8iF c/eC7+SQbfhAPlGSjR/U4VrMD7bzUDc+kNscK22mXHdMG7o0A9ELNiW+QHauQQ== 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 4ZP4LR1FBgz7wg; Fri, 28 Mar 2025 02:32:31 +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 52S2WVBt064702; Fri, 28 Mar 2025 02:32:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52S2WV5Q064699; Fri, 28 Mar 2025 02:32:31 GMT (envelope-from git) Date: Fri, 28 Mar 2025 02:32:31 GMT Message-Id: <202503280232.52S2WV5Q064699@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Justin Hibbits Subject: git: ff9c290648df - stable/14 - powernv: Explicitly enable the facilities we support 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: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ff9c290648dfd36e6cd8850ec9d79aad88a10d84 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=ff9c290648dfd36e6cd8850ec9d79aad88a10d84 commit ff9c290648dfd36e6cd8850ec9d79aad88a10d84 Author: Justin Hibbits AuthorDate: 2025-03-19 22:25:40 +0000 Commit: Justin Hibbits CommitDate: 2025-03-28 02:32:20 +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 (cherry picked from commit fe73eb441f1c98fe350f4822c7d2abfeef046bf8) --- 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 e9babc128af0..cf5249313880 100644 --- a/sys/powerpc/powernv/platform_powernv.c +++ b/sys/powerpc/powernv/platform_powernv.c @@ -139,6 +139,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 */ @@ -180,6 +181,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();