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