Module Name:    src
Committed By:   ryo
Date:           Tue Aug 23 05:31:13 UTC 2022

Modified Files:
        src/sys/arch/aarch64/aarch64: locore.S start.S

Log Message:
Bss clearing is now done at the beginning of start.S.

Some `__attribute__((__section__(".data")))' hack will no longer be needed.


To generate a diff of this commit:
cvs rdiff -u -r1.86 -r1.87 src/sys/arch/aarch64/aarch64/locore.S
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/aarch64/aarch64/start.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/aarch64/aarch64/locore.S
diff -u src/sys/arch/aarch64/aarch64/locore.S:1.86 src/sys/arch/aarch64/aarch64/locore.S:1.87
--- src/sys/arch/aarch64/aarch64/locore.S:1.86	Fri May  6 06:09:50 2022
+++ src/sys/arch/aarch64/aarch64/locore.S	Tue Aug 23 05:31:12 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.86 2022/05/06 06:09:50 ryo Exp $	*/
+/*	$NetBSD: locore.S,v 1.87 2022/08/23 05:31:12 ryo Exp $	*/
 
 /*
  * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org>
@@ -38,7 +38,7 @@
 #include <aarch64/hypervisor.h>
 #include "assym.h"
 
-RCSID("$NetBSD: locore.S,v 1.86 2022/05/06 06:09:50 ryo Exp $")
+RCSID("$NetBSD: locore.S,v 1.87 2022/08/23 05:31:12 ryo Exp $")
 
 #ifdef AARCH64_DEVICE_MEM_STRONGLY_ORDERED
 #define	MAIR_DEVICE_MEM		MAIR_DEVICE_nGnRnE
@@ -93,8 +93,6 @@ ASENTRY_NP(aarch64_start)
 	adrl	x0, bootstk
 	mov	sp, x0
 
-	bl	clear_bss
-
 	PRINT("boot NetBSD/aarch64\n")
 
 	bl	1f
@@ -238,18 +236,6 @@ ASEND(aarch64_start)
 	.align 2
 
 
-ASENTRY_NP(clear_bss)
-	/* Zero the BSS. The size must be aligned 16, usually it should be. */
-	adrl	x14, __bss_start__
-	adrl	x15, __bss_end__
-	b	2f
-1:	stp	xzr, xzr, [x14], #16
-2:	cmp	x14, x15
-	b.lo	1b
-	ret
-ASEND(clear_bss)
-
-
 init_sysregs:
 	stp	x0, lr, [sp, #-16]!
 

Index: src/sys/arch/aarch64/aarch64/start.S
diff -u src/sys/arch/aarch64/aarch64/start.S:1.12 src/sys/arch/aarch64/aarch64/start.S:1.13
--- src/sys/arch/aarch64/aarch64/start.S:1.12	Tue Aug 23 05:29:44 2022
+++ src/sys/arch/aarch64/aarch64/start.S	Tue Aug 23 05:31:12 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: start.S,v 1.12 2022/08/23 05:29:44 ryo Exp $	*/
+/*	$NetBSD: start.S,v 1.13 2022/08/23 05:31:12 ryo Exp $	*/
 
 /*
  * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org>
@@ -33,7 +33,7 @@
 #include <aarch64/asm.h>
 #include "assym.h"
 
-RCSID("$NetBSD: start.S,v 1.12 2022/08/23 05:29:44 ryo Exp $")
+RCSID("$NetBSD: start.S,v 1.13 2022/08/23 05:31:12 ryo Exp $")
 
 /*
  * Padding at start of kernel image to make room for 64-byte header
@@ -81,6 +81,19 @@ start:
 	br	x9
 9:
 
+
+	/*
+	 * Zero the BSS
+	 */
+	adrl	x8, __bss_start__
+	adrl	x9, __bss_end__
+	/* while (x8 < x9) *(uint128_t *)x8++ = 0; */
+	b	2f
+1:	stp	xzr, xzr, [x8], #16
+2:	cmp	x8, x9
+	b.lo	1b
+
+
 	mrs	x8, CurrentEL
 	lsr	x8, x8, #2
 	cmp	x8, #0x2

Reply via email to