mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 22:02:02 +00:00
kselftest/arm64: Extend vector configuration API tests to cover SME
Provide RDVL helpers for SME and extend the main vector configuration tests to cover SME. Signed-off-by: Mark Brown <broonie@kernel.org> Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Link: https://lore.kernel.org/r/20220419112247.711548-32-broonie@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
30e3a42b5d
commit
a0f2eb641b
6 changed files with 38 additions and 1 deletions
1
tools/testing/selftests/arm64/fp/.gitignore
vendored
1
tools/testing/selftests/arm64/fp/.gitignore
vendored
|
@ -1,5 +1,6 @@
|
|||
fp-pidbench
|
||||
fpsimd-test
|
||||
rdvl-sme
|
||||
rdvl-sve
|
||||
sve-probe-vls
|
||||
sve-ptrace
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
CFLAGS += -I../../../../../usr/include/
|
||||
TEST_GEN_PROGS := sve-ptrace sve-probe-vls vec-syscfg
|
||||
TEST_PROGS_EXTENDED := fp-pidbench fpsimd-test fpsimd-stress \
|
||||
rdvl-sve \
|
||||
rdvl-sme rdvl-sve \
|
||||
sve-test sve-stress \
|
||||
vlset
|
||||
|
||||
|
@ -13,6 +13,7 @@ fp-pidbench: fp-pidbench.S asm-utils.o
|
|||
$(CC) -nostdlib $^ -o $@
|
||||
fpsimd-test: fpsimd-test.o asm-utils.o
|
||||
$(CC) -nostdlib $^ -o $@
|
||||
rdvl-sme: rdvl-sme.o rdvl.o
|
||||
rdvl-sve: rdvl-sve.o rdvl.o
|
||||
sve-ptrace: sve-ptrace.o
|
||||
sve-probe-vls: sve-probe-vls.o rdvl.o
|
||||
|
|
14
tools/testing/selftests/arm64/fp/rdvl-sme.c
Normal file
14
tools/testing/selftests/arm64/fp/rdvl-sme.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "rdvl.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int vl = rdvl_sme();
|
||||
|
||||
printf("%d\n", vl);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// Copyright (C) 2021 ARM Limited.
|
||||
|
||||
#include "sme-inst.h"
|
||||
|
||||
.arch_extension sve
|
||||
|
||||
.globl rdvl_sve
|
||||
|
@ -8,3 +10,11 @@ rdvl_sve:
|
|||
hint 34 // BTI C
|
||||
rdvl x0, #1
|
||||
ret
|
||||
|
||||
.globl rdvl_sme
|
||||
rdvl_sme:
|
||||
hint 34 // BTI C
|
||||
|
||||
rdsvl 0, 1
|
||||
|
||||
ret
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#ifndef RDVL_H
|
||||
#define RDVL_H
|
||||
|
||||
int rdvl_sme(void);
|
||||
int rdvl_sve(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -51,6 +51,16 @@ static struct vec_data vec_data[] = {
|
|||
.prctl_set = PR_SVE_SET_VL,
|
||||
.default_vl_file = "/proc/sys/abi/sve_default_vector_length",
|
||||
},
|
||||
{
|
||||
.name = "SME",
|
||||
.hwcap_type = AT_HWCAP2,
|
||||
.hwcap = HWCAP2_SME,
|
||||
.rdvl = rdvl_sme,
|
||||
.rdvl_binary = "./rdvl-sme",
|
||||
.prctl_get = PR_SME_GET_VL,
|
||||
.prctl_set = PR_SME_SET_VL,
|
||||
.default_vl_file = "/proc/sys/abi/sme_default_vector_length",
|
||||
},
|
||||
};
|
||||
|
||||
static int stdio_read_integer(FILE *f, const char *what, int *val)
|
||||
|
|
Loading…
Reference in a new issue