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