|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 2/3] xen/riscv: initialize .bss section
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
---
Changes since v1:
* initialization of .bss was moved to head.S
---
xen/arch/riscv/include/asm/asm.h | 4 ++++
xen/arch/riscv/riscv64/head.S | 9 +++++++++
2 files changed, 13 insertions(+)
diff --git a/xen/arch/riscv/include/asm/asm.h b/xen/arch/riscv/include/asm/asm.h
index 6d426ecea7..5208529cb4 100644
--- a/xen/arch/riscv/include/asm/asm.h
+++ b/xen/arch/riscv/include/asm/asm.h
@@ -26,14 +26,18 @@
#if __SIZEOF_POINTER__ == 8
#ifdef __ASSEMBLY__
#define RISCV_PTR .dword
+#define RISCV_SZPTR 8
#else
#define RISCV_PTR ".dword"
+#define RISCV_SZPTR 8
#endif
#elif __SIZEOF_POINTER__ == 4
#ifdef __ASSEMBLY__
#define RISCV_PTR .word
+#define RISCV_SZPTR 4
#else
#define RISCV_PTR ".word"
+#define RISCV_SZPTR 4
#endif
#else
#error "Unexpected __SIZEOF_POINTER__"
diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S
index 851b4691a5..b139976b7a 100644
--- a/xen/arch/riscv/riscv64/head.S
+++ b/xen/arch/riscv/riscv64/head.S
@@ -13,6 +13,15 @@ ENTRY(start)
lla a6, _dtb_base
REG_S a1, (a6)
+ la a3, __bss_start
+ la a4, __bss_end
+ ble a4, a3, clear_bss_done
+clear_bss:
+ REG_S zero, (a3)
+ add a3, a3, RISCV_SZPTR
+ blt a3, a4, clear_bss
+clear_bss_done:
+
la sp, cpu0_boot_stack
li t0, STACK_SIZE
add sp, sp, t0
--
2.39.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |