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@xxxxxxxxxxxx> > --- > 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@xxxxxxxxxxxx> > + */ > + > +#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