diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2017-08-24 21:54:47 +0200 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2017-09-11 01:34:52 +0200 |
commit | 9520b1a1b5f7a34888e14de3cf2ee0ee5344e9fe (patch) | |
tree | 08d9c67e778a425d93af10bbaad866f61f447b1f /arch/arm/kernel/vmlinux-xip.lds.S | |
parent | Linux 4.13 (diff) | |
download | linux-9520b1a1b5f7a34888e14de3cf2ee0ee5344e9fe.tar.xz linux-9520b1a1b5f7a34888e14de3cf2ee0ee5344e9fe.zip |
ARM: head-common.S: speed up startup code
Let's use optimized routines such as memcpy to copy .data and memzero
to clear .bss in the startup code instead of doing it one word at a
time. Those routines don't use any global data so they're safe to use
even if .data and .bss segments are not initialized.
In the .data copy case a temporary stack is installed in the .bss area
as the actual kernel stack is located within the copied data area. The
XIP kernel linker script ensures a 8 byte alignment for that purpose.
Finally, make the .data copy and related pointers surrounded by
CONFIG_XIP_KERNEL to make it obvious what it is all about. This will
allow for further cleanups in the non-XIP linker script.
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Chris Brandt <Chris.Brandt@renesas.com>
Diffstat (limited to 'arch/arm/kernel/vmlinux-xip.lds.S')
-rw-r--r-- | arch/arm/kernel/vmlinux-xip.lds.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/vmlinux-xip.lds.S b/arch/arm/kernel/vmlinux-xip.lds.S index 8265b116218d..1598caada3bb 100644 --- a/arch/arm/kernel/vmlinux-xip.lds.S +++ b/arch/arm/kernel/vmlinux-xip.lds.S @@ -301,7 +301,7 @@ SECTIONS } #endif - BSS_SECTION(0, 0, 0) + BSS_SECTION(0, 0, 8) _end = .; STABS_DEBUG |