kselftest/arm64: add RCpc load-acquire to hwcap test
authorZeng Heng <zengheng4@huawei.com>
Thu, 3 Aug 2023 13:39:05 +0000 (21:39 +0800)
committerWill Deacon <will@kernel.org>
Fri, 4 Aug 2023 16:33:38 +0000 (17:33 +0100)
Add the RCpc and various 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/20230803133905.971697-1-zengheng4@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
tools/testing/selftests/arm64/abi/hwcap.c

index d4ad813fed10fa6079accec1f532dabc524edeb4..6a0adf916028f631c614a67540292e6dbf6a9450 100644 (file)
@@ -39,6 +39,18 @@ static void cssc_sigill(void)
        asm volatile(".inst 0xdac01c00" : : : "x0");
 }
 
+static void ilrcpc_sigill(void)
+{
+       /* LDAPUR W0, [SP, #8] */
+       asm volatile(".inst 0x994083e0" : : : );
+}
+
+static void lrcpc_sigill(void)
+{
+       /* LDAPR W0, [SP, #0] */
+       asm volatile(".inst 0xb8bfc3e0" : : : );
+}
+
 static void mops_sigill(void)
 {
        char dst[1], src[1];
@@ -223,6 +235,20 @@ static const struct hwcap_data {
                .cpuinfo = "cssc",
                .sigill_fn = cssc_sigill,
        },
+       {
+               .name = "LRCPC",
+               .at_hwcap = AT_HWCAP,
+               .hwcap_bit = HWCAP_LRCPC,
+               .cpuinfo = "lrcpc",
+               .sigill_fn = lrcpc_sigill,
+       },
+       {
+               .name = "LRCPC2",
+               .at_hwcap = AT_HWCAP,
+               .hwcap_bit = HWCAP_ILRCPC,
+               .cpuinfo = "ilrcpc",
+               .sigill_fn = ilrcpc_sigill,
+       },
        {
                .name = "MOPS",
                .at_hwcap = AT_HWCAP2,