[PATCH 0/3] RISC-V: Support querying vendor extensions

From: Charlie Jenkins
Date: Wed Jul 05 2023 - 23:32:46 EST


Introduce extensible method of querying vendor extensions. Keys above
1UL<<63 passed into the riscv_hwprobe syscall are reserved for vendor
extensions. The appropriate vendor is resolved using the discovered
mvendorid. Vendor specific code is then entered which determines how to
respond to the input hwprobe key.

The T-Head 0.7.1 vector extension is used to complete this vendor
extension framework. If vector support is compiled in and the cpu is
T-Head c906, determined with (marchid == 0 && mimpid == 0), then the
value of the hwprobe pair is set to 1 (defined as
THEAD_ISA_EXT0_V0_7_1).

Signed-off-by: Charlie Jenkins <charlie@xxxxxxxxxxxx>
---
Charlie Jenkins (3):
RISC-V: Framework for vendor extensions
RISC-V: Add T-Head 0.7.1 vector extension to hwprobe
RISC-V: Include documentation for hwprobe vendor extensions

Documentation/riscv/hwprobe.rst | 17 +++++++
arch/riscv/Kbuild | 1 +
arch/riscv/Kconfig | 1 +
arch/riscv/Kconfig.vendor | 14 ++++++
arch/riscv/include/asm/extensions.h | 16 +++++++
arch/riscv/include/asm/hwprobe.h | 1 +
arch/riscv/kernel/sys_riscv.c | 60 +++++++++++++++++++++++--
arch/riscv/vendor_extensions/Makefile | 5 +++
arch/riscv/vendor_extensions/thead/Makefile | 8 ++++
arch/riscv/vendor_extensions/thead/extensions.c | 24 ++++++++++
10 files changed, 144 insertions(+), 3 deletions(-)
---
base-commit: 53cdf865f90ba922a854c65ed05b519f9d728424
change-id: 20230627-thead_vendor_extensions-0d320a311fcb
--
- Charlie