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 <[email protected]>
@@ -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 <[email protected]>
@@ -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