@@ -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/asm-offsets-test.h
include $(SRCDIR)/scripts/asm-offsets.mak
%.aux.o: $(SRCDIR)/lib/auxinfo.c
@@ -7,6 +7,8 @@
#define __ASSEMBLY__
#include <asm/asm.h>
#include <asm/csr.h>
+#include <asm/asm-offsets.h>
+#include <generated/asm-offsets-test.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
new file mode 100644
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include <kbuild.h>
+#include <asm/sbi.h>
+#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;
+}
new file mode 100644
@@ -0,0 +1 @@
+/asm-offsets-test.[hs]
Replace hardcoded values with generated ones using asm-offset. This allows to directly use ASM_SBI_EXT_HSM and ASM_SBI_EXT_HSM_START in assembly. Signed-off-by: Clément Léger <cleger@rivosinc.com> --- riscv/Makefile | 2 +- riscv/sbi-asm.S | 6 ++++-- riscv/asm-offsets-test.c | 12 ++++++++++++ riscv/.gitignore | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 riscv/asm-offsets-test.c create mode 100644 riscv/.gitignore