On Fri, Jan 10, 2025 at 12:12:41PM +0100, Clément Léger wrote: > Replace hardcoded values with generated ones using sbi-asm-offset. This > allows to directly use ASM_SBI_EXT_HSM and ASM_SBI_EXT_HSM_STOP in > assembly. > > Signed-off-by: Clément Léger <cleger@xxxxxxxxxxxx> > --- > riscv/Makefile | 2 +- > riscv/sbi-asm.S | 6 ++++-- > riscv/sbi-asm-offsets.c | 12 ++++++++++++ > riscv/.gitignore | 1 + > 4 files changed, 18 insertions(+), 3 deletions(-) > create mode 100644 riscv/sbi-asm-offsets.c > create mode 100644 riscv/.gitignore > > diff --git a/riscv/Makefile b/riscv/Makefile > index 28b04156..af5ee495 100644 > --- a/riscv/Makefile > +++ b/riscv/Makefile > @@ -86,7 +86,7 @@ CFLAGS += -ffreestanding > CFLAGS += -O2 > CFLAGS += -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -I lib -I $(SRCDIR)/riscv > > -asm-offsets = lib/riscv/asm-offsets.h > +asm-offsets = lib/riscv/asm-offsets.h riscv/sbi-asm-offsets.h > include $(SRCDIR)/scripts/asm-offsets.mak > > %.aux.o: $(SRCDIR)/lib/auxinfo.c > diff --git a/riscv/sbi-asm.S b/riscv/sbi-asm.S > index 923c2cec..b9c2696f 100644 > --- a/riscv/sbi-asm.S > +++ b/riscv/sbi-asm.S > @@ -7,6 +7,8 @@ > #define __ASSEMBLY__ > #include <asm/asm.h> > #include <asm/csr.h> > +#include <asm/asm-offsets.h> > +#include <generated/sbi-asm-offsets.h> > > #include "sbi-tests.h" > > @@ -58,8 +60,8 @@ sbi_hsm_check: > 7: lb t0, 0(t1) > pause > beqz t0, 7b > - li a7, 0x48534d /* SBI_EXT_HSM */ > - li a6, 1 /* SBI_EXT_HSM_HART_STOP */ > + li a7, ASM_SBI_EXT_HSM > + li a6, ASM_SBI_EXT_HSM_HART_STOP > ecall > 8: pause > j 8b > diff --git a/riscv/sbi-asm-offsets.c b/riscv/sbi-asm-offsets.c > new file mode 100644 > index 00000000..116fe497 > --- /dev/null > +++ b/riscv/sbi-asm-offsets.c > @@ -0,0 +1,12 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +#include <kbuild.h> > +#include <asm/sbi.h> > +#include "sbi-tests.h" Don't need to include sbi-tests.h > + > +int main(void) > +{ > + DEFINE(ASM_SBI_EXT_HSM, SBI_EXT_HSM); > + DEFINE(ASM_SBI_EXT_HSM_HART_STOP, SBI_EXT_HSM_HART_STOP); > + > + return 0; > +} > diff --git a/riscv/.gitignore b/riscv/.gitignore > new file mode 100644 > index 00000000..0a8c5a36 > --- /dev/null > +++ b/riscv/.gitignore > @@ -0,0 +1 @@ > +/*-asm-offsets.[hs] > -- > 2.47.1 > Otherwise, Reviewed-by: Andrew Jones <andrew.jones@xxxxxxxxx>