summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/vmlinux-xip.lds.S
diff options
context:
space:
mode:
authorNicolas Pitre <nicolas.pitre@linaro.org>2017-08-24 21:54:47 +0200
committerNicolas Pitre <nicolas.pitre@linaro.org>2017-09-11 01:34:52 +0200
commit9520b1a1b5f7a34888e14de3cf2ee0ee5344e9fe (patch)
tree08d9c67e778a425d93af10bbaad866f61f447b1f /arch/arm/kernel/vmlinux-xip.lds.S
parentLinux 4.13 (diff)
downloadlinux-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.S2
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