[PATCH] target/arm: Add ID_AA64ZFR0_EL1.B16B16 to the exposed-to-userspace set

Peter Maydell posted 1 patch 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240125134304.1470404-1-peter.maydell@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper.c         | 1 +
tests/tcg/aarch64/sysregs.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
[PATCH] target/arm: Add ID_AA64ZFR0_EL1.B16B16 to the exposed-to-userspace set
Posted by Peter Maydell 10 months ago
In kernel commit 5d5b4e8c2d9ec ("arm64/sve: Report FEAT_SVE_B16B16 to
userspace") Linux added ID_AA64ZFR0_el1.B16B16 to the set of ID
register fields which it exposes to userspace.  Update our
exported_bits mask to include this.

(This doesn't yet change any behaviour for us, because we don't yet
have any CPUs that implement this feature, which is part of SVE2.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
This is a loose end from last year: in commit 5f7b71fb99dc I
updated our mask values to match the kernel, and when I was
doing that I noticed that the kernel had forgotten to add
B16B16 to its report-to-userspace list when adding support
for that architectural feature. Now the kernel has fixed its
side, we can update again to match it.
---
 target/arm/helper.c         | 1 +
 tests/tcg/aarch64/sysregs.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/target/arm/helper.c b/target/arm/helper.c
index e068d353831..24c0f80679d 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -8895,6 +8895,7 @@ void register_cp_regs_for_features(ARMCPU *cpu)
                                R_ID_AA64ZFR0_AES_MASK |
                                R_ID_AA64ZFR0_BITPERM_MASK |
                                R_ID_AA64ZFR0_BFLOAT16_MASK |
+                               R_ID_AA64ZFR0_B16B16_MASK |
                                R_ID_AA64ZFR0_SHA3_MASK |
                                R_ID_AA64ZFR0_SM4_MASK |
                                R_ID_AA64ZFR0_I8MM_MASK |
diff --git a/tests/tcg/aarch64/sysregs.c b/tests/tcg/aarch64/sysregs.c
index f7a055f1d5f..301e61d0dd4 100644
--- a/tests/tcg/aarch64/sysregs.c
+++ b/tests/tcg/aarch64/sysregs.c
@@ -137,7 +137,7 @@ int main(void)
     /* all hidden, DebugVer fixed to 0x6 (ARMv8 debug architecture) */
     get_cpu_reg_check_mask(id_aa64dfr0_el1,  _m(0000,0000,0000,0006));
     get_cpu_reg_check_zero(id_aa64dfr1_el1);
-    get_cpu_reg_check_mask(SYS_ID_AA64ZFR0_EL1,  _m(0ff0,ff0f,00ff,00ff));
+    get_cpu_reg_check_mask(SYS_ID_AA64ZFR0_EL1,  _m(0ff0,ff0f,0fff,00ff));
     get_cpu_reg_check_mask(SYS_ID_AA64SMFR0_EL1, _m(8ff1,fcff,0000,0000));
 
     get_cpu_reg_check_zero(id_aa64afr0_el1);
-- 
2.34.1
Re: [PATCH] target/arm: Add ID_AA64ZFR0_EL1.B16B16 to the exposed-to-userspace set
Posted by Richard Henderson 10 months ago
On 1/25/24 23:43, Peter Maydell wrote:
> In kernel commit 5d5b4e8c2d9ec ("arm64/sve: Report FEAT_SVE_B16B16 to
> userspace") Linux added ID_AA64ZFR0_el1.B16B16 to the set of ID
> register fields which it exposes to userspace.  Update our
> exported_bits mask to include this.
> 
> (This doesn't yet change any behaviour for us, because we don't yet
> have any CPUs that implement this feature, which is part of SVE2.)
> 
> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>
> ---
> This is a loose end from last year: in commit 5f7b71fb99dc I
> updated our mask values to match the kernel, and when I was
> doing that I noticed that the kernel had forgotten to add
> B16B16 to its report-to-userspace list when adding support
> for that architectural feature. Now the kernel has fixed its
> side, we can update again to match it.
> ---
>   target/arm/helper.c         | 1 +
>   tests/tcg/aarch64/sysregs.c | 2 +-
>   2 files changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~