[kvm-unit-tests PATCH v3 2/2] riscv: sbi: Add SBI Debug Triggers Extension tests
Andrew Jones
andrew.jones at linux.dev
Fri Jun 6 01:48:23 PDT 2025
On Thu, Jun 05, 2025 at 09:18:06AM -0700, Jesse Taube wrote:
> Add tests for the DBTR SBI extension.
>
> Signed-off-by: Jesse Taube <jesse at rivosinc.com>
> ---
> V1 -> V2:
> - Call report_prefix_pop before returning
> - Disable compressed instructions in exec_call, update related comment
> - Remove extra "| 1" in dbtr_test_load
> - Remove extra newlines
> - Remove extra tabs in check_exec
> - Remove typedefs from enums
> - Return when dbtr_install_trigger fails
> - s/avalible/available/g
> - s/unistall/uninstall/g
> V2 -> V3:
> - Change SBI_DBTR_SHMEM_INVALID_ADDR to -1UL
> - Move all dbtr functions to sbi-dbtr.c
> - Move INSN_LEN to processor.h
> - Update include list
> - Use C-style comments
> ---
> lib/riscv/asm/sbi.h | 1 +
> riscv/Makefile | 1 +
> riscv/sbi-dbtr.c | 811 ++++++++++++++++++++++++++++++++++++++++++++
> riscv/sbi-tests.h | 1 +
> riscv/sbi.c | 1 +
> 5 files changed, 815 insertions(+)
> create mode 100644 riscv/sbi-dbtr.c
>
> diff --git a/lib/riscv/asm/sbi.h b/lib/riscv/asm/sbi.h
> index a5738a5c..78fd6e2a 100644
> --- a/lib/riscv/asm/sbi.h
> +++ b/lib/riscv/asm/sbi.h
> @@ -51,6 +51,7 @@ enum sbi_ext_id {
> SBI_EXT_SUSP = 0x53555350,
> SBI_EXT_FWFT = 0x46574654,
> SBI_EXT_SSE = 0x535345,
> + SBI_EXT_DBTR = 0x44425452,
> };
>
> enum sbi_ext_base_fid {
> diff --git a/riscv/Makefile b/riscv/Makefile
> index 11e68eae..55c7ac93 100644
> --- a/riscv/Makefile
> +++ b/riscv/Makefile
> @@ -20,6 +20,7 @@ all: $(tests)
> $(TEST_DIR)/sbi-deps += $(TEST_DIR)/sbi-asm.o
> $(TEST_DIR)/sbi-deps += $(TEST_DIR)/sbi-fwft.o
> $(TEST_DIR)/sbi-deps += $(TEST_DIR)/sbi-sse.o
> +$(TEST_DIR)/sbi-deps += $(TEST_DIR)/sbi-dbtr.o
>
> all_deps += $($(TEST_DIR)/sbi-deps)
>
> diff --git a/riscv/sbi-dbtr.c b/riscv/sbi-dbtr.c
> new file mode 100644
> index 00000000..a4bfa41e
> --- /dev/null
> +++ b/riscv/sbi-dbtr.c
> @@ -0,0 +1,811 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * SBI DBTR testsuite
> + *
> + * Copyright (C) 2025, Rivos Inc., Jesse Taube <jesse at rivosinc.com>
> + */
> +
> +#include <asm/io.h>
> +#include <bitops.h>
> +#include <asm/processor.h>
> +
> +#include "sbi-tests.h"
Still missing at least libcflat.h (report_*). I'm not a big fan of
libcflat.h (a collection of random stuff...), but until somebody
gets around to dividing it up correctly, then pretty much every
unit test file will need it.
> +
> +#define SBI_DBTR_SHMEM_INVALID_ADDR (-1UL)
I was going to complain that my suggestion to use get_invalid_addr() was
ignored, but now I see that SBI_DBTR_SHMEM_INVALID_ADDR isn't used at all?
Thanks,
drew
More information about the kvm-riscv
mailing list