kselftest/arm64: add SHA1 and related features to hwcap test
authorZeng Heng <zengheng4@huawei.com>
Tue, 15 Aug 2023 04:09:12 +0000 (12:09 +0800)
committerWill Deacon <will@kernel.org>
Wed, 16 Aug 2023 14:24:01 +0000 (15:24 +0100)
Add the SHA1 and related features check in the set of hwcap tests.

Signed-off-by: Zeng Heng <zengheng4@huawei.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230815040915.3966955-2-zengheng4@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
tools/testing/selftests/arm64/abi/hwcap.c

index 112b6a2193821027ef8a0f4a22473b74b83afbb7..83d3b6dcc0d8a3f790c024e7a4026bd9e9912896 100644 (file)
@@ -87,6 +87,24 @@ static void rng_sigill(void)
        asm volatile("mrs x0, S3_3_C2_C4_0" : : : "x0");
 }
 
+static void sha1_sigill(void)
+{
+       /* SHA1H S0, S0 */
+       asm volatile(".inst 0x5e280800" : : : );
+}
+
+static void sha2_sigill(void)
+{
+       /* SHA256H Q0, Q0, V0.4S */
+       asm volatile(".inst 0x5e004000" : : : );
+}
+
+static void sha512_sigill(void)
+{
+       /* SHA512H Q0, Q0, V0.2D */
+       asm volatile(".inst 0xce608000" : : : );
+}
+
 static void sme_sigill(void)
 {
        /* RDSVL x0, #0 */
@@ -327,6 +345,27 @@ static const struct hwcap_data {
                .hwcap_bit = HWCAP2_RPRFM,
                .cpuinfo = "rprfm",
        },
+       {
+               .name = "SHA1",
+               .at_hwcap = AT_HWCAP,
+               .hwcap_bit = HWCAP_SHA1,
+               .cpuinfo = "sha1",
+               .sigill_fn = sha1_sigill,
+       },
+       {
+               .name = "SHA2",
+               .at_hwcap = AT_HWCAP,
+               .hwcap_bit = HWCAP_SHA2,
+               .cpuinfo = "sha2",
+               .sigill_fn = sha2_sigill,
+       },
+       {
+               .name = "SHA512",
+               .at_hwcap = AT_HWCAP,
+               .hwcap_bit = HWCAP_SHA512,
+               .cpuinfo = "sha512",
+               .sigill_fn = sha512_sigill,
+       },
        {
                .name = "SME",
                .at_hwcap = AT_HWCAP2,