aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arc
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2014-04-17 07:43:26 -0400
committerVineet Gupta <vgupta@synopsys.com>2014-06-26 00:44:05 -0400
commitbef444a33004f4062930df1fc703a25dd6d7b460 (patch)
treeed7f20642c6319ca0d8c1841d97ad10fa1ba2f01 /arch/arc
parentba25915fb2cd18152cb14b144dbe8bf2f2bd8e45 (diff)
ARC: optimize kernel bss clearing in early boot code
using ARC ZOL which reduces tot num of instructions by half Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r--arch/arc/kernel/head.S7
-rw-r--r--arch/arc/kernel/vmlinux.lds.S2
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/arc/kernel/head.S b/arch/arc/kernel/head.S
index 07a58f2d3077..4d2481bd8b98 100644
--- a/arch/arc/kernel/head.S
+++ b/arch/arc/kernel/head.S
@@ -77,10 +77,11 @@ stext:
77 ; Clear BSS before updating any globals 77 ; Clear BSS before updating any globals
78 ; XXX: use ZOL here 78 ; XXX: use ZOL here
79 mov r5, __bss_start 79 mov r5, __bss_start
80 mov r6, __bss_stop 80 sub r6, __bss_stop, r5
81 lsr.f lp_count, r6, 2
82 lpnz 1f
83 st.ab 0, [r5, 4]
811: 841:
82 st.ab 0, [r5,4]
83 brlt r5, r6, 1b
84 85
85 ; Uboot - kernel ABI 86 ; Uboot - kernel ABI
86 ; r0 = [0] No uboot interaction, [1] cmdline in r2, [2] DTB in r2 87 ; r0 = [0] No uboot interaction, [1] cmdline in r2, [2] DTB in r2
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
index 2555f5886af6..dd35bde39f69 100644
--- a/arch/arc/kernel/vmlinux.lds.S
+++ b/arch/arc/kernel/vmlinux.lds.S
@@ -116,7 +116,7 @@ SECTIONS
116 116
117 _edata = .; 117 _edata = .;
118 118
119 BSS_SECTION(0, 0, 0) 119 BSS_SECTION(4, 4, 4)
120 120
121#ifdef CONFIG_ARC_DW2_UNWIND 121#ifdef CONFIG_ARC_DW2_UNWIND
122 . = ALIGN(PAGE_SIZE); 122 . = ALIGN(PAGE_SIZE);