Commit 6ebbf2ce authored by Russell King's avatar Russell King

ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+

ARMv6 and greater introduced a new instruction ("bx") which can be used
to return from function calls.  Recent CPUs perform better when the
"bx lr" instruction is used rather than the "mov pc, lr" instruction,
and this sequence is strongly recommended to be used by the ARM
architecture manual (section A.4.1.1).

We provide a new macro "ret" with all its variants for the condition
code which will resolve to the appropriate instruction.

Rather than doing this piecemeal, and miss some instances, change all
the "mov pc" instances to use the new macro, with the exception of
the "movs" instruction and the kprobes code.  This allows us to detect
the "mov pc, lr" case and fix it up - and also gives us the possibility
of deploying this for other registers depending on the CPU selection.
Reported-by: default avatarWill Deacon <will.deacon@arm.com>
Tested-by: Stephen Warren <swarren@nvidia.com> # Tegra Jetson TK1
Tested-by: Robert Jarzmik <robert.jarzmik@free.fr> # mioa701_bootresume.S
Tested-by: Andrew Lunn <andrew@lunn.ch> # Kirkwood
Tested-by: default avatarShawn Guo <shawn.guo@freescale.com>
Tested-by: Tony Lindgren <tony@atomide.com> # OMAPs
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com> # Armada XP, 375, 385
Acked-by: Sekhar Nori <nsekhar@ti.com> # DaVinci
Acked-by: Christoffer Dall <christoffer.dall@linaro.org> # kvm/hyp
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> # PXA3xx
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> # Xen
Tested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> # ARMv7M
Tested-by: Simon Horman <horms+renesas@verge.net.au> # Shmobile
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent af040ffc
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
@ that is being targetted. @ that is being targetted.
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
.text .text
...@@ -648,7 +649,7 @@ _armv4_AES_set_encrypt_key: ...@@ -648,7 +649,7 @@ _armv4_AES_set_encrypt_key:
.Ldone: mov r0,#0 .Ldone: mov r0,#0
ldmia sp!,{r4-r12,lr} ldmia sp!,{r4-r12,lr}
.Labrt: mov pc,lr .Labrt: ret lr
ENDPROC(private_AES_set_encrypt_key) ENDPROC(private_AES_set_encrypt_key)
.align 5 .align 5
......
...@@ -427,4 +427,25 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) ...@@ -427,4 +427,25 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
#endif #endif
.endm .endm
.irp c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
.macro ret\c, reg
#if __LINUX_ARM_ARCH__ < 6
mov\c pc, \reg
#else
.ifeqs "\reg", "lr"
bx\c \reg
.else
mov\c pc, \reg
.endif
#endif
.endm
.endr
.macro ret.w, reg
ret \reg
#ifdef CONFIG_THUMB2_KERNEL
nop
#endif
.endm
#endif /* __ASM_ASSEMBLER_H__ */ #endif /* __ASM_ASSEMBLER_H__ */
...@@ -35,5 +35,5 @@ ...@@ -35,5 +35,5 @@
\symbol_name: \symbol_name:
mov r8, lr mov r8, lr
arch_irq_handler_default arch_irq_handler_default
mov pc, r8 ret r8
.endm .endm
...@@ -90,7 +90,7 @@ ENTRY(printascii) ...@@ -90,7 +90,7 @@ ENTRY(printascii)
ldrneb r1, [r0], #1 ldrneb r1, [r0], #1
teqne r1, #0 teqne r1, #0
bne 1b bne 1b
mov pc, lr ret lr
ENDPROC(printascii) ENDPROC(printascii)
ENTRY(printch) ENTRY(printch)
...@@ -105,7 +105,7 @@ ENTRY(debug_ll_addr) ...@@ -105,7 +105,7 @@ ENTRY(debug_ll_addr)
addruart r2, r3, ip addruart r2, r3, ip
str r2, [r0] str r2, [r0]
str r3, [r1] str r3, [r1]
mov pc, lr ret lr
ENDPROC(debug_ll_addr) ENDPROC(debug_ll_addr)
#endif #endif
...@@ -116,7 +116,7 @@ ENTRY(printascii) ...@@ -116,7 +116,7 @@ ENTRY(printascii)
mov r0, #0x04 @ SYS_WRITE0 mov r0, #0x04 @ SYS_WRITE0
ARM( svc #0x123456 ) ARM( svc #0x123456 )
THUMB( svc #0xab ) THUMB( svc #0xab )
mov pc, lr ret lr
ENDPROC(printascii) ENDPROC(printascii)
ENTRY(printch) ENTRY(printch)
...@@ -125,14 +125,14 @@ ENTRY(printch) ...@@ -125,14 +125,14 @@ ENTRY(printch)
mov r0, #0x03 @ SYS_WRITEC mov r0, #0x03 @ SYS_WRITEC
ARM( svc #0x123456 ) ARM( svc #0x123456 )
THUMB( svc #0xab ) THUMB( svc #0xab )
mov pc, lr ret lr
ENDPROC(printch) ENDPROC(printch)
ENTRY(debug_ll_addr) ENTRY(debug_ll_addr)
mov r2, #0 mov r2, #0
str r2, [r0] str r2, [r0]
str r2, [r1] str r2, [r1]
mov pc, lr ret lr
ENDPROC(debug_ll_addr) ENDPROC(debug_ll_addr)
#endif #endif
...@@ -224,7 +224,7 @@ svc_preempt: ...@@ -224,7 +224,7 @@ svc_preempt:
1: bl preempt_schedule_irq @ irq en/disable is done inside 1: bl preempt_schedule_irq @ irq en/disable is done inside
ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS
tst r0, #_TIF_NEED_RESCHED tst r0, #_TIF_NEED_RESCHED
moveq pc, r8 @ go again reteq r8 @ go again
b 1b b 1b
#endif #endif
...@@ -490,7 +490,7 @@ ENDPROC(__und_usr) ...@@ -490,7 +490,7 @@ ENDPROC(__und_usr)
.pushsection .fixup, "ax" .pushsection .fixup, "ax"
.align 2 .align 2
4: str r4, [sp, #S_PC] @ retry current instruction 4: str r4, [sp, #S_PC] @ retry current instruction
mov pc, r9 ret r9
.popsection .popsection
.pushsection __ex_table,"a" .pushsection __ex_table,"a"
.long 1b, 4b .long 1b, 4b
...@@ -552,7 +552,7 @@ call_fpe: ...@@ -552,7 +552,7 @@ call_fpe:
#endif #endif
tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27 tst r0, #0x08000000 @ only CDP/CPRT/LDC/STC have bit 27
tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2 tstne r0, #0x04000000 @ bit 26 set on both ARM and Thumb-2
moveq pc, lr reteq lr
and r8, r0, #0x00000f00 @ mask out CP number and r8, r0, #0x00000f00 @ mask out CP number
THUMB( lsr r8, r8, #8 ) THUMB( lsr r8, r8, #8 )
mov r7, #1 mov r7, #1
...@@ -571,33 +571,33 @@ call_fpe: ...@@ -571,33 +571,33 @@ call_fpe:
THUMB( add pc, r8 ) THUMB( add pc, r8 )
nop nop
movw_pc lr @ CP#0 ret.w lr @ CP#0
W(b) do_fpe @ CP#1 (FPE) W(b) do_fpe @ CP#1 (FPE)
W(b) do_fpe @ CP#2 (FPE) W(b) do_fpe @ CP#2 (FPE)
movw_pc lr @ CP#3 ret.w lr @ CP#3
#ifdef CONFIG_CRUNCH #ifdef CONFIG_CRUNCH
b crunch_task_enable @ CP#4 (MaverickCrunch) b crunch_task_enable @ CP#4 (MaverickCrunch)
b crunch_task_enable @ CP#5 (MaverickCrunch) b crunch_task_enable @ CP#5 (MaverickCrunch)
b crunch_task_enable @ CP#6 (MaverickCrunch) b crunch_task_enable @ CP#6 (MaverickCrunch)
#else #else
movw_pc lr @ CP#4 ret.w lr @ CP#4
movw_pc lr @ CP#5 ret.w lr @ CP#5
movw_pc lr @ CP#6 ret.w lr @ CP#6
#endif #endif
movw_pc lr @ CP#7 ret.w lr @ CP#7
movw_pc lr @ CP#8 ret.w lr @ CP#8
movw_pc lr @ CP#9 ret.w lr @ CP#9
#ifdef CONFIG_VFP #ifdef CONFIG_VFP
W(b) do_vfp @ CP#10 (VFP) W(b) do_vfp @ CP#10 (VFP)
W(b) do_vfp @ CP#11 (VFP) W(b) do_vfp @ CP#11 (VFP)
#else #else
movw_pc lr @ CP#10 (VFP) ret.w lr @ CP#10 (VFP)
movw_pc lr @ CP#11 (VFP) ret.w lr @ CP#11 (VFP)
#endif #endif
movw_pc lr @ CP#12 ret.w lr @ CP#12
movw_pc lr @ CP#13 ret.w lr @ CP#13
movw_pc lr @ CP#14 (Debug) ret.w lr @ CP#14 (Debug)
movw_pc lr @ CP#15 (Control) ret.w lr @ CP#15 (Control)
#ifdef NEED_CPU_ARCHITECTURE #ifdef NEED_CPU_ARCHITECTURE
.align 2 .align 2
...@@ -649,7 +649,7 @@ ENTRY(fp_enter) ...@@ -649,7 +649,7 @@ ENTRY(fp_enter)
.popsection .popsection
ENTRY(no_fp) ENTRY(no_fp)
mov pc, lr ret lr
ENDPROC(no_fp) ENDPROC(no_fp)
__und_usr_fault_32: __und_usr_fault_32:
...@@ -745,7 +745,7 @@ ENDPROC(__switch_to) ...@@ -745,7 +745,7 @@ ENDPROC(__switch_to)
#ifdef CONFIG_ARM_THUMB #ifdef CONFIG_ARM_THUMB
bx \reg bx \reg
#else #else
mov pc, \reg ret \reg
#endif #endif
.endm .endm
...@@ -837,7 +837,7 @@ kuser_cmpxchg64_fixup: ...@@ -837,7 +837,7 @@ kuser_cmpxchg64_fixup:
#if __LINUX_ARM_ARCH__ < 6 #if __LINUX_ARM_ARCH__ < 6
bcc kuser_cmpxchg32_fixup bcc kuser_cmpxchg32_fixup
#endif #endif
mov pc, lr ret lr
.previous .previous
#else #else
...@@ -905,7 +905,7 @@ kuser_cmpxchg32_fixup: ...@@ -905,7 +905,7 @@ kuser_cmpxchg32_fixup:
subs r8, r4, r7 subs r8, r4, r7
rsbcss r8, r8, #(2b - 1b) rsbcss r8, r8, #(2b - 1b)
strcs r7, [sp, #S_PC] strcs r7, [sp, #S_PC]
mov pc, lr ret lr
.previous .previous
#else #else
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <asm/assembler.h>
#include <asm/unistd.h> #include <asm/unistd.h>
#include <asm/ftrace.h> #include <asm/ftrace.h>
#include <asm/unwind.h> #include <asm/unwind.h>
...@@ -88,7 +89,7 @@ ENTRY(ret_from_fork) ...@@ -88,7 +89,7 @@ ENTRY(ret_from_fork)
cmp r5, #0 cmp r5, #0
movne r0, r4 movne r0, r4
adrne lr, BSYM(1f) adrne lr, BSYM(1f)
movne pc, r5 retne r5
1: get_thread_info tsk 1: get_thread_info tsk
b ret_slow_syscall b ret_slow_syscall
ENDPROC(ret_from_fork) ENDPROC(ret_from_fork)
...@@ -290,7 +291,7 @@ ENDPROC(ftrace_graph_caller_old) ...@@ -290,7 +291,7 @@ ENDPROC(ftrace_graph_caller_old)
.macro mcount_exit .macro mcount_exit
ldmia sp!, {r0-r3, ip, lr} ldmia sp!, {r0-r3, ip, lr}
mov pc, ip ret ip
.endm .endm
ENTRY(__gnu_mcount_nc) ENTRY(__gnu_mcount_nc)
...@@ -298,7 +299,7 @@ UNWIND(.fnstart) ...@@ -298,7 +299,7 @@ UNWIND(.fnstart)
#ifdef CONFIG_DYNAMIC_FTRACE #ifdef CONFIG_DYNAMIC_FTRACE
mov ip, lr mov ip, lr
ldmia sp!, {lr} ldmia sp!, {lr}
mov pc, ip ret ip
#else #else
__mcount __mcount
#endif #endif
...@@ -333,12 +334,12 @@ return_to_handler: ...@@ -333,12 +334,12 @@ return_to_handler:
bl ftrace_return_to_handler bl ftrace_return_to_handler
mov lr, r0 @ r0 has real ret addr mov lr, r0 @ r0 has real ret addr
ldmia sp!, {r0-r3} ldmia sp!, {r0-r3}
mov pc, lr ret lr
#endif #endif
ENTRY(ftrace_stub) ENTRY(ftrace_stub)
.Lftrace_stub: .Lftrace_stub:
mov pc, lr ret lr
ENDPROC(ftrace_stub) ENDPROC(ftrace_stub)
#endif /* CONFIG_FUNCTION_TRACER */ #endif /* CONFIG_FUNCTION_TRACER */
...@@ -561,7 +562,7 @@ sys_mmap2: ...@@ -561,7 +562,7 @@ sys_mmap2:
streq r5, [sp, #4] streq r5, [sp, #4]
beq sys_mmap_pgoff beq sys_mmap_pgoff
mov r0, #-EINVAL mov r0, #-EINVAL
mov pc, lr ret lr
#else #else
str r5, [sp, #4] str r5, [sp, #4]
b sys_mmap_pgoff b sys_mmap_pgoff
......
...@@ -240,12 +240,6 @@ ...@@ -240,12 +240,6 @@
movs pc, lr @ return & move spsr_svc into cpsr movs pc, lr @ return & move spsr_svc into cpsr
.endm .endm
@
@ 32-bit wide "mov pc, reg"
@
.macro movw_pc, reg
mov pc, \reg
.endm
#else /* CONFIG_THUMB2_KERNEL */ #else /* CONFIG_THUMB2_KERNEL */
.macro svc_exit, rpsr, irq = 0 .macro svc_exit, rpsr, irq = 0
.if \irq != 0 .if \irq != 0
...@@ -304,14 +298,6 @@ ...@@ -304,14 +298,6 @@
movs pc, lr @ return & move spsr_svc into cpsr movs pc, lr @ return & move spsr_svc into cpsr
.endm .endm
#endif /* ifdef CONFIG_CPU_V7M / else */ #endif /* ifdef CONFIG_CPU_V7M / else */
@
@ 32-bit wide "mov pc, reg"
@
.macro movw_pc, reg
mov pc, \reg
nop
.endm
#endif /* !CONFIG_THUMB2_KERNEL */ #endif /* !CONFIG_THUMB2_KERNEL */
/* /*
......
...@@ -32,7 +32,7 @@ ENTRY(__set_fiq_regs) ...@@ -32,7 +32,7 @@ ENTRY(__set_fiq_regs)
ldr lr, [r0] ldr lr, [r0]
msr cpsr_c, r1 @ return to SVC mode msr cpsr_c, r1 @ return to SVC mode
mov r0, r0 @ avoid hazard prior to ARMv4 mov r0, r0 @ avoid hazard prior to ARMv4
mov pc, lr ret lr
ENDPROC(__set_fiq_regs) ENDPROC(__set_fiq_regs)
ENTRY(__get_fiq_regs) ENTRY(__get_fiq_regs)
...@@ -45,5 +45,5 @@ ENTRY(__get_fiq_regs) ...@@ -45,5 +45,5 @@ ENTRY(__get_fiq_regs)
str lr, [r0] str lr, [r0]
msr cpsr_c, r1 @ return to SVC mode msr cpsr_c, r1 @ return to SVC mode
mov r0, r0 @ avoid hazard prior to ARMv4 mov r0, r0 @ avoid hazard prior to ARMv4
mov pc, lr ret lr
ENDPROC(__get_fiq_regs) ENDPROC(__get_fiq_regs)
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
* *
*/ */
#include <asm/assembler.h>
#define ATAG_CORE 0x54410001 #define ATAG_CORE 0x54410001
#define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2) #define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2)
...@@ -61,10 +62,10 @@ __vet_atags: ...@@ -61,10 +62,10 @@ __vet_atags:
cmp r5, r6 cmp r5, r6
bne 1f bne 1f
2: mov pc, lr @ atag/dtb pointer is ok 2: ret lr @ atag/dtb pointer is ok
1: mov r2, #0 1: mov r2, #0
mov pc, lr ret lr
ENDPROC(__vet_atags) ENDPROC(__vet_atags)
/* /*
...@@ -162,7 +163,7 @@ __lookup_processor_type: ...@@ -162,7 +163,7 @@ __lookup_processor_type:
cmp r5, r6 cmp r5, r6
blo 1b blo 1b
mov r5, #0 @ unknown processor mov r5, #0 @ unknown processor
2: mov pc, lr 2: ret lr
ENDPROC(__lookup_processor_type) ENDPROC(__lookup_processor_type)
/* /*
......
...@@ -82,7 +82,7 @@ ENTRY(stext) ...@@ -82,7 +82,7 @@ ENTRY(stext)
adr lr, BSYM(1f) @ return (PIC) address adr lr, BSYM(1f) @ return (PIC) address
ARM( add pc, r10, #PROCINFO_INITFUNC ) ARM( add pc, r10, #PROCINFO_INITFUNC )
THUMB( add r12, r10, #PROCINFO_INITFUNC ) THUMB( add r12, r10, #PROCINFO_INITFUNC )
THUMB( mov pc, r12 ) THUMB( ret r12 )
1: b __after_proc_init 1: b __after_proc_init
ENDPROC(stext) ENDPROC(stext)
...@@ -119,7 +119,7 @@ ENTRY(secondary_startup) ...@@ -119,7 +119,7 @@ ENTRY(secondary_startup)
mov r13, r12 @ __secondary_switched address mov r13, r12 @ __secondary_switched address
ARM( add pc, r10, #PROCINFO_INITFUNC ) ARM( add pc, r10, #PROCINFO_INITFUNC )
THUMB( add r12, r10, #PROCINFO_INITFUNC ) THUMB( add r12, r10, #PROCINFO_INITFUNC )
THUMB( mov pc, r12 ) THUMB( ret r12 )
ENDPROC(secondary_startup) ENDPROC(secondary_startup)
ENTRY(__secondary_switched) ENTRY(__secondary_switched)
...@@ -164,7 +164,7 @@ __after_proc_init: ...@@ -164,7 +164,7 @@ __after_proc_init:
#endif #endif
mcr p15, 0, r0, c1, c0, 0 @ write control reg mcr p15, 0, r0, c1, c0, 0 @ write control reg
#endif /* CONFIG_CPU_CP15 */ #endif /* CONFIG_CPU_CP15 */
mov pc, r13 ret r13
ENDPROC(__after_proc_init) ENDPROC(__after_proc_init)
.ltorg .ltorg
...@@ -254,7 +254,7 @@ ENTRY(__setup_mpu) ...@@ -254,7 +254,7 @@ ENTRY(__setup_mpu)
orr r0, r0, #CR_M @ Set SCTRL.M (MPU on) orr r0, r0, #CR_M @ Set SCTRL.M (MPU on)
mcr p15, 0, r0, c1, c0, 0 @ Enable MPU mcr p15, 0, r0, c1, c0, 0 @ Enable MPU
isb isb
mov pc,lr ret lr
ENDPROC(__setup_mpu) ENDPROC(__setup_mpu)
#endif #endif
#include "head-common.S" #include "head-common.S"
...@@ -140,7 +140,7 @@ ENTRY(stext) ...@@ -140,7 +140,7 @@ ENTRY(stext)
mov r8, r4 @ set TTBR1 to swapper_pg_dir mov r8, r4 @ set TTBR1 to swapper_pg_dir
ARM( add pc, r10, #PROCINFO_INITFUNC ) ARM( add pc, r10, #PROCINFO_INITFUNC )
THUMB( add r12, r10, #PROCINFO_INITFUNC ) THUMB( add r12, r10, #PROCINFO_INITFUNC )
THUMB( mov pc, r12 ) THUMB( ret r12 )
1: b __enable_mmu 1: b __enable_mmu
ENDPROC(stext) ENDPROC(stext)
.ltorg .ltorg
...@@ -335,7 +335,7 @@ __create_page_tables: ...@@ -335,7 +335,7 @@ __create_page_tables:
sub r4, r4, #0x1000 @ point to the PGD table sub r4, r4, #0x1000 @ point to the PGD table
mov r4, r4, lsr #ARCH_PGD_SHIFT mov r4, r4, lsr #ARCH_PGD_SHIFT
#endif #endif
mov pc, lr ret lr
ENDPROC(__create_page_tables) ENDPROC(__create_page_tables)
.ltorg .ltorg
.align .align
...@@ -383,7 +383,7 @@ ENTRY(secondary_startup) ...@@ -383,7 +383,7 @@ ENTRY(secondary_startup)
ARM( add pc, r10, #PROCINFO_INITFUNC ) @ initialise processor ARM( add pc, r10, #PROCINFO_INITFUNC ) @ initialise processor
@ (return control reg) @ (return control reg)
THUMB( add r12, r10, #PROCINFO_INITFUNC ) THUMB( add r12, r10, #PROCINFO_INITFUNC )
THUMB( mov pc, r12 ) THUMB( ret r12 )
ENDPROC(secondary_startup) ENDPROC(secondary_startup)
/* /*
...@@ -468,7 +468,7 @@ ENTRY(__turn_mmu_on) ...@@ -468,7 +468,7 @@ ENTRY(__turn_mmu_on)
instr_sync instr_sync
mov r3, r3 mov r3, r3
mov r3, r13 mov r3, r13
mov pc, r3 ret r3
__turn_mmu_on_end: __turn_mmu_on_end:
ENDPROC(__turn_mmu_on) ENDPROC(__turn_mmu_on)
.popsection .popsection
...@@ -487,7 +487,7 @@ __fixup_smp: ...@@ -487,7 +487,7 @@ __fixup_smp:
orr r4, r4, #0x0000b000 orr r4, r4, #0x0000b000
orr r4, r4, #0x00000020 @ val 0x4100b020 orr r4, r4, #0x00000020 @ val 0x4100b020
teq r3, r4 @ ARM 11MPCore? teq r3, r4 @ ARM 11MPCore?
moveq pc, lr @ yes, assume SMP reteq lr @ yes, assume SMP
mrc p15, 0, r0, c0, c0, 5 @ read MPIDR mrc p15, 0, r0, c0, c0, 5 @ read MPIDR
and r0, r0, #0xc0000000 @ multiprocessing extensions and and r0, r0, #0xc0000000 @ multiprocessing extensions and
...@@ -500,7 +500,7 @@ __fixup_smp: ...@@ -500,7 +500,7 @@ __fixup_smp:
orr r4, r4, #0x0000c000 orr r4, r4, #0x0000c000
orr r4, r4, #0x00000090 orr r4, r4, #0x00000090
teq r3, r4 @ Check for ARM Cortex-A9 teq r3, r4 @ Check for ARM Cortex-A9
movne pc, lr @ Not ARM Cortex-A9, retne lr @ Not ARM Cortex-A9,
@ If a future SoC *does* use 0x0 as the PERIPH_BASE, then the @ If a future SoC *does* use 0x0 as the PERIPH_BASE, then the
@ below address check will need to be #ifdef'd or equivalent @ below address check will need to be #ifdef'd or equivalent
...@@ -512,7 +512,7 @@ __fixup_smp: ...@@ -512,7 +512,7 @@ __fixup_smp:
ARM_BE8(rev r0, r0) @ byteswap if big endian ARM_BE8(rev r0, r0) @ byteswap if big endian
and r0, r0, #0x3 @ number of CPUs and r0, r0, #0x3 @ number of CPUs
teq r0, #0x0 @ is 1? teq r0, #0x0 @ is 1?
movne pc, lr retne lr
__fixup_smp_on_up: __fixup_smp_on_up:
adr r0, 1f adr r0, 1f
...@@ -539,7 +539,7 @@ smp_on_up: ...@@ -539,7 +539,7 @@ smp_on_up:
.text .text
__do_fixup_smp_on_up: __do_fixup_smp_on_up:
cmp r4, r5 cmp r4, r5
movhs pc, lr reths lr
ldmia r4!, {r0, r6} ldmia r4!, {r0, r6}
ARM( str r6, [r0, r3] ) ARM( str r6, [r0, r3] )
THUMB( add r0, r0, r3 ) THUMB( add r0, r0, r3 )
...@@ -672,7 +672,7 @@ ARM_BE8(rev16 ip, ip) ...@@ -672,7 +672,7 @@ ARM_BE8(rev16 ip, ip)
2: cmp r4, r5 2: cmp r4, r5
ldrcc r7, [r4], #4 @ use branch for delay slot ldrcc r7, [r4], #4 @ use branch for delay slot
bcc 1b bcc 1b
mov pc, lr ret lr
#endif #endif
ENDPROC(__fixup_a_pv_table) ENDPROC(__fixup_a_pv_table)
......
...@@ -99,7 +99,7 @@ ENTRY(__hyp_stub_install_secondary) ...@@ -99,7 +99,7 @@ ENTRY(__hyp_stub_install_secondary)
* immediately. * immediately.
*/ */
compare_cpu_mode_with_primary r4, r5, r6, r7 compare_cpu_mode_with_primary r4, r5, r6, r7
movne pc, lr retne lr
/* /*
* Once we have given up on one CPU, we do not try to install the * Once we have given up on one CPU, we do not try to install the
...@@ -111,7 +111,7 @@ ENTRY(__hyp_stub_install_secondary) ...@@ -111,7 +111,7 @@ ENTRY(__hyp_stub_install_secondary)
*/ */
cmp r4, #HYP_MODE cmp r4, #HYP_MODE
movne pc, lr @ give up if the CPU is not in HYP mode retne lr @ give up if the CPU is not in HYP mode
/* /*
* Configure HSCTLR to set correct exception endianness/instruction set * Configure HSCTLR to set correct exception endianness/instruction set
...@@ -201,7 +201,7 @@ ENDPROC(__hyp_get_vectors) ...@@ -201,7 +201,7 @@ ENDPROC(__hyp_get_vectors)
@ fall through @ fall through
ENTRY(__hyp_set_vectors) ENTRY(__hyp_set_vectors)
__HVC(0) __HVC(0)
mov pc, lr ret lr
ENDPROC(__hyp_set_vectors) ENDPROC(__hyp_set_vectors)
#ifndef ZIMAGE #ifndef ZIMAGE
......
...@@ -179,7 +179,7 @@ concan_load: ...@@ -179,7 +179,7 @@ concan_load:
get_thread_info r10 get_thread_info r10
#endif #endif
4: dec_preempt_count r10, r3 4: dec_preempt_count r10, r3
mov pc, lr ret lr
/* /*
* Back up Concan regs to save area and disable access to them * Back up Concan regs to save area and disable access to them
...@@ -265,7 +265,7 @@ ENTRY(iwmmxt_task_copy) ...@@ -265,7 +265,7 @@ ENTRY(iwmmxt_task_copy)
mov r3, lr @ preserve return address mov r3, lr @ preserve return address
bl concan_dump bl concan_dump
msr cpsr_c, ip @ restore interrupt mode msr cpsr_c, ip @ restore interrupt mode
mov pc, r3 ret r3
/* /*
* Restore Concan state from given memory address * Restore Concan state from given memory address
...@@ -301,7 +301,7 @@ ENTRY(iwmmxt_task_restore) ...@@ -301,7 +301,7 @@ ENTRY(iwmmxt_task_restore)
mov r3, lr @ preserve return address mov r3, lr @ preserve return address
bl concan_load bl concan_load
msr cpsr_c, ip @ restore interrupt mode msr cpsr_c, ip @ restore interrupt mode
mov pc, r3 ret r3
/* /*
* Concan handling on task switch * Concan handling on task switch
...@@ -323,7 +323,7 @@ ENTRY(iwmmxt_task_switch) ...@@ -323,7 +323,7 @@ ENTRY(iwmmxt_task_switch)
add r3, r0, #TI_IWMMXT_STATE @ get next task Concan save area add r3, r0, #TI_IWMMXT_STATE @ get next task Concan save area
ldr r2, [r2] @ get current Concan owner ldr r2, [r2] @ get current Concan owner
teq r2, r3 @ next task owns it? teq r2, r3 @ next task owns it?
movne pc, lr @ no: leave Concan disabled retne lr @ no: leave Concan disabled
1: @ flip Concan access 1: @ flip Concan access
XSC(eor r1, r1, #0x3) XSC(eor r1, r1, #0x3)
...@@ -350,7 +350,7 @@ ENTRY(iwmmxt_task_release) ...@@ -350,7 +350,7 @@ ENTRY(iwmmxt_task_release)
eors r0, r0, r1 @ if equal... eors r0, r0, r1 @ if equal...
streq r0, [r3] @ then clear ownership streq r0, [r3] @ then clear ownership
msr cpsr_c, r2 @ restore interrupts msr cpsr_c, r2 @ restore interrupts
mov pc, lr ret lr
.data .data
concan_owner: concan_owner:
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/kexec.h> #include <asm/kexec.h>
.align 3 /* not needed for this code, but keeps fncpy() happy */ .align 3 /* not needed for this code, but keeps fncpy() happy */
...@@ -59,7 +60,7 @@ ENTRY(relocate_new_kernel) ...@@ -59,7 +60,7 @@ ENTRY(relocate_new_kernel)
mov r0,#0 mov r0,#0
ldr r1,kexec_mach_type ldr r1,kexec_mach_type
ldr r2,kexec_boot_atags ldr r2,kexec_boot_atags
ARM( mov pc, lr ) ARM( ret lr )
THUMB( bx lr ) THUMB( bx lr )
.align .align
......
...@@ -107,7 +107,7 @@ ENTRY(cpu_resume_mmu) ...@@ -107,7 +107,7 @@ ENTRY(cpu_resume_mmu)
instr_sync instr_sync
mov r0, r0 mov r0, r0
mov r0, r0 mov r0, r0
mov pc, r3 @ jump to virtual address ret r3 @ jump to virtual address
ENDPROC(cpu_resume_mmu) ENDPROC(cpu_resume_mmu)
.popsection .popsection
cpu_resume_after_mmu: cpu_resume_after_mmu:
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/unified.h> #include <asm/unified.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/kvm_asm.h> #include <asm/kvm_asm.h>
...@@ -134,7 +135,7 @@ phase2: ...@@ -134,7 +135,7 @@ phase2:
ldr r0, =TRAMPOLINE_VA ldr r0, =TRAMPOLINE_VA
adr r1, target adr r1, target
bfi r0, r1, #0, #PAGE_SHIFT bfi r0, r1, #0, #PAGE_SHIFT
mov pc, r0 ret r0
target: @ We're now in the trampoline code, switch page tables target: @ We're now in the trampoline code, switch page tables
mcrr p15, 4, r2, r3, c2 mcrr p15, 4, r2, r3, c2
......
...@@ -27,6 +27,7 @@ Boston, MA 02110-1301, USA. */ ...@@ -27,6 +27,7 @@ Boston, MA 02110-1301, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define al r1 #define al r1
...@@ -47,7 +48,7 @@ ENTRY(__aeabi_llsl) ...@@ -47,7 +48,7 @@ ENTRY(__aeabi_llsl)
THUMB( lsrmi r3, al, ip ) THUMB( lsrmi r3, al, ip )
THUMB( orrmi ah, ah, r3 ) THUMB( orrmi ah, ah, r3 )
mov al, al, lsl r2 mov al, al, lsl r2
mov pc, lr ret lr
ENDPROC(__ashldi3) ENDPROC(__ashldi3)
ENDPROC(__aeabi_llsl) ENDPROC(__aeabi_llsl)
...@@ -27,6 +27,7 @@ Boston, MA 02110-1301, USA. */ ...@@ -27,6 +27,7 @@ Boston, MA 02110-1301, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define al r1 #define al r1
...@@ -47,7 +48,7 @@ ENTRY(__aeabi_lasr) ...@@ -47,7 +48,7 @@ ENTRY(__aeabi_lasr)
THUMB( lslmi r3, ah, ip ) THUMB( lslmi r3, ah, ip )
THUMB( orrmi al, al, r3 ) THUMB( orrmi al, al, r3 )
mov ah, ah, asr r2 mov ah, ah, asr r2
mov pc, lr ret lr
ENDPROC(__ashrdi3) ENDPROC(__ashrdi3)
ENDPROC(__aeabi_lasr) ENDPROC(__aeabi_lasr)
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
ENTRY(c_backtrace) ENTRY(c_backtrace)
#if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK)
mov pc, lr ret lr
ENDPROC(c_backtrace) ENDPROC(c_backtrace)
#else #else
stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location...
......
#include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#if __LINUX_ARM_ARCH__ >= 6 #if __LINUX_ARM_ARCH__ >= 6
...@@ -70,7 +71,7 @@ UNWIND( .fnstart ) ...@@ -70,7 +71,7 @@ UNWIND( .fnstart )
\instr r2, r2, r3 \instr r2, r2, r3
str r2, [r1, r0, lsl #2] str r2, [r1, r0, lsl #2]
restore_irqs ip restore_irqs ip
mov pc, lr ret lr
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(\name ) ENDPROC(\name )
.endm .endm
...@@ -98,7 +99,7 @@ UNWIND( .fnstart ) ...@@ -98,7 +99,7 @@ UNWIND( .fnstart )
\store r2, [r1] \store r2, [r1]
moveq r0, #0 moveq r0, #0
restore_irqs ip restore_irqs ip
mov pc, lr ret lr
UNWIND( .fnend ) UNWIND( .fnend )
ENDPROC(\name ) ENDPROC(\name )
.endm .endm
......
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#if __LINUX_ARM_ARCH__ >= 6 #if __LINUX_ARM_ARCH__ >= 6
ENTRY(__bswapsi2) ENTRY(__bswapsi2)
...@@ -18,7 +19,7 @@ ENTRY(__bswapsi2) ...@@ -18,7 +19,7 @@ ENTRY(__bswapsi2)
mov r3, r3, lsr #8 mov r3, r3, lsr #8
bic r3, r3, #0xff00 bic r3, r3, #0xff00
eor r0, r3, r0, ror #8 eor r0, r3, r0, ror #8
mov pc, lr ret lr
ENDPROC(__bswapsi2) ENDPROC(__bswapsi2)
ENTRY(__bswapdi2) ENTRY(__bswapdi2)
...@@ -31,6 +32,6 @@ ENTRY(__bswapdi2) ...@@ -31,6 +32,6 @@ ENTRY(__bswapdi2)
bic r1, r1, #0xff00 bic r1, r1, #0xff00
eor r1, r1, r0, ror #8 eor r1, r1, r0, ror #8
eor r0, r3, ip, ror #8 eor r0, r3, ip, ror #8
mov pc, lr ret lr
ENDPROC(__bswapdi2) ENDPROC(__bswapdi2)
#endif #endif
...@@ -36,9 +36,9 @@ ENTRY(call_with_stack) ...@@ -36,9 +36,9 @@ ENTRY(call_with_stack)
mov r0, r1 mov r0, r1
adr lr, BSYM(1f) adr lr, BSYM(1f)
mov pc, r2 ret r2
1: ldr lr, [sp] 1: ldr lr, [sp]
ldr sp, [sp, #4] ldr sp, [sp, #4]
mov pc, lr ret lr
ENDPROC(call_with_stack) ENDPROC(call_with_stack)
...@@ -97,7 +97,7 @@ td3 .req lr ...@@ -97,7 +97,7 @@ td3 .req lr
#endif #endif
#endif #endif
adcnes sum, sum, td0 @ update checksum adcnes sum, sum, td0 @ update checksum
mov pc, lr ret lr
ENTRY(csum_partial) ENTRY(csum_partial)
stmfd sp!, {buf, lr} stmfd sp!, {buf, lr}
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <asm/assembler.h>
/* /*
* unsigned int * unsigned int
...@@ -40,7 +41,7 @@ sum .req r3 ...@@ -40,7 +41,7 @@ sum .req r3
adcs sum, sum, ip, put_byte_1 @ update checksum adcs sum, sum, ip, put_byte_1 @ update checksum
strb ip, [dst], #1 strb ip, [dst], #1
tst dst, #2 tst dst, #2
moveq pc, lr @ dst is now 32bit aligned reteq lr @ dst is now 32bit aligned
.Ldst_16bit: load2b r8, ip .Ldst_16bit: load2b r8, ip
sub len, len, #2 sub len, len, #2
...@@ -48,7 +49,7 @@ sum .req r3 ...@@ -48,7 +49,7 @@ sum .req r3
strb r8, [dst], #1 strb r8, [dst], #1
adcs sum, sum, ip, put_byte_1 adcs sum, sum, ip, put_byte_1
strb ip, [dst], #1 strb ip, [dst], #1
mov pc, lr @ dst is now 32bit aligned ret lr @ dst is now 32bit aligned
/* /*
* Handle 0 to 7 bytes, with any alignment of source and * Handle 0 to 7 bytes, with any alignment of source and
......
...@@ -35,7 +35,7 @@ ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0x7fffff06 ...@@ -35,7 +35,7 @@ ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0x7fffff06
mul r0, r2, r0 @ max = 2^32-1 mul r0, r2, r0 @ max = 2^32-1
add r0, r0, r1, lsr #32-6 add r0, r0, r1, lsr #32-6
movs r0, r0, lsr #6 movs r0, r0, lsr #6
moveq pc, lr reteq lr
/* /*
* loops = r0 * HZ * loops_per_jiffy / 1000000 * loops = r0 * HZ * loops_per_jiffy / 1000000
...@@ -46,23 +46,23 @@ ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0x7fffff06 ...@@ -46,23 +46,23 @@ ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0x7fffff06
ENTRY(__loop_delay) ENTRY(__loop_delay)
subs r0, r0, #1 subs r0, r0, #1
#if 0 #if 0
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
movls pc, lr retls lr
subs r0, r0, #1 subs r0, r0, #1
#endif #endif
bhi __loop_delay bhi __loop_delay
mov pc, lr ret lr
ENDPROC(__loop_udelay) ENDPROC(__loop_udelay)
ENDPROC(__loop_const_udelay) ENDPROC(__loop_const_udelay)
ENDPROC(__loop_delay) ENDPROC(__loop_delay)
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
...@@ -97,7 +98,7 @@ UNWIND(.fnstart) ...@@ -97,7 +98,7 @@ UNWIND(.fnstart)
mov yl, #0 mov yl, #0
cmpeq xl, r4 cmpeq xl, r4
movlo xh, xl movlo xh, xl
movlo pc, lr retlo lr
@ The division loop for lower bit positions. @ The division loop for lower bit positions.
@ Here we shift remainer bits leftwards rather than moving the @ Here we shift remainer bits leftwards rather than moving the
...@@ -111,14 +112,14 @@ UNWIND(.fnstart) ...@@ -111,14 +112,14 @@ UNWIND(.fnstart)
subcs xh, xh, r4 subcs xh, xh, r4
movs ip, ip, lsr #1 movs ip, ip, lsr #1
bne 4b bne 4b
mov pc, lr ret lr
@ The top part of remainder became zero. If carry is set @ The top part of remainder became zero. If carry is set
@ (the 33th bit) this is a false positive so resume the loop. @ (the 33th bit) this is a false positive so resume the loop.
@ Otherwise, if lower part is also null then we are done. @ Otherwise, if lower part is also null then we are done.
6: bcs 5b 6: bcs 5b
cmp xl, #0 cmp xl, #0
moveq pc, lr reteq lr
@ We still have remainer bits in the low part. Bring them up. @ We still have remainer bits in the low part. Bring them up.
...@@ -144,7 +145,7 @@ UNWIND(.fnstart) ...@@ -144,7 +145,7 @@ UNWIND(.fnstart)
movs ip, ip, lsr #1 movs ip, ip, lsr #1
mov xh, #1 mov xh, #1
bne 4b bne 4b
mov pc, lr ret lr
8: @ Division by a power of 2: determine what that divisor order is 8: @ Division by a power of 2: determine what that divisor order is
@ then simply shift values around @ then simply shift values around
...@@ -184,13 +185,13 @@ UNWIND(.fnstart) ...@@ -184,13 +185,13 @@ UNWIND(.fnstart)
THUMB( orr yl, yl, xh ) THUMB( orr yl, yl, xh )
mov xh, xl, lsl ip mov xh, xl, lsl ip
mov xh, xh, lsr ip mov xh, xh, lsr ip
mov pc, lr ret lr
@ eq -> division by 1: obvious enough... @ eq -> division by 1: obvious enough...
9: moveq yl, xl 9: moveq yl, xl
moveq yh, xh moveq yh, xh
moveq xh, #0 moveq xh, #0
moveq pc, lr reteq lr
UNWIND(.fnend) UNWIND(.fnend)
UNWIND(.fnstart) UNWIND(.fnstart)
......
...@@ -35,7 +35,7 @@ ENTRY(_find_first_zero_bit_le) ...@@ -35,7 +35,7 @@ ENTRY(_find_first_zero_bit_le)
2: cmp r2, r1 @ any more? 2: cmp r2, r1 @ any more?
blo 1b blo 1b
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
mov pc, lr ret lr
ENDPROC(_find_first_zero_bit_le) ENDPROC(_find_first_zero_bit_le)
/* /*
...@@ -76,7 +76,7 @@ ENTRY(_find_first_bit_le) ...@@ -76,7 +76,7 @@ ENTRY(_find_first_bit_le)
2: cmp r2, r1 @ any more? 2: cmp r2, r1 @ any more?
blo 1b blo 1b
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
mov pc, lr ret lr
ENDPROC(_find_first_bit_le) ENDPROC(_find_first_bit_le)
/* /*
...@@ -114,7 +114,7 @@ ENTRY(_find_first_zero_bit_be) ...@@ -114,7 +114,7 @@ ENTRY(_find_first_zero_bit_be)
2: cmp r2, r1 @ any more? 2: cmp r2, r1 @ any more?
blo 1b blo 1b
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
mov pc, lr ret lr
ENDPROC(_find_first_zero_bit_be) ENDPROC(_find_first_zero_bit_be)
ENTRY(_find_next_zero_bit_be) ENTRY(_find_next_zero_bit_be)
...@@ -148,7 +148,7 @@ ENTRY(_find_first_bit_be) ...@@ -148,7 +148,7 @@ ENTRY(_find_first_bit_be)
2: cmp r2, r1 @ any more? 2: cmp r2, r1 @ any more?
blo 1b blo 1b
3: mov r0, r1 @ no free bits 3: mov r0, r1 @ no free bits
mov pc, lr ret lr
ENDPROC(_find_first_bit_be) ENDPROC(_find_first_bit_be)
ENTRY(_find_next_bit_be) ENTRY(_find_next_bit_be)
...@@ -192,5 +192,5 @@ ENDPROC(_find_next_bit_be) ...@@ -192,5 +192,5 @@ ENDPROC(_find_next_bit_be)
#endif #endif
cmp r1, r0 @ Clamp to maxbit cmp r1, r0 @ Clamp to maxbit
movlo r0, r1 movlo r0, r1
mov pc, lr ret lr
...@@ -36,7 +36,7 @@ ENTRY(__get_user_1) ...@@ -36,7 +36,7 @@ ENTRY(__get_user_1)
check_uaccess r0, 1, r1, r2, __get_user_bad check_uaccess r0, 1, r1, r2, __get_user_bad
1: TUSER(ldrb) r2, [r0] 1: TUSER(ldrb) r2, [r0]
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__get_user_1) ENDPROC(__get_user_1)
ENTRY(__get_user_2) ENTRY(__get_user_2)
...@@ -56,20 +56,20 @@ rb .req r0 ...@@ -56,20 +56,20 @@ rb .req r0
orr r2, rb, r2, lsl #8 orr r2, rb, r2, lsl #8
#endif #endif
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__get_user_2) ENDPROC(__get_user_2)
ENTRY(__get_user_4) ENTRY(__get_user_4)
check_uaccess r0, 4, r1, r2, __get_user_bad check_uaccess r0, 4, r1, r2, __get_user_bad
4: TUSER(ldr) r2, [r0] 4: TUSER(ldr) r2, [r0]
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__get_user_4) ENDPROC(__get_user_4)
__get_user_bad: __get_user_bad:
mov r2, #0 mov r2, #0
mov r0, #-EFAULT mov r0, #-EFAULT
mov pc, lr ret lr
ENDPROC(__get_user_bad) ENDPROC(__get_user_bad)
.pushsection __ex_table, "a" .pushsection __ex_table, "a"
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
ENTRY(__raw_readsb) ENTRY(__raw_readsb)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
moveq pc, lr reteq lr
ands ip, r1, #3 ands ip, r1, #3
bne .Linsb_align bne .Linsb_align
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
ENTRY(__raw_readsl) ENTRY(__raw_readsl)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
moveq pc, lr reteq lr
ands ip, r1, #3 ands ip, r1, #3
bne 3f bne 3f
...@@ -33,7 +33,7 @@ ENTRY(__raw_readsl) ...@@ -33,7 +33,7 @@ ENTRY(__raw_readsl)
stmcsia r1!, {r3, ip} stmcsia r1!, {r3, ip}
ldrne r3, [r0, #0] ldrne r3, [r0, #0]
strne r3, [r1, #0] strne r3, [r1, #0]
mov pc, lr ret lr
3: ldr r3, [r0] 3: ldr r3, [r0]
cmp ip, #2 cmp ip, #2
...@@ -75,5 +75,5 @@ ENTRY(__raw_readsl) ...@@ -75,5 +75,5 @@ ENTRY(__raw_readsl)
strb r3, [r1, #1] strb r3, [r1, #1]
8: mov r3, ip, get_byte_0 8: mov r3, ip, get_byte_0
strb r3, [r1, #0] strb r3, [r1, #0]
mov pc, lr ret lr
ENDPROC(__raw_readsl) ENDPROC(__raw_readsl)
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
strb r3, [r1], #1 strb r3, [r1], #1
subs r2, r2, #1 subs r2, r2, #1
moveq pc, lr reteq lr
ENTRY(__raw_readsw) ENTRY(__raw_readsw)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
moveq pc, lr reteq lr
tst r1, #3 tst r1, #3
bne .Linsw_align bne .Linsw_align
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
ENTRY(__raw_readsw) ENTRY(__raw_readsw)
teq r2, #0 teq r2, #0
moveq pc, lr reteq lr
tst r1, #3 tst r1, #3
bne .Linsw_align bne .Linsw_align
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
ENTRY(__raw_writesb) ENTRY(__raw_writesb)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
moveq pc, lr reteq lr
ands ip, r1, #3 ands ip, r1, #3
bne .Loutsb_align bne .Loutsb_align
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
ENTRY(__raw_writesl) ENTRY(__raw_writesl)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
moveq pc, lr reteq lr
ands ip, r1, #3 ands ip, r1, #3
bne 3f bne 3f
...@@ -33,7 +33,7 @@ ENTRY(__raw_writesl) ...@@ -33,7 +33,7 @@ ENTRY(__raw_writesl)
ldrne r3, [r1, #0] ldrne r3, [r1, #0]
strcs ip, [r0, #0] strcs ip, [r0, #0]
strne r3, [r0, #0] strne r3, [r0, #0]
mov pc, lr ret lr
3: bic r1, r1, #3 3: bic r1, r1, #3
ldr r3, [r1], #4 ldr r3, [r1], #4
...@@ -47,7 +47,7 @@ ENTRY(__raw_writesl) ...@@ -47,7 +47,7 @@ ENTRY(__raw_writesl)
orr ip, ip, r3, lspush #16 orr ip, ip, r3, lspush #16
str ip, [r0] str ip, [r0]
bne 4b bne 4b
mov pc, lr ret lr
5: mov ip, r3, lspull #8 5: mov ip, r3, lspull #8
ldr r3, [r1], #4 ldr r3, [r1], #4
...@@ -55,7 +55,7 @@ ENTRY(__raw_writesl) ...@@ -55,7 +55,7 @@ ENTRY(__raw_writesl)
orr ip, ip, r3, lspush #24 orr ip, ip, r3, lspush #24
str ip, [r0] str ip, [r0]
bne 5b bne 5b
mov pc, lr ret lr
6: mov ip, r3, lspull #24 6: mov ip, r3, lspull #24
ldr r3, [r1], #4 ldr r3, [r1], #4
...@@ -63,5 +63,5 @@ ENTRY(__raw_writesl) ...@@ -63,5 +63,5 @@ ENTRY(__raw_writesl)
orr ip, ip, r3, lspush #8 orr ip, ip, r3, lspush #8
str ip, [r0] str ip, [r0]
bne 6b bne 6b
mov pc, lr ret lr
ENDPROC(__raw_writesl) ENDPROC(__raw_writesl)
...@@ -28,11 +28,11 @@ ...@@ -28,11 +28,11 @@
orr r3, r3, r3, lsl #16 orr r3, r3, r3, lsl #16
str r3, [r0] str r3, [r0]
subs r2, r2, #1 subs r2, r2, #1
moveq pc, lr reteq lr
ENTRY(__raw_writesw) ENTRY(__raw_writesw)
teq r2, #0 @ do we have to check for the zero len? teq r2, #0 @ do we have to check for the zero len?
moveq pc, lr reteq lr
tst r1, #3 tst r1, #3
bne .Loutsw_align bne .Loutsw_align
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
ENTRY(__raw_writesw) ENTRY(__raw_writesw)
teq r2, #0 teq r2, #0
moveq pc, lr reteq lr
ands r3, r1, #3 ands r3, r1, #3
bne .Loutsw_align bne .Loutsw_align
...@@ -96,5 +96,5 @@ ENTRY(__raw_writesw) ...@@ -96,5 +96,5 @@ ENTRY(__raw_writesw)
tst r2, #1 tst r2, #1
3: movne ip, r3, lsr #8 3: movne ip, r3, lsr #8
strneh ip, [r0] strneh ip, [r0]
mov pc, lr ret lr
ENDPROC(__raw_writesw) ENDPROC(__raw_writesw)
...@@ -210,7 +210,7 @@ ENTRY(__aeabi_uidiv) ...@@ -210,7 +210,7 @@ ENTRY(__aeabi_uidiv)
UNWIND(.fnstart) UNWIND(.fnstart)
subs r2, r1, #1 subs r2, r1, #1
moveq pc, lr reteq lr
bcc Ldiv0 bcc Ldiv0
cmp r0, r1 cmp r0, r1
bls 11f bls 11f
...@@ -220,16 +220,16 @@ UNWIND(.fnstart) ...@@ -220,16 +220,16 @@ UNWIND(.fnstart)
ARM_DIV_BODY r0, r1, r2, r3 ARM_DIV_BODY r0, r1, r2, r3
mov r0, r2 mov r0, r2
mov pc, lr ret lr
11: moveq r0, #1 11: moveq r0, #1
movne r0, #0 movne r0, #0
mov pc, lr ret lr
12: ARM_DIV2_ORDER r1, r2 12: ARM_DIV2_ORDER r1, r2
mov r0, r0, lsr r2 mov r0, r0, lsr r2
mov pc, lr ret lr
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__udivsi3) ENDPROC(__udivsi3)
...@@ -244,11 +244,11 @@ UNWIND(.fnstart) ...@@ -244,11 +244,11 @@ UNWIND(.fnstart)
moveq r0, #0 moveq r0, #0
tsthi r1, r2 @ see if divisor is power of 2 tsthi r1, r2 @ see if divisor is power of 2
andeq r0, r0, r2 andeq r0, r0, r2
movls pc, lr retls lr
ARM_MOD_BODY r0, r1, r2, r3 ARM_MOD_BODY r0, r1, r2, r3
mov pc, lr ret lr
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__umodsi3) ENDPROC(__umodsi3)
...@@ -274,23 +274,23 @@ UNWIND(.fnstart) ...@@ -274,23 +274,23 @@ UNWIND(.fnstart)
cmp ip, #0 cmp ip, #0
rsbmi r0, r0, #0 rsbmi r0, r0, #0
mov pc, lr ret lr
10: teq ip, r0 @ same sign ? 10: teq ip, r0 @ same sign ?
rsbmi r0, r0, #0 rsbmi r0, r0, #0
mov pc, lr ret lr
11: movlo r0, #0 11: movlo r0, #0
moveq r0, ip, asr #31 moveq r0, ip, asr #31
orreq r0, r0, #1 orreq r0, r0, #1
mov pc, lr ret lr
12: ARM_DIV2_ORDER r1, r2 12: ARM_DIV2_ORDER r1, r2
cmp ip, #0 cmp ip, #0
mov r0, r3, lsr r2 mov r0, r3, lsr r2
rsbmi r0, r0, #0 rsbmi r0, r0, #0
mov pc, lr ret lr
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__divsi3) ENDPROC(__divsi3)
...@@ -315,7 +315,7 @@ UNWIND(.fnstart) ...@@ -315,7 +315,7 @@ UNWIND(.fnstart)
10: cmp ip, #0 10: cmp ip, #0
rsbmi r0, r0, #0 rsbmi r0, r0, #0
mov pc, lr ret lr
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__modsi3) ENDPROC(__modsi3)
...@@ -331,7 +331,7 @@ UNWIND(.save {r0, r1, ip, lr} ) ...@@ -331,7 +331,7 @@ UNWIND(.save {r0, r1, ip, lr} )
ldmfd sp!, {r1, r2, ip, lr} ldmfd sp!, {r1, r2, ip, lr}
mul r3, r0, r2 mul r3, r0, r2
sub r1, r1, r3 sub r1, r1, r3
mov pc, lr ret lr
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__aeabi_uidivmod) ENDPROC(__aeabi_uidivmod)
...@@ -344,7 +344,7 @@ UNWIND(.save {r0, r1, ip, lr} ) ...@@ -344,7 +344,7 @@ UNWIND(.save {r0, r1, ip, lr} )
ldmfd sp!, {r1, r2, ip, lr} ldmfd sp!, {r1, r2, ip, lr}
mul r3, r0, r2 mul r3, r0, r2
sub r1, r1, r3 sub r1, r1, r3
mov pc, lr ret lr
UNWIND(.fnend) UNWIND(.fnend)
ENDPROC(__aeabi_idivmod) ENDPROC(__aeabi_idivmod)
......
...@@ -27,6 +27,7 @@ Boston, MA 02110-1301, USA. */ ...@@ -27,6 +27,7 @@ Boston, MA 02110-1301, USA. */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define al r1 #define al r1
...@@ -47,7 +48,7 @@ ENTRY(__aeabi_llsr) ...@@ -47,7 +48,7 @@ ENTRY(__aeabi_llsr)
THUMB( lslmi r3, ah, ip ) THUMB( lslmi r3, ah, ip )
THUMB( orrmi al, al, r3 ) THUMB( orrmi al, al, r3 )
mov ah, ah, lsr r2 mov ah, ah, lsr r2
mov pc, lr ret lr
ENDPROC(__lshrdi3) ENDPROC(__lshrdi3)
ENDPROC(__aeabi_llsr) ENDPROC(__aeabi_llsr)
...@@ -22,5 +22,5 @@ ENTRY(memchr) ...@@ -22,5 +22,5 @@ ENTRY(memchr)
bne 1b bne 1b
sub r0, r0, #1 sub r0, r0, #1
2: movne r0, #0 2: movne r0, #0
mov pc, lr ret lr
ENDPROC(memchr) ENDPROC(memchr)
...@@ -110,7 +110,7 @@ ENTRY(memset) ...@@ -110,7 +110,7 @@ ENTRY(memset)
strneb r1, [ip], #1 strneb r1, [ip], #1
tst r2, #1 tst r2, #1
strneb r1, [ip], #1 strneb r1, [ip], #1
mov pc, lr ret lr
6: subs r2, r2, #4 @ 1 do we have enough 6: subs r2, r2, #4 @ 1 do we have enough
blt 5b @ 1 bytes to align with? blt 5b @ 1 bytes to align with?
......
...@@ -121,5 +121,5 @@ ENTRY(__memzero) ...@@ -121,5 +121,5 @@ ENTRY(__memzero)
strneb r2, [r0], #1 @ 1 strneb r2, [r0], #1 @ 1
tst r1, #1 @ 1 a byte left over tst r1, #1 @ 1 a byte left over
strneb r2, [r0], #1 @ 1 strneb r2, [r0], #1 @ 1
mov pc, lr @ 1 ret lr @ 1
ENDPROC(__memzero) ENDPROC(__memzero)
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define xh r0 #define xh r0
...@@ -41,7 +42,7 @@ ENTRY(__aeabi_lmul) ...@@ -41,7 +42,7 @@ ENTRY(__aeabi_lmul)
adc xh, xh, yh, lsr #16 adc xh, xh, yh, lsr #16
adds xl, xl, ip, lsl #16 adds xl, xl, ip, lsl #16
adc xh, xh, ip, lsr #16 adc xh, xh, ip, lsr #16
mov pc, lr ret lr
ENDPROC(__muldi3) ENDPROC(__muldi3)
ENDPROC(__aeabi_lmul) ENDPROC(__aeabi_lmul)
...@@ -36,7 +36,7 @@ ENTRY(__put_user_1) ...@@ -36,7 +36,7 @@ ENTRY(__put_user_1)
check_uaccess r0, 1, r1, ip, __put_user_bad check_uaccess r0, 1, r1, ip, __put_user_bad
1: TUSER(strb) r2, [r0] 1: TUSER(strb) r2, [r0]
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__put_user_1) ENDPROC(__put_user_1)
ENTRY(__put_user_2) ENTRY(__put_user_2)
...@@ -60,14 +60,14 @@ ENTRY(__put_user_2) ...@@ -60,14 +60,14 @@ ENTRY(__put_user_2)
#endif #endif
#endif /* CONFIG_THUMB2_KERNEL */ #endif /* CONFIG_THUMB2_KERNEL */
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__put_user_2) ENDPROC(__put_user_2)
ENTRY(__put_user_4) ENTRY(__put_user_4)
check_uaccess r0, 4, r1, ip, __put_user_bad check_uaccess r0, 4, r1, ip, __put_user_bad
4: TUSER(str) r2, [r0] 4: TUSER(str) r2, [r0]
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__put_user_4) ENDPROC(__put_user_4)
ENTRY(__put_user_8) ENTRY(__put_user_8)
...@@ -80,12 +80,12 @@ ENTRY(__put_user_8) ...@@ -80,12 +80,12 @@ ENTRY(__put_user_8)
6: TUSER(str) r3, [r0] 6: TUSER(str) r3, [r0]
#endif #endif
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(__put_user_8) ENDPROC(__put_user_8)
__put_user_bad: __put_user_bad:
mov r0, #-EFAULT mov r0, #-EFAULT
mov pc, lr ret lr
ENDPROC(__put_user_bad) ENDPROC(__put_user_bad)
.pushsection __ex_table, "a" .pushsection __ex_table, "a"
......
...@@ -23,5 +23,5 @@ ENTRY(strchr) ...@@ -23,5 +23,5 @@ ENTRY(strchr)
teq r2, r1 teq r2, r1
movne r0, #0 movne r0, #0
subeq r0, r0, #1 subeq r0, r0, #1
mov pc, lr ret lr
ENDPROC(strchr) ENDPROC(strchr)
...@@ -22,5 +22,5 @@ ENTRY(strrchr) ...@@ -22,5 +22,5 @@ ENTRY(strrchr)
teq r2, #0 teq r2, #0
bne 1b bne 1b
mov r0, r3 mov r0, r3
mov pc, lr ret lr
ENDPROC(strrchr) ENDPROC(strrchr)
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#ifdef __ARMEB__ #ifdef __ARMEB__
#define xh r0 #define xh r0
...@@ -31,7 +32,7 @@ ENTRY(__ucmpdi2) ...@@ -31,7 +32,7 @@ ENTRY(__ucmpdi2)
movlo r0, #0 movlo r0, #0
moveq r0, #1 moveq r0, #1
movhi r0, #2 movhi r0, #2
mov pc, lr ret lr
ENDPROC(__ucmpdi2) ENDPROC(__ucmpdi2)
...@@ -44,7 +45,7 @@ ENTRY(__aeabi_ulcmp) ...@@ -44,7 +45,7 @@ ENTRY(__aeabi_ulcmp)
movlo r0, #-1 movlo r0, #-1
moveq r0, #0 moveq r0, #0
movhi r0, #1 movhi r0, #1
mov pc, lr ret lr
ENDPROC(__aeabi_ulcmp) ENDPROC(__aeabi_ulcmp)
......
...@@ -213,7 +213,7 @@ ddr2clk_stop_done: ...@@ -213,7 +213,7 @@ ddr2clk_stop_done:
cmp ip, r0 cmp ip, r0
bne ddr2clk_stop_done bne ddr2clk_stop_done
mov pc, lr ret lr
ENDPROC(davinci_ddr_psc_config) ENDPROC(davinci_ddr_psc_config)
CACHE_FLUSH: CACHE_FLUSH:
......
...@@ -198,7 +198,7 @@ crunch_load: ...@@ -198,7 +198,7 @@ crunch_load:
get_thread_info r10 get_thread_info r10
#endif #endif
2: dec_preempt_count r10, r3 2: dec_preempt_count r10, r3
mov pc, lr ret lr
/* /*
* Back up crunch regs to save area and disable access to them * Back up crunch regs to save area and disable access to them
...@@ -277,7 +277,7 @@ ENTRY(crunch_task_copy) ...@@ -277,7 +277,7 @@ ENTRY(crunch_task_copy)
mov r3, lr @ preserve return address mov r3, lr @ preserve return address
bl crunch_save bl crunch_save
msr cpsr_c, ip @ restore interrupt mode msr cpsr_c, ip @ restore interrupt mode
mov pc, r3 ret r3
/* /*
* Restore crunch state from given memory address * Restore crunch state from given memory address
...@@ -310,4 +310,4 @@ ENTRY(crunch_task_restore) ...@@ -310,4 +310,4 @@ ENTRY(crunch_task_restore)
mov r3, lr @ preserve return address mov r3, lr @ preserve return address
bl crunch_load bl crunch_load
msr cpsr_c, ip @ restore interrupt mode msr cpsr_c, ip @ restore interrupt mode
mov pc, r3 ret r3
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include "hardware.h" #include "hardware.h"
...@@ -301,7 +302,7 @@ rbc_loop: ...@@ -301,7 +302,7 @@ rbc_loop:
resume_mmdc resume_mmdc
/* return to suspend finish */ /* return to suspend finish */
mov pc, lr ret lr
resume: resume:
/* invalidate L1 I-cache first */ /* invalidate L1 I-cache first */
...@@ -325,7 +326,7 @@ resume: ...@@ -325,7 +326,7 @@ resume:
mov r5, #0x1 mov r5, #0x1
resume_mmdc resume_mmdc
mov pc, lr ret lr
ENDPROC(imx6_suspend) ENDPROC(imx6_suspend)
/* /*
......
...@@ -46,7 +46,7 @@ ENTRY(ll_get_coherency_base) ...@@ -46,7 +46,7 @@ ENTRY(ll_get_coherency_base)
ldr r1, =coherency_base ldr r1, =coherency_base
ldr r1, [r1] ldr r1, [r1]
2: 2:
mov pc, lr ret lr
ENDPROC(ll_get_coherency_base) ENDPROC(ll_get_coherency_base)
/* /*
...@@ -63,7 +63,7 @@ ENTRY(ll_get_coherency_cpumask) ...@@ -63,7 +63,7 @@ ENTRY(ll_get_coherency_cpumask)
mov r2, #(1 << 24) mov r2, #(1 << 24)
lsl r3, r2, r3 lsl r3, r2, r3
ARM_BE8(rev r3, r3) ARM_BE8(rev r3, r3)
mov pc, lr ret lr
ENDPROC(ll_get_coherency_cpumask) ENDPROC(ll_get_coherency_cpumask)
/* /*
...@@ -94,7 +94,7 @@ ENTRY(ll_add_cpu_to_smp_group) ...@@ -94,7 +94,7 @@ ENTRY(ll_add_cpu_to_smp_group)
strex r1, r2, [r0] strex r1, r2, [r0]
cmp r1, #0 cmp r1, #0
bne 1b bne 1b
mov pc, lr ret lr
ENDPROC(ll_add_cpu_to_smp_group) ENDPROC(ll_add_cpu_to_smp_group)
ENTRY(ll_enable_coherency) ENTRY(ll_enable_coherency)
...@@ -118,7 +118,7 @@ ENTRY(ll_enable_coherency) ...@@ -118,7 +118,7 @@ ENTRY(ll_enable_coherency)
bne 1b bne 1b
dsb dsb
mov r0, #0 mov r0, #0
mov pc, lr ret lr
ENDPROC(ll_enable_coherency) ENDPROC(ll_enable_coherency)
ENTRY(ll_disable_coherency) ENTRY(ll_disable_coherency)
...@@ -141,7 +141,7 @@ ENTRY(ll_disable_coherency) ...@@ -141,7 +141,7 @@ ENTRY(ll_disable_coherency)
cmp r1, #0 cmp r1, #0
bne 1b bne 1b
dsb dsb
mov pc, lr ret lr
ENDPROC(ll_disable_coherency) ENDPROC(ll_disable_coherency)
.align 2 .align 2
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
__CPUINIT __CPUINIT
#define CPU_RESUME_ADDR_REG 0xf10182d4 #define CPU_RESUME_ADDR_REG 0xf10182d4
...@@ -24,7 +25,7 @@ ...@@ -24,7 +25,7 @@
armada_375_smp_cpu1_enable_code_start: armada_375_smp_cpu1_enable_code_start:
ldr r0, [pc, #4] ldr r0, [pc, #4]
ldr r1, [r0] ldr r1, [r0]
mov pc, r1 ret r1
.word CPU_RESUME_ADDR_REG .word CPU_RESUME_ADDR_REG
armada_375_smp_cpu1_enable_code_end: armada_375_smp_cpu1_enable_code_end:
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
...@@ -334,7 +335,7 @@ ENDPROC(omap4_cpu_resume) ...@@ -334,7 +335,7 @@ ENDPROC(omap4_cpu_resume)
#ifndef CONFIG_OMAP4_ERRATA_I688 #ifndef CONFIG_OMAP4_ERRATA_I688
ENTRY(omap_bus_sync) ENTRY(omap_bus_sync)
mov pc, lr ret lr
ENDPROC(omap_bus_sync) ENDPROC(omap_bus_sync)
#endif #endif
......
...@@ -101,7 +101,7 @@ i_dll_wait: ...@@ -101,7 +101,7 @@ i_dll_wait:
i_dll_delay: i_dll_delay:
subs r4, r4, #0x1 subs r4, r4, #0x1
bne i_dll_delay bne i_dll_delay
mov pc, lr ret lr
/* /*
* shift up or down voltage, use R9 as input to tell level. * shift up or down voltage, use R9 as input to tell level.
...@@ -125,7 +125,7 @@ volt_delay: ...@@ -125,7 +125,7 @@ volt_delay:
ldr r7, [r3] @ get timer value ldr r7, [r3] @ get timer value
cmp r5, r7 @ time up? cmp r5, r7 @ time up?
bhi volt_delay @ not yet->branch bhi volt_delay @ not yet->branch
mov pc, lr @ back to caller. ret lr @ back to caller.
omap242x_sdi_cm_clksel2_pll: omap242x_sdi_cm_clksel2_pll:
.word OMAP2420_CM_REGADDR(PLL_MOD, CM_CLKSEL2) .word OMAP2420_CM_REGADDR(PLL_MOD, CM_CLKSEL2)
...@@ -220,7 +220,7 @@ volt_delay_c: ...@@ -220,7 +220,7 @@ volt_delay_c:
ldr r7, [r10] @ get timer value ldr r7, [r10] @ get timer value
cmp r8, r7 @ time up? cmp r8, r7 @ time up?
bhi volt_delay_c @ not yet->branch bhi volt_delay_c @ not yet->branch
mov pc, lr @ back to caller ret lr @ back to caller
omap242x_srs_cm_clksel2_pll: omap242x_srs_cm_clksel2_pll:
.word OMAP2420_CM_REGADDR(PLL_MOD, CM_CLKSEL2) .word OMAP2420_CM_REGADDR(PLL_MOD, CM_CLKSEL2)
......
...@@ -101,7 +101,7 @@ i_dll_wait: ...@@ -101,7 +101,7 @@ i_dll_wait:
i_dll_delay: i_dll_delay:
subs r4, r4, #0x1 subs r4, r4, #0x1
bne i_dll_delay bne i_dll_delay
mov pc, lr ret lr
/* /*
* shift up or down voltage, use R9 as input to tell level. * shift up or down voltage, use R9 as input to tell level.
...@@ -125,7 +125,7 @@ volt_delay: ...@@ -125,7 +125,7 @@ volt_delay:
ldr r7, [r3] @ get timer value ldr r7, [r3] @ get timer value
cmp r5, r7 @ time up? cmp r5, r7 @ time up?
bhi volt_delay @ not yet->branch bhi volt_delay @ not yet->branch
mov pc, lr @ back to caller. ret lr @ back to caller.
omap243x_sdi_cm_clksel2_pll: omap243x_sdi_cm_clksel2_pll:
.word OMAP2430_CM_REGADDR(PLL_MOD, CM_CLKSEL2) .word OMAP2430_CM_REGADDR(PLL_MOD, CM_CLKSEL2)
...@@ -220,7 +220,7 @@ volt_delay_c: ...@@ -220,7 +220,7 @@ volt_delay_c:
ldr r7, [r10] @ get timer value ldr r7, [r10] @ get timer value
cmp r8, r7 @ time up? cmp r8, r7 @ time up?
bhi volt_delay_c @ not yet->branch bhi volt_delay_c @ not yet->branch
mov pc, lr @ back to caller ret lr @ back to caller
omap243x_srs_cm_clksel2_pll: omap243x_srs_cm_clksel2_pll:
.word OMAP2430_CM_REGADDR(PLL_MOD, CM_CLKSEL2) .word OMAP2430_CM_REGADDR(PLL_MOD, CM_CLKSEL2)
......
...@@ -29,7 +29,7 @@ ENTRY(mioa701_jumpaddr) ...@@ -29,7 +29,7 @@ ENTRY(mioa701_jumpaddr)
str r1, [r0] @ Early disable resume for next boot str r1, [r0] @ Early disable resume for next boot
ldr r0, mioa701_jumpaddr @ (Murphy's Law) ldr r0, mioa701_jumpaddr @ (Murphy's Law)
ldr r0, [r0] ldr r0, [r0]
mov pc, r0 ret r0
2: 2:
ENTRY(mioa701_bootstrap_lg) ENTRY(mioa701_bootstrap_lg)
......
...@@ -29,7 +29,7 @@ ENTRY(pxa_cpu_standby) ...@@ -29,7 +29,7 @@ ENTRY(pxa_cpu_standby)
.align 5 .align 5
1: mcr p14, 0, r2, c7, c0, 0 @ put the system into Standby 1: mcr p14, 0, r2, c7, c0, 0 @ put the system into Standby
str r1, [r0] @ make sure PSSR_PH/STS are clear str r1, [r0] @ make sure PSSR_PH/STS are clear
mov pc, lr ret lr
#endif #endif
...@@ -108,7 +108,7 @@ ENTRY(pm_enter_standby_start) ...@@ -108,7 +108,7 @@ ENTRY(pm_enter_standby_start)
bic r0, r0, #0x20000000 bic r0, r0, #0x20000000
str r0, [r1, #PXA3_DMCIER] str r0, [r1, #PXA3_DMCIER]
mov pc, lr ret lr
ENTRY(pm_enter_standby_end) ENTRY(pm_enter_standby_end)
#endif #endif
...@@ -66,4 +66,4 @@ s3c2410_do_sleep: ...@@ -66,4 +66,4 @@ s3c2410_do_sleep:
streq r8, [r5] @ SDRAM power-down config streq r8, [r5] @ SDRAM power-down config
streq r9, [r6] @ CPU sleep streq r9, [r6] @ CPU sleep
1: beq 1b 1: beq 1b
mov pc, r14 ret lr
...@@ -65,4 +65,4 @@ s3c2412_sleep_enter1: ...@@ -65,4 +65,4 @@ s3c2412_sleep_enter1:
strne r9, [r3] strne r9, [r3]
bne s3c2412_sleep_enter1 bne s3c2412_sleep_enter1
mov pc, r14 ret lr
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/memory.h> #include <asm/memory.h>
ENTRY(shmobile_invalidate_start) ENTRY(shmobile_invalidate_start)
...@@ -75,7 +76,7 @@ shmobile_smp_boot_next: ...@@ -75,7 +76,7 @@ shmobile_smp_boot_next:
shmobile_smp_boot_found: shmobile_smp_boot_found:
ldr r0, [r7, r1, lsl #2] ldr r0, [r7, r1, lsl #2]
mov pc, r9 ret r9
ENDPROC(shmobile_smp_boot) ENDPROC(shmobile_smp_boot)
ENTRY(shmobile_smp_sleep) ENTRY(shmobile_smp_sleep)
......
...@@ -78,7 +78,7 @@ ENTRY(tegra20_hotplug_shutdown) ...@@ -78,7 +78,7 @@ ENTRY(tegra20_hotplug_shutdown)
/* Put this CPU down */ /* Put this CPU down */
cpu_id r0 cpu_id r0
bl tegra20_cpu_shutdown bl tegra20_cpu_shutdown
mov pc, lr @ should never get here ret lr @ should never get here
ENDPROC(tegra20_hotplug_shutdown) ENDPROC(tegra20_hotplug_shutdown)
/* /*
...@@ -96,7 +96,7 @@ ENDPROC(tegra20_hotplug_shutdown) ...@@ -96,7 +96,7 @@ ENDPROC(tegra20_hotplug_shutdown)
*/ */
ENTRY(tegra20_cpu_shutdown) ENTRY(tegra20_cpu_shutdown)
cmp r0, #0 cmp r0, #0
moveq pc, lr @ must not be called for CPU 0 reteq lr @ must not be called for CPU 0
mov32 r1, TEGRA_PMC_VIRT + PMC_SCRATCH41 mov32 r1, TEGRA_PMC_VIRT + PMC_SCRATCH41
mov r12, #CPU_RESETTABLE mov r12, #CPU_RESETTABLE
str r12, [r1] str r12, [r1]
...@@ -117,7 +117,7 @@ ENTRY(tegra20_cpu_shutdown) ...@@ -117,7 +117,7 @@ ENTRY(tegra20_cpu_shutdown)
cpu_id r3 cpu_id r3
cmp r3, r0 cmp r3, r0
beq . beq .
mov pc, lr ret lr
ENDPROC(tegra20_cpu_shutdown) ENDPROC(tegra20_cpu_shutdown)
#endif #endif
...@@ -164,7 +164,7 @@ ENTRY(tegra_pen_lock) ...@@ -164,7 +164,7 @@ ENTRY(tegra_pen_lock)
cmpeq r12, r0 @ !turn == cpu? cmpeq r12, r0 @ !turn == cpu?
beq 1b @ while !turn == cpu && flag[!cpu] == 1 beq 1b @ while !turn == cpu && flag[!cpu] == 1
mov pc, lr @ locked ret lr @ locked
ENDPROC(tegra_pen_lock) ENDPROC(tegra_pen_lock)
ENTRY(tegra_pen_unlock) ENTRY(tegra_pen_unlock)
...@@ -176,7 +176,7 @@ ENTRY(tegra_pen_unlock) ...@@ -176,7 +176,7 @@ ENTRY(tegra_pen_unlock)
addne r2, r3, #PMC_SCRATCH39 addne r2, r3, #PMC_SCRATCH39
mov r12, #0 mov r12, #0
str r12, [r2] str r12, [r2]
mov pc, lr ret lr
ENDPROC(tegra_pen_unlock) ENDPROC(tegra_pen_unlock)
/* /*
...@@ -189,7 +189,7 @@ ENTRY(tegra20_cpu_clear_resettable) ...@@ -189,7 +189,7 @@ ENTRY(tegra20_cpu_clear_resettable)
mov32 r1, TEGRA_PMC_VIRT + PMC_SCRATCH41 mov32 r1, TEGRA_PMC_VIRT + PMC_SCRATCH41
mov r12, #CPU_NOT_RESETTABLE mov r12, #CPU_NOT_RESETTABLE
str r12, [r1] str r12, [r1]
mov pc, lr ret lr
ENDPROC(tegra20_cpu_clear_resettable) ENDPROC(tegra20_cpu_clear_resettable)
/* /*
...@@ -202,7 +202,7 @@ ENTRY(tegra20_cpu_set_resettable_soon) ...@@ -202,7 +202,7 @@ ENTRY(tegra20_cpu_set_resettable_soon)
mov32 r1, TEGRA_PMC_VIRT + PMC_SCRATCH41 mov32 r1, TEGRA_PMC_VIRT + PMC_SCRATCH41
mov r12, #CPU_RESETTABLE_SOON mov r12, #CPU_RESETTABLE_SOON
str r12, [r1] str r12, [r1]
mov pc, lr ret lr
ENDPROC(tegra20_cpu_set_resettable_soon) ENDPROC(tegra20_cpu_set_resettable_soon)
/* /*
...@@ -217,7 +217,7 @@ ENTRY(tegra20_cpu_is_resettable_soon) ...@@ -217,7 +217,7 @@ ENTRY(tegra20_cpu_is_resettable_soon)
cmp r12, #CPU_RESETTABLE_SOON cmp r12, #CPU_RESETTABLE_SOON
moveq r0, #1 moveq r0, #1
movne r0, #0 movne r0, #0
mov pc, lr ret lr
ENDPROC(tegra20_cpu_is_resettable_soon) ENDPROC(tegra20_cpu_is_resettable_soon)
/* /*
...@@ -239,7 +239,7 @@ ENTRY(tegra20_sleep_core_finish) ...@@ -239,7 +239,7 @@ ENTRY(tegra20_sleep_core_finish)
mov32 r1, TEGRA_IRAM_LPx_RESUME_AREA mov32 r1, TEGRA_IRAM_LPx_RESUME_AREA
add r0, r0, r1 add r0, r0, r1
mov pc, r3 ret r3
ENDPROC(tegra20_sleep_core_finish) ENDPROC(tegra20_sleep_core_finish)
/* /*
...@@ -402,7 +402,7 @@ exit_selfrefresh_loop: ...@@ -402,7 +402,7 @@ exit_selfrefresh_loop:
mov32 r0, TEGRA_PMC_BASE mov32 r0, TEGRA_PMC_BASE
ldr r0, [r0, #PMC_SCRATCH41] ldr r0, [r0, #PMC_SCRATCH41]
mov pc, r0 @ jump to tegra_resume ret r0 @ jump to tegra_resume
ENDPROC(tegra20_lp1_reset) ENDPROC(tegra20_lp1_reset)
/* /*
...@@ -455,7 +455,7 @@ tegra20_switch_cpu_to_clk32k: ...@@ -455,7 +455,7 @@ tegra20_switch_cpu_to_clk32k:
mov r0, #0 /* brust policy = 32KHz */ mov r0, #0 /* brust policy = 32KHz */
str r0, [r5, #CLK_RESET_SCLK_BURST] str r0, [r5, #CLK_RESET_SCLK_BURST]
mov pc, lr ret lr
/* /*
* tegra20_enter_sleep * tegra20_enter_sleep
...@@ -535,7 +535,7 @@ padsave_done: ...@@ -535,7 +535,7 @@ padsave_done:
adr r2, tegra20_sclk_save adr r2, tegra20_sclk_save
str r0, [r2] str r0, [r2]
dsb dsb
mov pc, lr ret lr
tegra20_sdram_pad_address: tegra20_sdram_pad_address:
.word TEGRA_APB_MISC_BASE + APB_MISC_XM2CFGCPADCTRL .word TEGRA_APB_MISC_BASE + APB_MISC_XM2CFGCPADCTRL
......
...@@ -142,7 +142,7 @@ ENTRY(tegra30_hotplug_shutdown) ...@@ -142,7 +142,7 @@ ENTRY(tegra30_hotplug_shutdown)
/* Powergate this CPU */ /* Powergate this CPU */
mov r0, #TEGRA30_POWER_HOTPLUG_SHUTDOWN mov r0, #TEGRA30_POWER_HOTPLUG_SHUTDOWN
bl tegra30_cpu_shutdown bl tegra30_cpu_shutdown
mov pc, lr @ should never get here ret lr @ should never get here
ENDPROC(tegra30_hotplug_shutdown) ENDPROC(tegra30_hotplug_shutdown)
/* /*
...@@ -161,7 +161,7 @@ ENTRY(tegra30_cpu_shutdown) ...@@ -161,7 +161,7 @@ ENTRY(tegra30_cpu_shutdown)
bne _no_cpu0_chk @ It's not Tegra30 bne _no_cpu0_chk @ It's not Tegra30
cmp r3, #0 cmp r3, #0
moveq pc, lr @ Must never be called for CPU 0 reteq lr @ Must never be called for CPU 0
_no_cpu0_chk: _no_cpu0_chk:
ldr r12, =TEGRA_FLOW_CTRL_VIRT ldr r12, =TEGRA_FLOW_CTRL_VIRT
...@@ -266,7 +266,7 @@ ENTRY(tegra30_sleep_core_finish) ...@@ -266,7 +266,7 @@ ENTRY(tegra30_sleep_core_finish)
mov32 r1, TEGRA_IRAM_LPx_RESUME_AREA mov32 r1, TEGRA_IRAM_LPx_RESUME_AREA
add r0, r0, r1 add r0, r0, r1
mov pc, r3 ret r3
ENDPROC(tegra30_sleep_core_finish) ENDPROC(tegra30_sleep_core_finish)
/* /*
...@@ -285,7 +285,7 @@ ENTRY(tegra30_sleep_cpu_secondary_finish) ...@@ -285,7 +285,7 @@ ENTRY(tegra30_sleep_cpu_secondary_finish)
mov r0, #0 @ power mode flags (!hotplug) mov r0, #0 @ power mode flags (!hotplug)
bl tegra30_cpu_shutdown bl tegra30_cpu_shutdown
mov r0, #1 @ never return here mov r0, #1 @ never return here
mov pc, r7 ret r7
ENDPROC(tegra30_sleep_cpu_secondary_finish) ENDPROC(tegra30_sleep_cpu_secondary_finish)
/* /*
...@@ -529,7 +529,7 @@ __no_dual_emc_chanl: ...@@ -529,7 +529,7 @@ __no_dual_emc_chanl:
mov32 r0, TEGRA_PMC_BASE mov32 r0, TEGRA_PMC_BASE
ldr r0, [r0, #PMC_SCRATCH41] ldr r0, [r0, #PMC_SCRATCH41]
mov pc, r0 @ jump to tegra_resume ret r0 @ jump to tegra_resume
ENDPROC(tegra30_lp1_reset) ENDPROC(tegra30_lp1_reset)
.align L1_CACHE_SHIFT .align L1_CACHE_SHIFT
...@@ -659,7 +659,7 @@ _no_pll_in_iddq: ...@@ -659,7 +659,7 @@ _no_pll_in_iddq:
mov r0, #0 /* brust policy = 32KHz */ mov r0, #0 /* brust policy = 32KHz */
str r0, [r5, #CLK_RESET_SCLK_BURST] str r0, [r5, #CLK_RESET_SCLK_BURST]
mov pc, lr ret lr
/* /*
* tegra30_enter_sleep * tegra30_enter_sleep
...@@ -819,7 +819,7 @@ pmc_io_dpd_skip: ...@@ -819,7 +819,7 @@ pmc_io_dpd_skip:
dsb dsb
mov pc, lr ret lr
.ltorg .ltorg
/* dummy symbol for end of IRAM */ /* dummy symbol for end of IRAM */
......
...@@ -87,7 +87,7 @@ ENTRY(tegra_init_l2_for_a15) ...@@ -87,7 +87,7 @@ ENTRY(tegra_init_l2_for_a15)
mcrne p15, 0x1, r0, c9, c0, 2 mcrne p15, 0x1, r0, c9, c0, 2
_exit_init_l2_a15: _exit_init_l2_a15:
mov pc, lr ret lr
ENDPROC(tegra_init_l2_for_a15) ENDPROC(tegra_init_l2_for_a15)
/* /*
...@@ -111,7 +111,7 @@ ENTRY(tegra_sleep_cpu_finish) ...@@ -111,7 +111,7 @@ ENTRY(tegra_sleep_cpu_finish)
add r3, r3, r0 add r3, r3, r0
mov r0, r1 mov r0, r1
mov pc, r3 ret r3
ENDPROC(tegra_sleep_cpu_finish) ENDPROC(tegra_sleep_cpu_finish)
/* /*
...@@ -139,7 +139,7 @@ ENTRY(tegra_shut_off_mmu) ...@@ -139,7 +139,7 @@ ENTRY(tegra_shut_off_mmu)
moveq r3, #0 moveq r3, #0
streq r3, [r2, #L2X0_CTRL] streq r3, [r2, #L2X0_CTRL]
#endif #endif
mov pc, r0 ret r0
ENDPROC(tegra_shut_off_mmu) ENDPROC(tegra_shut_off_mmu)
.popsection .popsection
...@@ -156,6 +156,6 @@ ENTRY(tegra_switch_cpu_to_pllp) ...@@ -156,6 +156,6 @@ ENTRY(tegra_switch_cpu_to_pllp)
str r0, [r5, #CLK_RESET_CCLK_BURST] str r0, [r5, #CLK_RESET_CCLK_BURST]
mov r0, #0 mov r0, #0
str r0, [r5, #CLK_RESET_CCLK_DIVIDER] str r0, [r5, #CLK_RESET_CCLK_DIVIDER]
mov pc, lr ret lr
ENDPROC(tegra_switch_cpu_to_pllp) ENDPROC(tegra_switch_cpu_to_pllp)
#endif #endif
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/page.h> #include <asm/page.h>
...@@ -45,7 +46,7 @@ ...@@ -45,7 +46,7 @@
ENTRY(fa_flush_icache_all) ENTRY(fa_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(fa_flush_icache_all) ENDPROC(fa_flush_icache_all)
/* /*
...@@ -71,7 +72,7 @@ __flush_whole_cache: ...@@ -71,7 +72,7 @@ __flush_whole_cache:
mcrne p15, 0, ip, c7, c5, 6 @ invalidate BTB mcrne p15, 0, ip, c7, c5, 6 @ invalidate BTB
mcrne p15, 0, ip, c7, c10, 4 @ drain write buffer mcrne p15, 0, ip, c7, c10, 4 @ drain write buffer
mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -99,7 +100,7 @@ ENTRY(fa_flush_user_cache_range) ...@@ -99,7 +100,7 @@ ENTRY(fa_flush_user_cache_range)
mcrne p15, 0, ip, c7, c5, 6 @ invalidate BTB mcrne p15, 0, ip, c7, c5, 6 @ invalidate BTB
mcrne p15, 0, ip, c7, c10, 4 @ data write barrier mcrne p15, 0, ip, c7, c10, 4 @ data write barrier
mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -135,7 +136,7 @@ ENTRY(fa_coherent_user_range) ...@@ -135,7 +136,7 @@ ENTRY(fa_coherent_user_range)
mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mcr p15, 0, r0, c7, c5, 4 @ prefetch flush mcr p15, 0, r0, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -155,7 +156,7 @@ ENTRY(fa_flush_kern_dcache_area) ...@@ -155,7 +156,7 @@ ENTRY(fa_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -181,7 +182,7 @@ fa_dma_inv_range: ...@@ -181,7 +182,7 @@ fa_dma_inv_range:
blo 1b blo 1b
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -199,7 +200,7 @@ fa_dma_clean_range: ...@@ -199,7 +200,7 @@ fa_dma_clean_range:
blo 1b blo 1b
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_flush_range(start,end) * dma_flush_range(start,end)
...@@ -214,7 +215,7 @@ ENTRY(fa_dma_flush_range) ...@@ -214,7 +215,7 @@ ENTRY(fa_dma_flush_range)
blo 1b blo 1b
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -237,7 +238,7 @@ ENDPROC(fa_dma_map_area) ...@@ -237,7 +238,7 @@ ENDPROC(fa_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(fa_dma_unmap_area) ENTRY(fa_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(fa_dma_unmap_area) ENDPROC(fa_dma_unmap_area)
.globl fa_flush_kern_cache_louis .globl fa_flush_kern_cache_louis
......
...@@ -5,11 +5,12 @@ ...@@ -5,11 +5,12 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include "proc-macros.S" #include "proc-macros.S"
ENTRY(nop_flush_icache_all) ENTRY(nop_flush_icache_all)
mov pc, lr ret lr
ENDPROC(nop_flush_icache_all) ENDPROC(nop_flush_icache_all)
.globl nop_flush_kern_cache_all .globl nop_flush_kern_cache_all
...@@ -29,7 +30,7 @@ ENDPROC(nop_flush_icache_all) ...@@ -29,7 +30,7 @@ ENDPROC(nop_flush_icache_all)
ENTRY(nop_coherent_user_range) ENTRY(nop_coherent_user_range)
mov r0, 0 mov r0, 0
mov pc, lr ret lr
ENDPROC(nop_coherent_user_range) ENDPROC(nop_coherent_user_range)
.globl nop_flush_kern_dcache_area .globl nop_flush_kern_dcache_area
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/page.h> #include <asm/page.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -18,7 +19,7 @@ ...@@ -18,7 +19,7 @@
* Unconditionally clean and invalidate the entire icache. * Unconditionally clean and invalidate the entire icache.
*/ */
ENTRY(v4_flush_icache_all) ENTRY(v4_flush_icache_all)
mov pc, lr ret lr
ENDPROC(v4_flush_icache_all) ENDPROC(v4_flush_icache_all)
/* /*
...@@ -40,7 +41,7 @@ ENTRY(v4_flush_kern_cache_all) ...@@ -40,7 +41,7 @@ ENTRY(v4_flush_kern_cache_all)
#ifdef CONFIG_CPU_CP15 #ifdef CONFIG_CPU_CP15
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c7, 0 @ flush ID cache mcr p15, 0, r0, c7, c7, 0 @ flush ID cache
mov pc, lr ret lr
#else #else
/* FALLTHROUGH */ /* FALLTHROUGH */
#endif #endif
...@@ -59,7 +60,7 @@ ENTRY(v4_flush_user_cache_range) ...@@ -59,7 +60,7 @@ ENTRY(v4_flush_user_cache_range)
#ifdef CONFIG_CPU_CP15 #ifdef CONFIG_CPU_CP15
mov ip, #0 mov ip, #0
mcr p15, 0, ip, c7, c7, 0 @ flush ID cache mcr p15, 0, ip, c7, c7, 0 @ flush ID cache
mov pc, lr ret lr
#else #else
/* FALLTHROUGH */ /* FALLTHROUGH */
#endif #endif
...@@ -89,7 +90,7 @@ ENTRY(v4_coherent_kern_range) ...@@ -89,7 +90,7 @@ ENTRY(v4_coherent_kern_range)
*/ */
ENTRY(v4_coherent_user_range) ENTRY(v4_coherent_user_range)
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -116,7 +117,7 @@ ENTRY(v4_dma_flush_range) ...@@ -116,7 +117,7 @@ ENTRY(v4_dma_flush_range)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c7, 0 @ flush ID cache mcr p15, 0, r0, c7, c7, 0 @ flush ID cache
#endif #endif
mov pc, lr ret lr
/* /*
* dma_unmap_area(start, size, dir) * dma_unmap_area(start, size, dir)
...@@ -136,7 +137,7 @@ ENTRY(v4_dma_unmap_area) ...@@ -136,7 +137,7 @@ ENTRY(v4_dma_unmap_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(v4_dma_map_area) ENTRY(v4_dma_map_area)
mov pc, lr ret lr
ENDPROC(v4_dma_unmap_area) ENDPROC(v4_dma_unmap_area)
ENDPROC(v4_dma_map_area) ENDPROC(v4_dma_map_area)
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/page.h> #include <asm/page.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -58,7 +59,7 @@ flush_base: ...@@ -58,7 +59,7 @@ flush_base:
ENTRY(v4wb_flush_icache_all) ENTRY(v4wb_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(v4wb_flush_icache_all) ENDPROC(v4wb_flush_icache_all)
/* /*
...@@ -94,7 +95,7 @@ __flush_whole_cache: ...@@ -94,7 +95,7 @@ __flush_whole_cache:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain write buffer mcr p15, 0, ip, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -122,7 +123,7 @@ ENTRY(v4wb_flush_user_cache_range) ...@@ -122,7 +123,7 @@ ENTRY(v4wb_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain write buffer mcrne p15, 0, ip, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -170,7 +171,7 @@ ENTRY(v4wb_coherent_user_range) ...@@ -170,7 +171,7 @@ ENTRY(v4wb_coherent_user_range)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
...@@ -195,7 +196,7 @@ v4wb_dma_inv_range: ...@@ -195,7 +196,7 @@ v4wb_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -212,7 +213,7 @@ v4wb_dma_clean_range: ...@@ -212,7 +213,7 @@ v4wb_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -248,7 +249,7 @@ ENDPROC(v4wb_dma_map_area) ...@@ -248,7 +249,7 @@ ENDPROC(v4wb_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(v4wb_dma_unmap_area) ENTRY(v4wb_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(v4wb_dma_unmap_area) ENDPROC(v4wb_dma_unmap_area)
.globl v4wb_flush_kern_cache_louis .globl v4wb_flush_kern_cache_louis
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/page.h> #include <asm/page.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -48,7 +49,7 @@ ...@@ -48,7 +49,7 @@
ENTRY(v4wt_flush_icache_all) ENTRY(v4wt_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(v4wt_flush_icache_all) ENDPROC(v4wt_flush_icache_all)
/* /*
...@@ -71,7 +72,7 @@ __flush_whole_cache: ...@@ -71,7 +72,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcr p15, 0, ip, c7, c6, 0 @ invalidate D cache mcr p15, 0, ip, c7, c6, 0 @ invalidate D cache
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -94,7 +95,7 @@ ENTRY(v4wt_flush_user_cache_range) ...@@ -94,7 +95,7 @@ ENTRY(v4wt_flush_user_cache_range)
add r0, r0, #CACHE_DLINESIZE add r0, r0, #CACHE_DLINESIZE
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -126,7 +127,7 @@ ENTRY(v4wt_coherent_user_range) ...@@ -126,7 +127,7 @@ ENTRY(v4wt_coherent_user_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -160,7 +161,7 @@ v4wt_dma_inv_range: ...@@ -160,7 +161,7 @@ v4wt_dma_inv_range:
add r0, r0, #CACHE_DLINESIZE add r0, r0, #CACHE_DLINESIZE
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -192,7 +193,7 @@ ENTRY(v4wt_dma_unmap_area) ...@@ -192,7 +193,7 @@ ENTRY(v4wt_dma_unmap_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(v4wt_dma_map_area) ENTRY(v4wt_dma_map_area)
mov pc, lr ret lr
ENDPROC(v4wt_dma_unmap_area) ENDPROC(v4wt_dma_unmap_area)
ENDPROC(v4wt_dma_map_area) ENDPROC(v4wt_dma_map_area)
......
...@@ -51,7 +51,7 @@ ENTRY(v6_flush_icache_all) ...@@ -51,7 +51,7 @@ ENTRY(v6_flush_icache_all)
#else #else
mcr p15, 0, r0, c7, c5, 0 @ invalidate I-cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I-cache
#endif #endif
mov pc, lr ret lr
ENDPROC(v6_flush_icache_all) ENDPROC(v6_flush_icache_all)
/* /*
...@@ -73,7 +73,7 @@ ENTRY(v6_flush_kern_cache_all) ...@@ -73,7 +73,7 @@ ENTRY(v6_flush_kern_cache_all)
#else #else
mcr p15, 0, r0, c7, c15, 0 @ Cache clean+invalidate mcr p15, 0, r0, c7, c15, 0 @ Cache clean+invalidate
#endif #endif
mov pc, lr ret lr
/* /*
* v6_flush_cache_all() * v6_flush_cache_all()
...@@ -98,7 +98,7 @@ ENTRY(v6_flush_user_cache_all) ...@@ -98,7 +98,7 @@ ENTRY(v6_flush_user_cache_all)
* - we have a VIPT cache. * - we have a VIPT cache.
*/ */
ENTRY(v6_flush_user_cache_range) ENTRY(v6_flush_user_cache_range)
mov pc, lr ret lr
/* /*
* v6_coherent_kern_range(start,end) * v6_coherent_kern_range(start,end)
...@@ -150,7 +150,7 @@ ENTRY(v6_coherent_user_range) ...@@ -150,7 +150,7 @@ ENTRY(v6_coherent_user_range)
#else #else
mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB
#endif #endif
mov pc, lr ret lr
/* /*
* Fault handling for the cache operation above. If the virtual address in r0 * Fault handling for the cache operation above. If the virtual address in r0
...@@ -158,7 +158,7 @@ ENTRY(v6_coherent_user_range) ...@@ -158,7 +158,7 @@ ENTRY(v6_coherent_user_range)
*/ */
9001: 9001:
mov r0, #-EFAULT mov r0, #-EFAULT
mov pc, lr ret lr
UNWIND(.fnend ) UNWIND(.fnend )
ENDPROC(v6_coherent_user_range) ENDPROC(v6_coherent_user_range)
ENDPROC(v6_coherent_kern_range) ENDPROC(v6_coherent_kern_range)
...@@ -188,7 +188,7 @@ ENTRY(v6_flush_kern_dcache_area) ...@@ -188,7 +188,7 @@ ENTRY(v6_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 mcr p15, 0, r0, c7, c10, 4
#endif #endif
mov pc, lr ret lr
/* /*
...@@ -239,7 +239,7 @@ v6_dma_inv_range: ...@@ -239,7 +239,7 @@ v6_dma_inv_range:
blo 1b blo 1b
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* v6_dma_clean_range(start,end) * v6_dma_clean_range(start,end)
...@@ -262,7 +262,7 @@ v6_dma_clean_range: ...@@ -262,7 +262,7 @@ v6_dma_clean_range:
blo 1b blo 1b
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* v6_dma_flush_range(start,end) * v6_dma_flush_range(start,end)
...@@ -290,7 +290,7 @@ ENTRY(v6_dma_flush_range) ...@@ -290,7 +290,7 @@ ENTRY(v6_dma_flush_range)
blo 1b blo 1b
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -323,7 +323,7 @@ ENTRY(v6_dma_unmap_area) ...@@ -323,7 +323,7 @@ ENTRY(v6_dma_unmap_area)
teq r2, #DMA_TO_DEVICE teq r2, #DMA_TO_DEVICE
bne v6_dma_inv_range bne v6_dma_inv_range
#endif #endif
mov pc, lr ret lr
ENDPROC(v6_dma_unmap_area) ENDPROC(v6_dma_unmap_area)
.globl v6_flush_kern_cache_louis .globl v6_flush_kern_cache_louis
......
...@@ -61,7 +61,7 @@ ENTRY(v7_invalidate_l1) ...@@ -61,7 +61,7 @@ ENTRY(v7_invalidate_l1)
bgt 1b bgt 1b
dsb st dsb st
isb isb
mov pc, lr ret lr
ENDPROC(v7_invalidate_l1) ENDPROC(v7_invalidate_l1)
/* /*
...@@ -76,7 +76,7 @@ ENTRY(v7_flush_icache_all) ...@@ -76,7 +76,7 @@ ENTRY(v7_flush_icache_all)
mov r0, #0 mov r0, #0
ALT_SMP(mcr p15, 0, r0, c7, c1, 0) @ invalidate I-cache inner shareable ALT_SMP(mcr p15, 0, r0, c7, c1, 0) @ invalidate I-cache inner shareable
ALT_UP(mcr p15, 0, r0, c7, c5, 0) @ I+BTB cache invalidate ALT_UP(mcr p15, 0, r0, c7, c5, 0) @ I+BTB cache invalidate
mov pc, lr ret lr
ENDPROC(v7_flush_icache_all) ENDPROC(v7_flush_icache_all)
/* /*
...@@ -94,7 +94,7 @@ ENTRY(v7_flush_dcache_louis) ...@@ -94,7 +94,7 @@ ENTRY(v7_flush_dcache_louis)
ALT_UP(ands r3, r0, #(7 << 27)) @ extract LoUU from clidr ALT_UP(ands r3, r0, #(7 << 27)) @ extract LoUU from clidr
#ifdef CONFIG_ARM_ERRATA_643719 #ifdef CONFIG_ARM_ERRATA_643719
ALT_SMP(mrceq p15, 0, r2, c0, c0, 0) @ read main ID register ALT_SMP(mrceq p15, 0, r2, c0, c0, 0) @ read main ID register
ALT_UP(moveq pc, lr) @ LoUU is zero, so nothing to do ALT_UP(reteq lr) @ LoUU is zero, so nothing to do
ldreq r1, =0x410fc090 @ ID of ARM Cortex A9 r0p? ldreq r1, =0x410fc090 @ ID of ARM Cortex A9 r0p?
biceq r2, r2, #0x0000000f @ clear minor revision number biceq r2, r2, #0x0000000f @ clear minor revision number
teqeq r2, r1 @ test for errata affected core and if so... teqeq r2, r1 @ test for errata affected core and if so...
...@@ -102,7 +102,7 @@ ENTRY(v7_flush_dcache_louis) ...@@ -102,7 +102,7 @@ ENTRY(v7_flush_dcache_louis)
#endif #endif
ALT_SMP(mov r3, r3, lsr #20) @ r3 = LoUIS * 2 ALT_SMP(mov r3, r3, lsr #20) @ r3 = LoUIS * 2
ALT_UP(mov r3, r3, lsr #26) @ r3 = LoUU * 2 ALT_UP(mov r3, r3, lsr #26) @ r3 = LoUU * 2
moveq pc, lr @ return if level == 0 reteq lr @ return if level == 0
mov r10, #0 @ r10 (starting level) = 0 mov r10, #0 @ r10 (starting level) = 0
b flush_levels @ start flushing cache levels b flush_levels @ start flushing cache levels
ENDPROC(v7_flush_dcache_louis) ENDPROC(v7_flush_dcache_louis)
...@@ -168,7 +168,7 @@ finished: ...@@ -168,7 +168,7 @@ finished:
mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
dsb st dsb st
isb isb
mov pc, lr ret lr
ENDPROC(v7_flush_dcache_all) ENDPROC(v7_flush_dcache_all)
/* /*
...@@ -191,7 +191,7 @@ ENTRY(v7_flush_kern_cache_all) ...@@ -191,7 +191,7 @@ ENTRY(v7_flush_kern_cache_all)
ALT_UP(mcr p15, 0, r0, c7, c5, 0) @ I+BTB cache invalidate ALT_UP(mcr p15, 0, r0, c7, c5, 0) @ I+BTB cache invalidate
ARM( ldmfd sp!, {r4-r5, r7, r9-r11, lr} ) ARM( ldmfd sp!, {r4-r5, r7, r9-r11, lr} )
THUMB( ldmfd sp!, {r4-r7, r9-r11, lr} ) THUMB( ldmfd sp!, {r4-r7, r9-r11, lr} )
mov pc, lr ret lr
ENDPROC(v7_flush_kern_cache_all) ENDPROC(v7_flush_kern_cache_all)
/* /*
...@@ -209,7 +209,7 @@ ENTRY(v7_flush_kern_cache_louis) ...@@ -209,7 +209,7 @@ ENTRY(v7_flush_kern_cache_louis)
ALT_UP(mcr p15, 0, r0, c7, c5, 0) @ I+BTB cache invalidate ALT_UP(mcr p15, 0, r0, c7, c5, 0) @ I+BTB cache invalidate
ARM( ldmfd sp!, {r4-r5, r7, r9-r11, lr} ) ARM( ldmfd sp!, {r4-r5, r7, r9-r11, lr} )
THUMB( ldmfd sp!, {r4-r7, r9-r11, lr} ) THUMB( ldmfd sp!, {r4-r7, r9-r11, lr} )
mov pc, lr ret lr
ENDPROC(v7_flush_kern_cache_louis) ENDPROC(v7_flush_kern_cache_louis)
/* /*
...@@ -235,7 +235,7 @@ ENTRY(v7_flush_user_cache_all) ...@@ -235,7 +235,7 @@ ENTRY(v7_flush_user_cache_all)
* - we have a VIPT cache. * - we have a VIPT cache.
*/ */
ENTRY(v7_flush_user_cache_range) ENTRY(v7_flush_user_cache_range)
mov pc, lr ret lr
ENDPROC(v7_flush_user_cache_all) ENDPROC(v7_flush_user_cache_all)
ENDPROC(v7_flush_user_cache_range) ENDPROC(v7_flush_user_cache_range)
...@@ -296,7 +296,7 @@ ENTRY(v7_coherent_user_range) ...@@ -296,7 +296,7 @@ ENTRY(v7_coherent_user_range)
ALT_UP(mcr p15, 0, r0, c7, c5, 6) @ invalidate BTB ALT_UP(mcr p15, 0, r0, c7, c5, 6) @ invalidate BTB
dsb ishst dsb ishst
isb isb
mov pc, lr ret lr
/* /*
* Fault handling for the cache operation above. If the virtual address in r0 * Fault handling for the cache operation above. If the virtual address in r0
...@@ -307,7 +307,7 @@ ENTRY(v7_coherent_user_range) ...@@ -307,7 +307,7 @@ ENTRY(v7_coherent_user_range)
dsb dsb
#endif #endif
mov r0, #-EFAULT mov r0, #-EFAULT
mov pc, lr ret lr
UNWIND(.fnend ) UNWIND(.fnend )
ENDPROC(v7_coherent_kern_range) ENDPROC(v7_coherent_kern_range)
ENDPROC(v7_coherent_user_range) ENDPROC(v7_coherent_user_range)
...@@ -336,7 +336,7 @@ ENTRY(v7_flush_kern_dcache_area) ...@@ -336,7 +336,7 @@ ENTRY(v7_flush_kern_dcache_area)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
dsb st dsb st
mov pc, lr ret lr
ENDPROC(v7_flush_kern_dcache_area) ENDPROC(v7_flush_kern_dcache_area)
/* /*
...@@ -369,7 +369,7 @@ v7_dma_inv_range: ...@@ -369,7 +369,7 @@ v7_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
dsb st dsb st
mov pc, lr ret lr
ENDPROC(v7_dma_inv_range) ENDPROC(v7_dma_inv_range)
/* /*
...@@ -391,7 +391,7 @@ v7_dma_clean_range: ...@@ -391,7 +391,7 @@ v7_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
dsb st dsb st
mov pc, lr ret lr
ENDPROC(v7_dma_clean_range) ENDPROC(v7_dma_clean_range)
/* /*
...@@ -413,7 +413,7 @@ ENTRY(v7_dma_flush_range) ...@@ -413,7 +413,7 @@ ENTRY(v7_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
dsb st dsb st
mov pc, lr ret lr
ENDPROC(v7_dma_flush_range) ENDPROC(v7_dma_flush_range)
/* /*
...@@ -439,7 +439,7 @@ ENTRY(v7_dma_unmap_area) ...@@ -439,7 +439,7 @@ ENTRY(v7_dma_unmap_area)
add r1, r1, r0 add r1, r1, r0
teq r2, #DMA_TO_DEVICE teq r2, #DMA_TO_DEVICE
bne v7_dma_inv_range bne v7_dma_inv_range
mov pc, lr ret lr
ENDPROC(v7_dma_unmap_area) ENDPROC(v7_dma_unmap_area)
__INITDATA __INITDATA
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* This code can only be used to if you are running in the secure world. * This code can only be used to if you are running in the secure world.
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
.text .text
...@@ -27,7 +28,7 @@ ENTRY(l2c310_early_resume) ...@@ -27,7 +28,7 @@ ENTRY(l2c310_early_resume)
@ Check that the address has been initialised @ Check that the address has been initialised
teq r1, #0 teq r1, #0
moveq pc, lr reteq lr
@ The prefetch and power control registers are revision dependent @ The prefetch and power control registers are revision dependent
@ and can be written whether or not the L2 cache is enabled @ and can be written whether or not the L2 cache is enabled
...@@ -41,7 +42,7 @@ ENTRY(l2c310_early_resume) ...@@ -41,7 +42,7 @@ ENTRY(l2c310_early_resume)
@ Don't setup the L2 cache if it is already enabled @ Don't setup the L2 cache if it is already enabled
ldr r0, [r1, #L2X0_CTRL] ldr r0, [r1, #L2X0_CTRL]
tst r0, #L2X0_CTRL_EN tst r0, #L2X0_CTRL_EN
movne pc, lr retne lr
str r3, [r1, #L310_TAG_LATENCY_CTRL] str r3, [r1, #L310_TAG_LATENCY_CTRL]
str r4, [r1, #L310_DATA_LATENCY_CTRL] str r4, [r1, #L310_DATA_LATENCY_CTRL]
...@@ -51,7 +52,7 @@ ENTRY(l2c310_early_resume) ...@@ -51,7 +52,7 @@ ENTRY(l2c310_early_resume)
str r2, [r1, #L2X0_AUX_CTRL] str r2, [r1, #L2X0_AUX_CTRL]
mov r9, #L2X0_CTRL_EN mov r9, #L2X0_CTRL_EN
str r9, [r1, #L2X0_CTRL] str r9, [r1, #L2X0_CTRL]
mov pc, lr ret lr
ENDPROC(l2c310_early_resume) ENDPROC(l2c310_early_resume)
.align .align
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
* cpu_arm1020_proc_init() * cpu_arm1020_proc_init()
*/ */
ENTRY(cpu_arm1020_proc_init) ENTRY(cpu_arm1020_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm1020_proc_fin() * cpu_arm1020_proc_fin()
...@@ -83,7 +83,7 @@ ENTRY(cpu_arm1020_proc_fin) ...@@ -83,7 +83,7 @@ ENTRY(cpu_arm1020_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm1020_reset(loc) * cpu_arm1020_reset(loc)
...@@ -107,7 +107,7 @@ ENTRY(cpu_arm1020_reset) ...@@ -107,7 +107,7 @@ ENTRY(cpu_arm1020_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm1020_reset) ENDPROC(cpu_arm1020_reset)
.popsection .popsection
...@@ -117,7 +117,7 @@ ENDPROC(cpu_arm1020_reset) ...@@ -117,7 +117,7 @@ ENDPROC(cpu_arm1020_reset)
.align 5 .align 5
ENTRY(cpu_arm1020_do_idle) ENTRY(cpu_arm1020_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -133,7 +133,7 @@ ENTRY(arm1020_flush_icache_all) ...@@ -133,7 +133,7 @@ ENTRY(arm1020_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
#endif #endif
mov pc, lr ret lr
ENDPROC(arm1020_flush_icache_all) ENDPROC(arm1020_flush_icache_all)
/* /*
...@@ -169,7 +169,7 @@ __flush_whole_cache: ...@@ -169,7 +169,7 @@ __flush_whole_cache:
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -200,7 +200,7 @@ ENTRY(arm1020_flush_user_cache_range) ...@@ -200,7 +200,7 @@ ENTRY(arm1020_flush_user_cache_range)
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -242,7 +242,7 @@ ENTRY(arm1020_coherent_user_range) ...@@ -242,7 +242,7 @@ ENTRY(arm1020_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -264,7 +264,7 @@ ENTRY(arm1020_flush_kern_dcache_area) ...@@ -264,7 +264,7 @@ ENTRY(arm1020_flush_kern_dcache_area)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -297,7 +297,7 @@ arm1020_dma_inv_range: ...@@ -297,7 +297,7 @@ arm1020_dma_inv_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -320,7 +320,7 @@ arm1020_dma_clean_range: ...@@ -320,7 +320,7 @@ arm1020_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -342,7 +342,7 @@ ENTRY(arm1020_dma_flush_range) ...@@ -342,7 +342,7 @@ ENTRY(arm1020_dma_flush_range)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -365,7 +365,7 @@ ENDPROC(arm1020_dma_map_area) ...@@ -365,7 +365,7 @@ ENDPROC(arm1020_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm1020_dma_unmap_area) ENTRY(arm1020_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm1020_dma_unmap_area) ENDPROC(arm1020_dma_unmap_area)
.globl arm1020_flush_kern_cache_louis .globl arm1020_flush_kern_cache_louis
...@@ -384,7 +384,7 @@ ENTRY(cpu_arm1020_dcache_clean_area) ...@@ -384,7 +384,7 @@ ENTRY(cpu_arm1020_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
#endif #endif
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -423,7 +423,7 @@ ENTRY(cpu_arm1020_switch_mm) ...@@ -423,7 +423,7 @@ ENTRY(cpu_arm1020_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
/* /*
* cpu_arm1020_set_pte(ptep, pte) * cpu_arm1020_set_pte(ptep, pte)
...@@ -441,7 +441,7 @@ ENTRY(cpu_arm1020_set_pte_ext) ...@@ -441,7 +441,7 @@ ENTRY(cpu_arm1020_set_pte_ext)
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
.type __arm1020_setup, #function .type __arm1020_setup, #function
__arm1020_setup: __arm1020_setup:
...@@ -460,7 +460,7 @@ __arm1020_setup: ...@@ -460,7 +460,7 @@ __arm1020_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x4000 @ .R.. .... .... .... orr r0, r0, #0x4000 @ .R.. .... .... ....
#endif #endif
mov pc, lr ret lr
.size __arm1020_setup, . - __arm1020_setup .size __arm1020_setup, . - __arm1020_setup
/* /*
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
* cpu_arm1020e_proc_init() * cpu_arm1020e_proc_init()
*/ */
ENTRY(cpu_arm1020e_proc_init) ENTRY(cpu_arm1020e_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm1020e_proc_fin() * cpu_arm1020e_proc_fin()
...@@ -83,7 +83,7 @@ ENTRY(cpu_arm1020e_proc_fin) ...@@ -83,7 +83,7 @@ ENTRY(cpu_arm1020e_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm1020e_reset(loc) * cpu_arm1020e_reset(loc)
...@@ -107,7 +107,7 @@ ENTRY(cpu_arm1020e_reset) ...@@ -107,7 +107,7 @@ ENTRY(cpu_arm1020e_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm1020e_reset) ENDPROC(cpu_arm1020e_reset)
.popsection .popsection
...@@ -117,7 +117,7 @@ ENDPROC(cpu_arm1020e_reset) ...@@ -117,7 +117,7 @@ ENDPROC(cpu_arm1020e_reset)
.align 5 .align 5
ENTRY(cpu_arm1020e_do_idle) ENTRY(cpu_arm1020e_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -133,7 +133,7 @@ ENTRY(arm1020e_flush_icache_all) ...@@ -133,7 +133,7 @@ ENTRY(arm1020e_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
#endif #endif
mov pc, lr ret lr
ENDPROC(arm1020e_flush_icache_all) ENDPROC(arm1020e_flush_icache_all)
/* /*
...@@ -168,7 +168,7 @@ __flush_whole_cache: ...@@ -168,7 +168,7 @@ __flush_whole_cache:
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -197,7 +197,7 @@ ENTRY(arm1020e_flush_user_cache_range) ...@@ -197,7 +197,7 @@ ENTRY(arm1020e_flush_user_cache_range)
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -236,7 +236,7 @@ ENTRY(arm1020e_coherent_user_range) ...@@ -236,7 +236,7 @@ ENTRY(arm1020e_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -257,7 +257,7 @@ ENTRY(arm1020e_flush_kern_dcache_area) ...@@ -257,7 +257,7 @@ ENTRY(arm1020e_flush_kern_dcache_area)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -286,7 +286,7 @@ arm1020e_dma_inv_range: ...@@ -286,7 +286,7 @@ arm1020e_dma_inv_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -308,7 +308,7 @@ arm1020e_dma_clean_range: ...@@ -308,7 +308,7 @@ arm1020e_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -328,7 +328,7 @@ ENTRY(arm1020e_dma_flush_range) ...@@ -328,7 +328,7 @@ ENTRY(arm1020e_dma_flush_range)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -351,7 +351,7 @@ ENDPROC(arm1020e_dma_map_area) ...@@ -351,7 +351,7 @@ ENDPROC(arm1020e_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm1020e_dma_unmap_area) ENTRY(arm1020e_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm1020e_dma_unmap_area) ENDPROC(arm1020e_dma_unmap_area)
.globl arm1020e_flush_kern_cache_louis .globl arm1020e_flush_kern_cache_louis
...@@ -369,7 +369,7 @@ ENTRY(cpu_arm1020e_dcache_clean_area) ...@@ -369,7 +369,7 @@ ENTRY(cpu_arm1020e_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
#endif #endif
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -407,7 +407,7 @@ ENTRY(cpu_arm1020e_switch_mm) ...@@ -407,7 +407,7 @@ ENTRY(cpu_arm1020e_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm1020e_set_pte(ptep, pte) * cpu_arm1020e_set_pte(ptep, pte)
...@@ -423,7 +423,7 @@ ENTRY(cpu_arm1020e_set_pte_ext) ...@@ -423,7 +423,7 @@ ENTRY(cpu_arm1020e_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
#endif #endif
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
.type __arm1020e_setup, #function .type __arm1020e_setup, #function
__arm1020e_setup: __arm1020e_setup:
...@@ -441,7 +441,7 @@ __arm1020e_setup: ...@@ -441,7 +441,7 @@ __arm1020e_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x4000 @ .R.. .... .... .... orr r0, r0, #0x4000 @ .R.. .... .... ....
#endif #endif
mov pc, lr ret lr
.size __arm1020e_setup, . - __arm1020e_setup .size __arm1020e_setup, . - __arm1020e_setup
/* /*
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
* cpu_arm1022_proc_init() * cpu_arm1022_proc_init()
*/ */
ENTRY(cpu_arm1022_proc_init) ENTRY(cpu_arm1022_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm1022_proc_fin() * cpu_arm1022_proc_fin()
...@@ -72,7 +72,7 @@ ENTRY(cpu_arm1022_proc_fin) ...@@ -72,7 +72,7 @@ ENTRY(cpu_arm1022_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm1022_reset(loc) * cpu_arm1022_reset(loc)
...@@ -96,7 +96,7 @@ ENTRY(cpu_arm1022_reset) ...@@ -96,7 +96,7 @@ ENTRY(cpu_arm1022_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm1022_reset) ENDPROC(cpu_arm1022_reset)
.popsection .popsection
...@@ -106,7 +106,7 @@ ENDPROC(cpu_arm1022_reset) ...@@ -106,7 +106,7 @@ ENDPROC(cpu_arm1022_reset)
.align 5 .align 5
ENTRY(cpu_arm1022_do_idle) ENTRY(cpu_arm1022_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -122,7 +122,7 @@ ENTRY(arm1022_flush_icache_all) ...@@ -122,7 +122,7 @@ ENTRY(arm1022_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
#endif #endif
mov pc, lr ret lr
ENDPROC(arm1022_flush_icache_all) ENDPROC(arm1022_flush_icache_all)
/* /*
...@@ -156,7 +156,7 @@ __flush_whole_cache: ...@@ -156,7 +156,7 @@ __flush_whole_cache:
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -185,7 +185,7 @@ ENTRY(arm1022_flush_user_cache_range) ...@@ -185,7 +185,7 @@ ENTRY(arm1022_flush_user_cache_range)
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -225,7 +225,7 @@ ENTRY(arm1022_coherent_user_range) ...@@ -225,7 +225,7 @@ ENTRY(arm1022_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -246,7 +246,7 @@ ENTRY(arm1022_flush_kern_dcache_area) ...@@ -246,7 +246,7 @@ ENTRY(arm1022_flush_kern_dcache_area)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -275,7 +275,7 @@ arm1022_dma_inv_range: ...@@ -275,7 +275,7 @@ arm1022_dma_inv_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -297,7 +297,7 @@ arm1022_dma_clean_range: ...@@ -297,7 +297,7 @@ arm1022_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -317,7 +317,7 @@ ENTRY(arm1022_dma_flush_range) ...@@ -317,7 +317,7 @@ ENTRY(arm1022_dma_flush_range)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -340,7 +340,7 @@ ENDPROC(arm1022_dma_map_area) ...@@ -340,7 +340,7 @@ ENDPROC(arm1022_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm1022_dma_unmap_area) ENTRY(arm1022_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm1022_dma_unmap_area) ENDPROC(arm1022_dma_unmap_area)
.globl arm1022_flush_kern_cache_louis .globl arm1022_flush_kern_cache_louis
...@@ -358,7 +358,7 @@ ENTRY(cpu_arm1022_dcache_clean_area) ...@@ -358,7 +358,7 @@ ENTRY(cpu_arm1022_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
#endif #endif
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -389,7 +389,7 @@ ENTRY(cpu_arm1022_switch_mm) ...@@ -389,7 +389,7 @@ ENTRY(cpu_arm1022_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm1022_set_pte_ext(ptep, pte, ext) * cpu_arm1022_set_pte_ext(ptep, pte, ext)
...@@ -405,7 +405,7 @@ ENTRY(cpu_arm1022_set_pte_ext) ...@@ -405,7 +405,7 @@ ENTRY(cpu_arm1022_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
#endif #endif
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
.type __arm1022_setup, #function .type __arm1022_setup, #function
__arm1022_setup: __arm1022_setup:
...@@ -423,7 +423,7 @@ __arm1022_setup: ...@@ -423,7 +423,7 @@ __arm1022_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x4000 @ .R.............. orr r0, r0, #0x4000 @ .R..............
#endif #endif
mov pc, lr ret lr
.size __arm1022_setup, . - __arm1022_setup .size __arm1022_setup, . - __arm1022_setup
/* /*
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
* cpu_arm1026_proc_init() * cpu_arm1026_proc_init()
*/ */
ENTRY(cpu_arm1026_proc_init) ENTRY(cpu_arm1026_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm1026_proc_fin() * cpu_arm1026_proc_fin()
...@@ -72,7 +72,7 @@ ENTRY(cpu_arm1026_proc_fin) ...@@ -72,7 +72,7 @@ ENTRY(cpu_arm1026_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm1026_reset(loc) * cpu_arm1026_reset(loc)
...@@ -96,7 +96,7 @@ ENTRY(cpu_arm1026_reset) ...@@ -96,7 +96,7 @@ ENTRY(cpu_arm1026_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm1026_reset) ENDPROC(cpu_arm1026_reset)
.popsection .popsection
...@@ -106,7 +106,7 @@ ENDPROC(cpu_arm1026_reset) ...@@ -106,7 +106,7 @@ ENDPROC(cpu_arm1026_reset)
.align 5 .align 5
ENTRY(cpu_arm1026_do_idle) ENTRY(cpu_arm1026_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -122,7 +122,7 @@ ENTRY(arm1026_flush_icache_all) ...@@ -122,7 +122,7 @@ ENTRY(arm1026_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
#endif #endif
mov pc, lr ret lr
ENDPROC(arm1026_flush_icache_all) ENDPROC(arm1026_flush_icache_all)
/* /*
...@@ -151,7 +151,7 @@ __flush_whole_cache: ...@@ -151,7 +151,7 @@ __flush_whole_cache:
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -180,7 +180,7 @@ ENTRY(arm1026_flush_user_cache_range) ...@@ -180,7 +180,7 @@ ENTRY(arm1026_flush_user_cache_range)
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
#endif #endif
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -219,7 +219,7 @@ ENTRY(arm1026_coherent_user_range) ...@@ -219,7 +219,7 @@ ENTRY(arm1026_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -240,7 +240,7 @@ ENTRY(arm1026_flush_kern_dcache_area) ...@@ -240,7 +240,7 @@ ENTRY(arm1026_flush_kern_dcache_area)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -269,7 +269,7 @@ arm1026_dma_inv_range: ...@@ -269,7 +269,7 @@ arm1026_dma_inv_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -291,7 +291,7 @@ arm1026_dma_clean_range: ...@@ -291,7 +291,7 @@ arm1026_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -311,7 +311,7 @@ ENTRY(arm1026_dma_flush_range) ...@@ -311,7 +311,7 @@ ENTRY(arm1026_dma_flush_range)
blo 1b blo 1b
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -334,7 +334,7 @@ ENDPROC(arm1026_dma_map_area) ...@@ -334,7 +334,7 @@ ENDPROC(arm1026_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm1026_dma_unmap_area) ENTRY(arm1026_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm1026_dma_unmap_area) ENDPROC(arm1026_dma_unmap_area)
.globl arm1026_flush_kern_cache_louis .globl arm1026_flush_kern_cache_louis
...@@ -352,7 +352,7 @@ ENTRY(cpu_arm1026_dcache_clean_area) ...@@ -352,7 +352,7 @@ ENTRY(cpu_arm1026_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
#endif #endif
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -378,7 +378,7 @@ ENTRY(cpu_arm1026_switch_mm) ...@@ -378,7 +378,7 @@ ENTRY(cpu_arm1026_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, r1, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm1026_set_pte_ext(ptep, pte, ext) * cpu_arm1026_set_pte_ext(ptep, pte, ext)
...@@ -394,7 +394,7 @@ ENTRY(cpu_arm1026_set_pte_ext) ...@@ -394,7 +394,7 @@ ENTRY(cpu_arm1026_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
#endif #endif
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
.type __arm1026_setup, #function .type __arm1026_setup, #function
__arm1026_setup: __arm1026_setup:
...@@ -417,7 +417,7 @@ __arm1026_setup: ...@@ -417,7 +417,7 @@ __arm1026_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x4000 @ .R.. .... .... .... orr r0, r0, #0x4000 @ .R.. .... .... ....
#endif #endif
mov pc, lr ret lr
.size __arm1026_setup, . - __arm1026_setup .size __arm1026_setup, . - __arm1026_setup
/* /*
......
...@@ -51,14 +51,14 @@ ...@@ -51,14 +51,14 @@
*/ */
ENTRY(cpu_arm720_dcache_clean_area) ENTRY(cpu_arm720_dcache_clean_area)
ENTRY(cpu_arm720_proc_init) ENTRY(cpu_arm720_proc_init)
mov pc, lr ret lr
ENTRY(cpu_arm720_proc_fin) ENTRY(cpu_arm720_proc_fin)
mrc p15, 0, r0, c1, c0, 0 mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* Function: arm720_proc_do_idle(void) * Function: arm720_proc_do_idle(void)
...@@ -66,7 +66,7 @@ ENTRY(cpu_arm720_proc_fin) ...@@ -66,7 +66,7 @@ ENTRY(cpu_arm720_proc_fin)
* Purpose : put the processor in proper idle mode * Purpose : put the processor in proper idle mode
*/ */
ENTRY(cpu_arm720_do_idle) ENTRY(cpu_arm720_do_idle)
mov pc, lr ret lr
/* /*
* Function: arm720_switch_mm(unsigned long pgd_phys) * Function: arm720_switch_mm(unsigned long pgd_phys)
...@@ -81,7 +81,7 @@ ENTRY(cpu_arm720_switch_mm) ...@@ -81,7 +81,7 @@ ENTRY(cpu_arm720_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ update page table ptr mcr p15, 0, r0, c2, c0, 0 @ update page table ptr
mcr p15, 0, r1, c8, c7, 0 @ flush TLB (v4) mcr p15, 0, r1, c8, c7, 0 @ flush TLB (v4)
#endif #endif
mov pc, lr ret lr
/* /*
* Function: arm720_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext) * Function: arm720_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext)
...@@ -94,7 +94,7 @@ ENTRY(cpu_arm720_set_pte_ext) ...@@ -94,7 +94,7 @@ ENTRY(cpu_arm720_set_pte_ext)
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
armv3_set_pte_ext wc_disable=0 armv3_set_pte_ext wc_disable=0
#endif #endif
mov pc, lr ret lr
/* /*
* Function: arm720_reset * Function: arm720_reset
...@@ -112,7 +112,7 @@ ENTRY(cpu_arm720_reset) ...@@ -112,7 +112,7 @@ ENTRY(cpu_arm720_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x2100 @ ..v....s........ bic ip, ip, #0x2100 @ ..v....s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm720_reset) ENDPROC(cpu_arm720_reset)
.popsection .popsection
...@@ -128,7 +128,7 @@ __arm710_setup: ...@@ -128,7 +128,7 @@ __arm710_setup:
bic r0, r0, r5 bic r0, r0, r5
ldr r5, arm710_cr1_set ldr r5, arm710_cr1_set
orr r0, r0, r5 orr r0, r0, r5
mov pc, lr @ __ret (head.S) ret lr @ __ret (head.S)
.size __arm710_setup, . - __arm710_setup .size __arm710_setup, . - __arm710_setup
/* /*
...@@ -156,7 +156,7 @@ __arm720_setup: ...@@ -156,7 +156,7 @@ __arm720_setup:
mrc p15, 0, r0, c1, c0 @ get control register mrc p15, 0, r0, c1, c0 @ get control register
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr @ __ret (head.S) ret lr @ __ret (head.S)
.size __arm720_setup, . - __arm720_setup .size __arm720_setup, . - __arm720_setup
/* /*
......
...@@ -32,7 +32,7 @@ ENTRY(cpu_arm740_proc_init) ...@@ -32,7 +32,7 @@ ENTRY(cpu_arm740_proc_init)
ENTRY(cpu_arm740_do_idle) ENTRY(cpu_arm740_do_idle)
ENTRY(cpu_arm740_dcache_clean_area) ENTRY(cpu_arm740_dcache_clean_area)
ENTRY(cpu_arm740_switch_mm) ENTRY(cpu_arm740_switch_mm)
mov pc, lr ret lr
/* /*
* cpu_arm740_proc_fin() * cpu_arm740_proc_fin()
...@@ -42,7 +42,7 @@ ENTRY(cpu_arm740_proc_fin) ...@@ -42,7 +42,7 @@ ENTRY(cpu_arm740_proc_fin)
bic r0, r0, #0x3f000000 @ bank/f/lock/s bic r0, r0, #0x3f000000 @ bank/f/lock/s
bic r0, r0, #0x0000000c @ w-buffer/cache bic r0, r0, #0x0000000c @ w-buffer/cache
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm740_reset(loc) * cpu_arm740_reset(loc)
...@@ -56,7 +56,7 @@ ENTRY(cpu_arm740_reset) ...@@ -56,7 +56,7 @@ ENTRY(cpu_arm740_reset)
mrc p15, 0, ip, c1, c0, 0 @ get ctrl register mrc p15, 0, ip, c1, c0, 0 @ get ctrl register
bic ip, ip, #0x0000000c @ ............wc.. bic ip, ip, #0x0000000c @ ............wc..
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm740_reset) ENDPROC(cpu_arm740_reset)
.popsection .popsection
...@@ -115,7 +115,7 @@ __arm740_setup: ...@@ -115,7 +115,7 @@ __arm740_setup:
@ need some benchmark @ need some benchmark
orr r0, r0, #0x0000000d @ MPU/Cache/WB orr r0, r0, #0x0000000d @ MPU/Cache/WB
mov pc, lr ret lr
.size __arm740_setup, . - __arm740_setup .size __arm740_setup, . - __arm740_setup
......
...@@ -32,13 +32,13 @@ ENTRY(cpu_arm7tdmi_proc_init) ...@@ -32,13 +32,13 @@ ENTRY(cpu_arm7tdmi_proc_init)
ENTRY(cpu_arm7tdmi_do_idle) ENTRY(cpu_arm7tdmi_do_idle)
ENTRY(cpu_arm7tdmi_dcache_clean_area) ENTRY(cpu_arm7tdmi_dcache_clean_area)
ENTRY(cpu_arm7tdmi_switch_mm) ENTRY(cpu_arm7tdmi_switch_mm)
mov pc, lr ret lr
/* /*
* cpu_arm7tdmi_proc_fin() * cpu_arm7tdmi_proc_fin()
*/ */
ENTRY(cpu_arm7tdmi_proc_fin) ENTRY(cpu_arm7tdmi_proc_fin)
mov pc, lr ret lr
/* /*
* Function: cpu_arm7tdmi_reset(loc) * Function: cpu_arm7tdmi_reset(loc)
...@@ -47,13 +47,13 @@ ENTRY(cpu_arm7tdmi_proc_fin) ...@@ -47,13 +47,13 @@ ENTRY(cpu_arm7tdmi_proc_fin)
*/ */
.pushsection .idmap.text, "ax" .pushsection .idmap.text, "ax"
ENTRY(cpu_arm7tdmi_reset) ENTRY(cpu_arm7tdmi_reset)
mov pc, r0 ret r0
ENDPROC(cpu_arm7tdmi_reset) ENDPROC(cpu_arm7tdmi_reset)
.popsection .popsection
.type __arm7tdmi_setup, #function .type __arm7tdmi_setup, #function
__arm7tdmi_setup: __arm7tdmi_setup:
mov pc, lr ret lr
.size __arm7tdmi_setup, . - __arm7tdmi_setup .size __arm7tdmi_setup, . - __arm7tdmi_setup
__INITDATA __INITDATA
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
* cpu_arm920_proc_init() * cpu_arm920_proc_init()
*/ */
ENTRY(cpu_arm920_proc_init) ENTRY(cpu_arm920_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm920_proc_fin() * cpu_arm920_proc_fin()
...@@ -73,7 +73,7 @@ ENTRY(cpu_arm920_proc_fin) ...@@ -73,7 +73,7 @@ ENTRY(cpu_arm920_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm920_reset(loc) * cpu_arm920_reset(loc)
...@@ -97,7 +97,7 @@ ENTRY(cpu_arm920_reset) ...@@ -97,7 +97,7 @@ ENTRY(cpu_arm920_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm920_reset) ENDPROC(cpu_arm920_reset)
.popsection .popsection
...@@ -107,7 +107,7 @@ ENDPROC(cpu_arm920_reset) ...@@ -107,7 +107,7 @@ ENDPROC(cpu_arm920_reset)
.align 5 .align 5
ENTRY(cpu_arm920_do_idle) ENTRY(cpu_arm920_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
...@@ -120,7 +120,7 @@ ENTRY(cpu_arm920_do_idle) ...@@ -120,7 +120,7 @@ ENTRY(cpu_arm920_do_idle)
ENTRY(arm920_flush_icache_all) ENTRY(arm920_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(arm920_flush_icache_all) ENDPROC(arm920_flush_icache_all)
/* /*
...@@ -151,7 +151,7 @@ __flush_whole_cache: ...@@ -151,7 +151,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -177,7 +177,7 @@ ENTRY(arm920_flush_user_cache_range) ...@@ -177,7 +177,7 @@ ENTRY(arm920_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -211,7 +211,7 @@ ENTRY(arm920_coherent_user_range) ...@@ -211,7 +211,7 @@ ENTRY(arm920_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -231,7 +231,7 @@ ENTRY(arm920_flush_kern_dcache_area) ...@@ -231,7 +231,7 @@ ENTRY(arm920_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -257,7 +257,7 @@ arm920_dma_inv_range: ...@@ -257,7 +257,7 @@ arm920_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -276,7 +276,7 @@ arm920_dma_clean_range: ...@@ -276,7 +276,7 @@ arm920_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -293,7 +293,7 @@ ENTRY(arm920_dma_flush_range) ...@@ -293,7 +293,7 @@ ENTRY(arm920_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -316,7 +316,7 @@ ENDPROC(arm920_dma_map_area) ...@@ -316,7 +316,7 @@ ENDPROC(arm920_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm920_dma_unmap_area) ENTRY(arm920_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm920_dma_unmap_area) ENDPROC(arm920_dma_unmap_area)
.globl arm920_flush_kern_cache_louis .globl arm920_flush_kern_cache_louis
...@@ -332,7 +332,7 @@ ENTRY(cpu_arm920_dcache_clean_area) ...@@ -332,7 +332,7 @@ ENTRY(cpu_arm920_dcache_clean_area)
add r0, r0, #CACHE_DLINESIZE add r0, r0, #CACHE_DLINESIZE
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -367,7 +367,7 @@ ENTRY(cpu_arm920_switch_mm) ...@@ -367,7 +367,7 @@ ENTRY(cpu_arm920_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm920_set_pte(ptep, pte, ext) * cpu_arm920_set_pte(ptep, pte, ext)
...@@ -382,7 +382,7 @@ ENTRY(cpu_arm920_set_pte_ext) ...@@ -382,7 +382,7 @@ ENTRY(cpu_arm920_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif #endif
mov pc, lr ret lr
/* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */
.globl cpu_arm920_suspend_size .globl cpu_arm920_suspend_size
...@@ -423,7 +423,7 @@ __arm920_setup: ...@@ -423,7 +423,7 @@ __arm920_setup:
mrc p15, 0, r0, c1, c0 @ get control register v4 mrc p15, 0, r0, c1, c0 @ get control register v4
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __arm920_setup, . - __arm920_setup .size __arm920_setup, . - __arm920_setup
/* /*
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
* cpu_arm922_proc_init() * cpu_arm922_proc_init()
*/ */
ENTRY(cpu_arm922_proc_init) ENTRY(cpu_arm922_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm922_proc_fin() * cpu_arm922_proc_fin()
...@@ -75,7 +75,7 @@ ENTRY(cpu_arm922_proc_fin) ...@@ -75,7 +75,7 @@ ENTRY(cpu_arm922_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm922_reset(loc) * cpu_arm922_reset(loc)
...@@ -99,7 +99,7 @@ ENTRY(cpu_arm922_reset) ...@@ -99,7 +99,7 @@ ENTRY(cpu_arm922_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm922_reset) ENDPROC(cpu_arm922_reset)
.popsection .popsection
...@@ -109,7 +109,7 @@ ENDPROC(cpu_arm922_reset) ...@@ -109,7 +109,7 @@ ENDPROC(cpu_arm922_reset)
.align 5 .align 5
ENTRY(cpu_arm922_do_idle) ENTRY(cpu_arm922_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH #ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
...@@ -122,7 +122,7 @@ ENTRY(cpu_arm922_do_idle) ...@@ -122,7 +122,7 @@ ENTRY(cpu_arm922_do_idle)
ENTRY(arm922_flush_icache_all) ENTRY(arm922_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(arm922_flush_icache_all) ENDPROC(arm922_flush_icache_all)
/* /*
...@@ -153,7 +153,7 @@ __flush_whole_cache: ...@@ -153,7 +153,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -179,7 +179,7 @@ ENTRY(arm922_flush_user_cache_range) ...@@ -179,7 +179,7 @@ ENTRY(arm922_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -213,7 +213,7 @@ ENTRY(arm922_coherent_user_range) ...@@ -213,7 +213,7 @@ ENTRY(arm922_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -233,7 +233,7 @@ ENTRY(arm922_flush_kern_dcache_area) ...@@ -233,7 +233,7 @@ ENTRY(arm922_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -259,7 +259,7 @@ arm922_dma_inv_range: ...@@ -259,7 +259,7 @@ arm922_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -278,7 +278,7 @@ arm922_dma_clean_range: ...@@ -278,7 +278,7 @@ arm922_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -295,7 +295,7 @@ ENTRY(arm922_dma_flush_range) ...@@ -295,7 +295,7 @@ ENTRY(arm922_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -318,7 +318,7 @@ ENDPROC(arm922_dma_map_area) ...@@ -318,7 +318,7 @@ ENDPROC(arm922_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm922_dma_unmap_area) ENTRY(arm922_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm922_dma_unmap_area) ENDPROC(arm922_dma_unmap_area)
.globl arm922_flush_kern_cache_louis .globl arm922_flush_kern_cache_louis
...@@ -336,7 +336,7 @@ ENTRY(cpu_arm922_dcache_clean_area) ...@@ -336,7 +336,7 @@ ENTRY(cpu_arm922_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
#endif #endif
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -371,7 +371,7 @@ ENTRY(cpu_arm922_switch_mm) ...@@ -371,7 +371,7 @@ ENTRY(cpu_arm922_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm922_set_pte_ext(ptep, pte, ext) * cpu_arm922_set_pte_ext(ptep, pte, ext)
...@@ -386,7 +386,7 @@ ENTRY(cpu_arm922_set_pte_ext) ...@@ -386,7 +386,7 @@ ENTRY(cpu_arm922_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
.type __arm922_setup, #function .type __arm922_setup, #function
__arm922_setup: __arm922_setup:
...@@ -401,7 +401,7 @@ __arm922_setup: ...@@ -401,7 +401,7 @@ __arm922_setup:
mrc p15, 0, r0, c1, c0 @ get control register v4 mrc p15, 0, r0, c1, c0 @ get control register v4
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __arm922_setup, . - __arm922_setup .size __arm922_setup, . - __arm922_setup
/* /*
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
* cpu_arm925_proc_init() * cpu_arm925_proc_init()
*/ */
ENTRY(cpu_arm925_proc_init) ENTRY(cpu_arm925_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm925_proc_fin() * cpu_arm925_proc_fin()
...@@ -96,7 +96,7 @@ ENTRY(cpu_arm925_proc_fin) ...@@ -96,7 +96,7 @@ ENTRY(cpu_arm925_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm925_reset(loc) * cpu_arm925_reset(loc)
...@@ -129,7 +129,7 @@ ENDPROC(cpu_arm925_reset) ...@@ -129,7 +129,7 @@ ENDPROC(cpu_arm925_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
/* /*
* cpu_arm925_do_idle() * cpu_arm925_do_idle()
...@@ -145,7 +145,7 @@ ENTRY(cpu_arm925_do_idle) ...@@ -145,7 +145,7 @@ ENTRY(cpu_arm925_do_idle)
mcr p15, 0, r2, c1, c0, 0 @ Disable I cache mcr p15, 0, r2, c1, c0, 0 @ Disable I cache
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mcr p15, 0, r1, c1, c0, 0 @ Restore ICache enable mcr p15, 0, r1, c1, c0, 0 @ Restore ICache enable
mov pc, lr ret lr
/* /*
* flush_icache_all() * flush_icache_all()
...@@ -155,7 +155,7 @@ ENTRY(cpu_arm925_do_idle) ...@@ -155,7 +155,7 @@ ENTRY(cpu_arm925_do_idle)
ENTRY(arm925_flush_icache_all) ENTRY(arm925_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(arm925_flush_icache_all) ENDPROC(arm925_flush_icache_all)
/* /*
...@@ -188,7 +188,7 @@ __flush_whole_cache: ...@@ -188,7 +188,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -225,7 +225,7 @@ ENTRY(arm925_flush_user_cache_range) ...@@ -225,7 +225,7 @@ ENTRY(arm925_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -259,7 +259,7 @@ ENTRY(arm925_coherent_user_range) ...@@ -259,7 +259,7 @@ ENTRY(arm925_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -279,7 +279,7 @@ ENTRY(arm925_flush_kern_dcache_area) ...@@ -279,7 +279,7 @@ ENTRY(arm925_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -307,7 +307,7 @@ arm925_dma_inv_range: ...@@ -307,7 +307,7 @@ arm925_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -328,7 +328,7 @@ arm925_dma_clean_range: ...@@ -328,7 +328,7 @@ arm925_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -350,7 +350,7 @@ ENTRY(arm925_dma_flush_range) ...@@ -350,7 +350,7 @@ ENTRY(arm925_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -373,7 +373,7 @@ ENDPROC(arm925_dma_map_area) ...@@ -373,7 +373,7 @@ ENDPROC(arm925_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm925_dma_unmap_area) ENTRY(arm925_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm925_dma_unmap_area) ENDPROC(arm925_dma_unmap_area)
.globl arm925_flush_kern_cache_louis .globl arm925_flush_kern_cache_louis
...@@ -390,7 +390,7 @@ ENTRY(cpu_arm925_dcache_clean_area) ...@@ -390,7 +390,7 @@ ENTRY(cpu_arm925_dcache_clean_area)
bhi 1b bhi 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -419,7 +419,7 @@ ENTRY(cpu_arm925_switch_mm) ...@@ -419,7 +419,7 @@ ENTRY(cpu_arm925_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm925_set_pte_ext(ptep, pte, ext) * cpu_arm925_set_pte_ext(ptep, pte, ext)
...@@ -436,7 +436,7 @@ ENTRY(cpu_arm925_set_pte_ext) ...@@ -436,7 +436,7 @@ ENTRY(cpu_arm925_set_pte_ext)
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
mov pc, lr ret lr
.type __arm925_setup, #function .type __arm925_setup, #function
__arm925_setup: __arm925_setup:
...@@ -469,7 +469,7 @@ __arm925_setup: ...@@ -469,7 +469,7 @@ __arm925_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x4000 @ .1.. .... .... .... orr r0, r0, #0x4000 @ .1.. .... .... ....
#endif #endif
mov pc, lr ret lr
.size __arm925_setup, . - __arm925_setup .size __arm925_setup, . - __arm925_setup
/* /*
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
* cpu_arm926_proc_init() * cpu_arm926_proc_init()
*/ */
ENTRY(cpu_arm926_proc_init) ENTRY(cpu_arm926_proc_init)
mov pc, lr ret lr
/* /*
* cpu_arm926_proc_fin() * cpu_arm926_proc_fin()
...@@ -65,7 +65,7 @@ ENTRY(cpu_arm926_proc_fin) ...@@ -65,7 +65,7 @@ ENTRY(cpu_arm926_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm926_reset(loc) * cpu_arm926_reset(loc)
...@@ -89,7 +89,7 @@ ENTRY(cpu_arm926_reset) ...@@ -89,7 +89,7 @@ ENTRY(cpu_arm926_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm926_reset) ENDPROC(cpu_arm926_reset)
.popsection .popsection
...@@ -111,7 +111,7 @@ ENTRY(cpu_arm926_do_idle) ...@@ -111,7 +111,7 @@ ENTRY(cpu_arm926_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mcr p15, 0, r1, c1, c0, 0 @ Restore ICache enable mcr p15, 0, r1, c1, c0, 0 @ Restore ICache enable
msr cpsr_c, r3 @ Restore FIQ state msr cpsr_c, r3 @ Restore FIQ state
mov pc, lr ret lr
/* /*
* flush_icache_all() * flush_icache_all()
...@@ -121,7 +121,7 @@ ENTRY(cpu_arm926_do_idle) ...@@ -121,7 +121,7 @@ ENTRY(cpu_arm926_do_idle)
ENTRY(arm926_flush_icache_all) ENTRY(arm926_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(arm926_flush_icache_all) ENDPROC(arm926_flush_icache_all)
/* /*
...@@ -151,7 +151,7 @@ __flush_whole_cache: ...@@ -151,7 +151,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -188,7 +188,7 @@ ENTRY(arm926_flush_user_cache_range) ...@@ -188,7 +188,7 @@ ENTRY(arm926_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -222,7 +222,7 @@ ENTRY(arm926_coherent_user_range) ...@@ -222,7 +222,7 @@ ENTRY(arm926_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -242,7 +242,7 @@ ENTRY(arm926_flush_kern_dcache_area) ...@@ -242,7 +242,7 @@ ENTRY(arm926_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -270,7 +270,7 @@ arm926_dma_inv_range: ...@@ -270,7 +270,7 @@ arm926_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -291,7 +291,7 @@ arm926_dma_clean_range: ...@@ -291,7 +291,7 @@ arm926_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -313,7 +313,7 @@ ENTRY(arm926_dma_flush_range) ...@@ -313,7 +313,7 @@ ENTRY(arm926_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -336,7 +336,7 @@ ENDPROC(arm926_dma_map_area) ...@@ -336,7 +336,7 @@ ENDPROC(arm926_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm926_dma_unmap_area) ENTRY(arm926_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm926_dma_unmap_area) ENDPROC(arm926_dma_unmap_area)
.globl arm926_flush_kern_cache_louis .globl arm926_flush_kern_cache_louis
...@@ -353,7 +353,7 @@ ENTRY(cpu_arm926_dcache_clean_area) ...@@ -353,7 +353,7 @@ ENTRY(cpu_arm926_dcache_clean_area)
bhi 1b bhi 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -380,7 +380,7 @@ ENTRY(cpu_arm926_switch_mm) ...@@ -380,7 +380,7 @@ ENTRY(cpu_arm926_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_arm926_set_pte_ext(ptep, pte, ext) * cpu_arm926_set_pte_ext(ptep, pte, ext)
...@@ -397,7 +397,7 @@ ENTRY(cpu_arm926_set_pte_ext) ...@@ -397,7 +397,7 @@ ENTRY(cpu_arm926_set_pte_ext)
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif #endif
mov pc, lr ret lr
/* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */
.globl cpu_arm926_suspend_size .globl cpu_arm926_suspend_size
...@@ -448,7 +448,7 @@ __arm926_setup: ...@@ -448,7 +448,7 @@ __arm926_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x4000 @ .1.. .... .... .... orr r0, r0, #0x4000 @ .1.. .... .... ....
#endif #endif
mov pc, lr ret lr
.size __arm926_setup, . - __arm926_setup .size __arm926_setup, . - __arm926_setup
/* /*
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
*/ */
ENTRY(cpu_arm940_proc_init) ENTRY(cpu_arm940_proc_init)
ENTRY(cpu_arm940_switch_mm) ENTRY(cpu_arm940_switch_mm)
mov pc, lr ret lr
/* /*
* cpu_arm940_proc_fin() * cpu_arm940_proc_fin()
...@@ -41,7 +41,7 @@ ENTRY(cpu_arm940_proc_fin) ...@@ -41,7 +41,7 @@ ENTRY(cpu_arm940_proc_fin)
bic r0, r0, #0x00001000 @ i-cache bic r0, r0, #0x00001000 @ i-cache
bic r0, r0, #0x00000004 @ d-cache bic r0, r0, #0x00000004 @ d-cache
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm940_reset(loc) * cpu_arm940_reset(loc)
...@@ -58,7 +58,7 @@ ENTRY(cpu_arm940_reset) ...@@ -58,7 +58,7 @@ ENTRY(cpu_arm940_reset)
bic ip, ip, #0x00000005 @ .............c.p bic ip, ip, #0x00000005 @ .............c.p
bic ip, ip, #0x00001000 @ i-cache bic ip, ip, #0x00001000 @ i-cache
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm940_reset) ENDPROC(cpu_arm940_reset)
.popsection .popsection
...@@ -68,7 +68,7 @@ ENDPROC(cpu_arm940_reset) ...@@ -68,7 +68,7 @@ ENDPROC(cpu_arm940_reset)
.align 5 .align 5
ENTRY(cpu_arm940_do_idle) ENTRY(cpu_arm940_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* /*
* flush_icache_all() * flush_icache_all()
...@@ -78,7 +78,7 @@ ENTRY(cpu_arm940_do_idle) ...@@ -78,7 +78,7 @@ ENTRY(cpu_arm940_do_idle)
ENTRY(arm940_flush_icache_all) ENTRY(arm940_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(arm940_flush_icache_all) ENDPROC(arm940_flush_icache_all)
/* /*
...@@ -122,7 +122,7 @@ ENTRY(arm940_flush_user_cache_range) ...@@ -122,7 +122,7 @@ ENTRY(arm940_flush_user_cache_range)
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -170,7 +170,7 @@ ENTRY(arm940_flush_kern_dcache_area) ...@@ -170,7 +170,7 @@ ENTRY(arm940_flush_kern_dcache_area)
bcs 1b @ segments 7 to 0 bcs 1b @ segments 7 to 0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -191,7 +191,7 @@ arm940_dma_inv_range: ...@@ -191,7 +191,7 @@ arm940_dma_inv_range:
subs r1, r1, #1 << 4 subs r1, r1, #1 << 4
bcs 1b @ segments 7 to 0 bcs 1b @ segments 7 to 0
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -215,7 +215,7 @@ ENTRY(cpu_arm940_dcache_clean_area) ...@@ -215,7 +215,7 @@ ENTRY(cpu_arm940_dcache_clean_area)
bcs 1b @ segments 7 to 0 bcs 1b @ segments 7 to 0
#endif #endif
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -241,7 +241,7 @@ ENTRY(arm940_dma_flush_range) ...@@ -241,7 +241,7 @@ ENTRY(arm940_dma_flush_range)
subs r1, r1, #1 << 4 subs r1, r1, #1 << 4
bcs 1b @ segments 7 to 0 bcs 1b @ segments 7 to 0
mcr p15, 0, ip, c7, c10, 4 @ drain WB mcr p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -264,7 +264,7 @@ ENDPROC(arm940_dma_map_area) ...@@ -264,7 +264,7 @@ ENDPROC(arm940_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm940_dma_unmap_area) ENTRY(arm940_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm940_dma_unmap_area) ENDPROC(arm940_dma_unmap_area)
.globl arm940_flush_kern_cache_louis .globl arm940_flush_kern_cache_louis
...@@ -337,7 +337,7 @@ __arm940_setup: ...@@ -337,7 +337,7 @@ __arm940_setup:
orr r0, r0, #0x00001000 @ I-cache orr r0, r0, #0x00001000 @ I-cache
orr r0, r0, #0x00000005 @ MPU/D-cache orr r0, r0, #0x00000005 @ MPU/D-cache
mov pc, lr ret lr
.size __arm940_setup, . - __arm940_setup .size __arm940_setup, . - __arm940_setup
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
*/ */
ENTRY(cpu_arm946_proc_init) ENTRY(cpu_arm946_proc_init)
ENTRY(cpu_arm946_switch_mm) ENTRY(cpu_arm946_switch_mm)
mov pc, lr ret lr
/* /*
* cpu_arm946_proc_fin() * cpu_arm946_proc_fin()
...@@ -48,7 +48,7 @@ ENTRY(cpu_arm946_proc_fin) ...@@ -48,7 +48,7 @@ ENTRY(cpu_arm946_proc_fin)
bic r0, r0, #0x00001000 @ i-cache bic r0, r0, #0x00001000 @ i-cache
bic r0, r0, #0x00000004 @ d-cache bic r0, r0, #0x00000004 @ d-cache
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_arm946_reset(loc) * cpu_arm946_reset(loc)
...@@ -65,7 +65,7 @@ ENTRY(cpu_arm946_reset) ...@@ -65,7 +65,7 @@ ENTRY(cpu_arm946_reset)
bic ip, ip, #0x00000005 @ .............c.p bic ip, ip, #0x00000005 @ .............c.p
bic ip, ip, #0x00001000 @ i-cache bic ip, ip, #0x00001000 @ i-cache
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_arm946_reset) ENDPROC(cpu_arm946_reset)
.popsection .popsection
...@@ -75,7 +75,7 @@ ENDPROC(cpu_arm946_reset) ...@@ -75,7 +75,7 @@ ENDPROC(cpu_arm946_reset)
.align 5 .align 5
ENTRY(cpu_arm946_do_idle) ENTRY(cpu_arm946_do_idle)
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* /*
* flush_icache_all() * flush_icache_all()
...@@ -85,7 +85,7 @@ ENTRY(cpu_arm946_do_idle) ...@@ -85,7 +85,7 @@ ENTRY(cpu_arm946_do_idle)
ENTRY(arm946_flush_icache_all) ENTRY(arm946_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(arm946_flush_icache_all) ENDPROC(arm946_flush_icache_all)
/* /*
...@@ -117,7 +117,7 @@ __flush_whole_cache: ...@@ -117,7 +117,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ flush I cache mcrne p15, 0, ip, c7, c5, 0 @ flush I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -156,7 +156,7 @@ ENTRY(arm946_flush_user_cache_range) ...@@ -156,7 +156,7 @@ ENTRY(arm946_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -191,7 +191,7 @@ ENTRY(arm946_coherent_user_range) ...@@ -191,7 +191,7 @@ ENTRY(arm946_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -212,7 +212,7 @@ ENTRY(arm946_flush_kern_dcache_area) ...@@ -212,7 +212,7 @@ ENTRY(arm946_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -239,7 +239,7 @@ arm946_dma_inv_range: ...@@ -239,7 +239,7 @@ arm946_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -260,7 +260,7 @@ arm946_dma_clean_range: ...@@ -260,7 +260,7 @@ arm946_dma_clean_range:
blo 1b blo 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -284,7 +284,7 @@ ENTRY(arm946_dma_flush_range) ...@@ -284,7 +284,7 @@ ENTRY(arm946_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -307,7 +307,7 @@ ENDPROC(arm946_dma_map_area) ...@@ -307,7 +307,7 @@ ENDPROC(arm946_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(arm946_dma_unmap_area) ENTRY(arm946_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(arm946_dma_unmap_area) ENDPROC(arm946_dma_unmap_area)
.globl arm946_flush_kern_cache_louis .globl arm946_flush_kern_cache_louis
...@@ -324,7 +324,7 @@ ENTRY(cpu_arm946_dcache_clean_area) ...@@ -324,7 +324,7 @@ ENTRY(cpu_arm946_dcache_clean_area)
bhi 1b bhi 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
.type __arm946_setup, #function .type __arm946_setup, #function
__arm946_setup: __arm946_setup:
...@@ -392,7 +392,7 @@ __arm946_setup: ...@@ -392,7 +392,7 @@ __arm946_setup:
#ifdef CONFIG_CPU_CACHE_ROUND_ROBIN #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN
orr r0, r0, #0x00004000 @ .1.. .... .... .... orr r0, r0, #0x00004000 @ .1.. .... .... ....
#endif #endif
mov pc, lr ret lr
.size __arm946_setup, . - __arm946_setup .size __arm946_setup, . - __arm946_setup
......
...@@ -32,13 +32,13 @@ ENTRY(cpu_arm9tdmi_proc_init) ...@@ -32,13 +32,13 @@ ENTRY(cpu_arm9tdmi_proc_init)
ENTRY(cpu_arm9tdmi_do_idle) ENTRY(cpu_arm9tdmi_do_idle)
ENTRY(cpu_arm9tdmi_dcache_clean_area) ENTRY(cpu_arm9tdmi_dcache_clean_area)
ENTRY(cpu_arm9tdmi_switch_mm) ENTRY(cpu_arm9tdmi_switch_mm)
mov pc, lr ret lr
/* /*
* cpu_arm9tdmi_proc_fin() * cpu_arm9tdmi_proc_fin()
*/ */
ENTRY(cpu_arm9tdmi_proc_fin) ENTRY(cpu_arm9tdmi_proc_fin)
mov pc, lr ret lr
/* /*
* Function: cpu_arm9tdmi_reset(loc) * Function: cpu_arm9tdmi_reset(loc)
...@@ -47,13 +47,13 @@ ENTRY(cpu_arm9tdmi_proc_fin) ...@@ -47,13 +47,13 @@ ENTRY(cpu_arm9tdmi_proc_fin)
*/ */
.pushsection .idmap.text, "ax" .pushsection .idmap.text, "ax"
ENTRY(cpu_arm9tdmi_reset) ENTRY(cpu_arm9tdmi_reset)
mov pc, r0 ret r0
ENDPROC(cpu_arm9tdmi_reset) ENDPROC(cpu_arm9tdmi_reset)
.popsection .popsection
.type __arm9tdmi_setup, #function .type __arm9tdmi_setup, #function
__arm9tdmi_setup: __arm9tdmi_setup:
mov pc, lr ret lr
.size __arm9tdmi_setup, . - __arm9tdmi_setup .size __arm9tdmi_setup, . - __arm9tdmi_setup
__INITDATA __INITDATA
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
* cpu_fa526_proc_init() * cpu_fa526_proc_init()
*/ */
ENTRY(cpu_fa526_proc_init) ENTRY(cpu_fa526_proc_init)
mov pc, lr ret lr
/* /*
* cpu_fa526_proc_fin() * cpu_fa526_proc_fin()
...@@ -44,7 +44,7 @@ ENTRY(cpu_fa526_proc_fin) ...@@ -44,7 +44,7 @@ ENTRY(cpu_fa526_proc_fin)
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
nop nop
nop nop
mov pc, lr ret lr
/* /*
* cpu_fa526_reset(loc) * cpu_fa526_reset(loc)
...@@ -72,7 +72,7 @@ ENTRY(cpu_fa526_reset) ...@@ -72,7 +72,7 @@ ENTRY(cpu_fa526_reset)
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
nop nop
nop nop
mov pc, r0 ret r0
ENDPROC(cpu_fa526_reset) ENDPROC(cpu_fa526_reset)
.popsection .popsection
...@@ -81,7 +81,7 @@ ENDPROC(cpu_fa526_reset) ...@@ -81,7 +81,7 @@ ENDPROC(cpu_fa526_reset)
*/ */
.align 4 .align 4
ENTRY(cpu_fa526_do_idle) ENTRY(cpu_fa526_do_idle)
mov pc, lr ret lr
ENTRY(cpu_fa526_dcache_clean_area) ENTRY(cpu_fa526_dcache_clean_area)
...@@ -90,7 +90,7 @@ ENTRY(cpu_fa526_dcache_clean_area) ...@@ -90,7 +90,7 @@ ENTRY(cpu_fa526_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -117,7 +117,7 @@ ENTRY(cpu_fa526_switch_mm) ...@@ -117,7 +117,7 @@ ENTRY(cpu_fa526_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate UTLB mcr p15, 0, ip, c8, c7, 0 @ invalidate UTLB
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_fa526_set_pte_ext(ptep, pte, ext) * cpu_fa526_set_pte_ext(ptep, pte, ext)
...@@ -133,7 +133,7 @@ ENTRY(cpu_fa526_set_pte_ext) ...@@ -133,7 +133,7 @@ ENTRY(cpu_fa526_set_pte_ext)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif #endif
mov pc, lr ret lr
.type __fa526_setup, #function .type __fa526_setup, #function
__fa526_setup: __fa526_setup:
...@@ -162,7 +162,7 @@ __fa526_setup: ...@@ -162,7 +162,7 @@ __fa526_setup:
bic r0, r0, r5 bic r0, r0, r5
ldr r5, fa526_cr1_set ldr r5, fa526_cr1_set
orr r0, r0, r5 orr r0, r0, r5
mov pc, lr ret lr
.size __fa526_setup, . - __fa526_setup .size __fa526_setup, . - __fa526_setup
/* /*
......
...@@ -69,7 +69,7 @@ ENTRY(cpu_feroceon_proc_init) ...@@ -69,7 +69,7 @@ ENTRY(cpu_feroceon_proc_init)
movne r2, r2, lsr #2 @ turned into # of sets movne r2, r2, lsr #2 @ turned into # of sets
sub r2, r2, #(1 << 5) sub r2, r2, #(1 << 5)
stmia r1, {r2, r3} stmia r1, {r2, r3}
mov pc, lr ret lr
/* /*
* cpu_feroceon_proc_fin() * cpu_feroceon_proc_fin()
...@@ -86,7 +86,7 @@ ENTRY(cpu_feroceon_proc_fin) ...@@ -86,7 +86,7 @@ ENTRY(cpu_feroceon_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_feroceon_reset(loc) * cpu_feroceon_reset(loc)
...@@ -110,7 +110,7 @@ ENTRY(cpu_feroceon_reset) ...@@ -110,7 +110,7 @@ ENTRY(cpu_feroceon_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_feroceon_reset) ENDPROC(cpu_feroceon_reset)
.popsection .popsection
...@@ -124,7 +124,7 @@ ENTRY(cpu_feroceon_do_idle) ...@@ -124,7 +124,7 @@ ENTRY(cpu_feroceon_do_idle)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ Drain write buffer mcr p15, 0, r0, c7, c10, 4 @ Drain write buffer
mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt
mov pc, lr ret lr
/* /*
* flush_icache_all() * flush_icache_all()
...@@ -134,7 +134,7 @@ ENTRY(cpu_feroceon_do_idle) ...@@ -134,7 +134,7 @@ ENTRY(cpu_feroceon_do_idle)
ENTRY(feroceon_flush_icache_all) ENTRY(feroceon_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(feroceon_flush_icache_all) ENDPROC(feroceon_flush_icache_all)
/* /*
...@@ -169,7 +169,7 @@ __flush_whole_cache: ...@@ -169,7 +169,7 @@ __flush_whole_cache:
mov ip, #0 mov ip, #0
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -198,7 +198,7 @@ ENTRY(feroceon_flush_user_cache_range) ...@@ -198,7 +198,7 @@ ENTRY(feroceon_flush_user_cache_range)
tst r2, #VM_EXEC tst r2, #VM_EXEC
mov ip, #0 mov ip, #0
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -233,7 +233,7 @@ ENTRY(feroceon_coherent_user_range) ...@@ -233,7 +233,7 @@ ENTRY(feroceon_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -254,7 +254,7 @@ ENTRY(feroceon_flush_kern_dcache_area) ...@@ -254,7 +254,7 @@ ENTRY(feroceon_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
.align 5 .align 5
ENTRY(feroceon_range_flush_kern_dcache_area) ENTRY(feroceon_range_flush_kern_dcache_area)
...@@ -268,7 +268,7 @@ ENTRY(feroceon_range_flush_kern_dcache_area) ...@@ -268,7 +268,7 @@ ENTRY(feroceon_range_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -295,7 +295,7 @@ feroceon_dma_inv_range: ...@@ -295,7 +295,7 @@ feroceon_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
.align 5 .align 5
feroceon_range_dma_inv_range: feroceon_range_dma_inv_range:
...@@ -311,7 +311,7 @@ feroceon_range_dma_inv_range: ...@@ -311,7 +311,7 @@ feroceon_range_dma_inv_range:
mcr p15, 5, r0, c15, c14, 0 @ D inv range start mcr p15, 5, r0, c15, c14, 0 @ D inv range start
mcr p15, 5, r1, c15, c14, 1 @ D inv range top mcr p15, 5, r1, c15, c14, 1 @ D inv range top
msr cpsr_c, r2 @ restore interrupts msr cpsr_c, r2 @ restore interrupts
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -331,7 +331,7 @@ feroceon_dma_clean_range: ...@@ -331,7 +331,7 @@ feroceon_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
.align 5 .align 5
feroceon_range_dma_clean_range: feroceon_range_dma_clean_range:
...@@ -344,7 +344,7 @@ feroceon_range_dma_clean_range: ...@@ -344,7 +344,7 @@ feroceon_range_dma_clean_range:
mcr p15, 5, r1, c15, c13, 1 @ D clean range top mcr p15, 5, r1, c15, c13, 1 @ D clean range top
msr cpsr_c, r2 @ restore interrupts msr cpsr_c, r2 @ restore interrupts
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -362,7 +362,7 @@ ENTRY(feroceon_dma_flush_range) ...@@ -362,7 +362,7 @@ ENTRY(feroceon_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
.align 5 .align 5
ENTRY(feroceon_range_dma_flush_range) ENTRY(feroceon_range_dma_flush_range)
...@@ -375,7 +375,7 @@ ENTRY(feroceon_range_dma_flush_range) ...@@ -375,7 +375,7 @@ ENTRY(feroceon_range_dma_flush_range)
mcr p15, 5, r1, c15, c15, 1 @ D clean/inv range top mcr p15, 5, r1, c15, c15, 1 @ D clean/inv range top
msr cpsr_c, r2 @ restore interrupts msr cpsr_c, r2 @ restore interrupts
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -412,7 +412,7 @@ ENDPROC(feroceon_range_dma_map_area) ...@@ -412,7 +412,7 @@ ENDPROC(feroceon_range_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(feroceon_dma_unmap_area) ENTRY(feroceon_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(feroceon_dma_unmap_area) ENDPROC(feroceon_dma_unmap_area)
.globl feroceon_flush_kern_cache_louis .globl feroceon_flush_kern_cache_louis
...@@ -461,7 +461,7 @@ ENTRY(cpu_feroceon_dcache_clean_area) ...@@ -461,7 +461,7 @@ ENTRY(cpu_feroceon_dcache_clean_area)
bhi 1b bhi 1b
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -490,9 +490,9 @@ ENTRY(cpu_feroceon_switch_mm) ...@@ -490,9 +490,9 @@ ENTRY(cpu_feroceon_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
mov pc, r2 ret r2
#else #else
mov pc, lr ret lr
#endif #endif
/* /*
...@@ -512,7 +512,7 @@ ENTRY(cpu_feroceon_set_pte_ext) ...@@ -512,7 +512,7 @@ ENTRY(cpu_feroceon_set_pte_ext)
#endif #endif
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif #endif
mov pc, lr ret lr
/* Suspend/resume support: taken from arch/arm/mm/proc-arm926.S */ /* Suspend/resume support: taken from arch/arm/mm/proc-arm926.S */
.globl cpu_feroceon_suspend_size .globl cpu_feroceon_suspend_size
...@@ -554,7 +554,7 @@ __feroceon_setup: ...@@ -554,7 +554,7 @@ __feroceon_setup:
mrc p15, 0, r0, c1, c0 @ get control register v4 mrc p15, 0, r0, c1, c0 @ get control register v4
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __feroceon_setup, . - __feroceon_setup .size __feroceon_setup, . - __feroceon_setup
/* /*
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
* cpu_mohawk_proc_init() * cpu_mohawk_proc_init()
*/ */
ENTRY(cpu_mohawk_proc_init) ENTRY(cpu_mohawk_proc_init)
mov pc, lr ret lr
/* /*
* cpu_mohawk_proc_fin() * cpu_mohawk_proc_fin()
...@@ -55,7 +55,7 @@ ENTRY(cpu_mohawk_proc_fin) ...@@ -55,7 +55,7 @@ ENTRY(cpu_mohawk_proc_fin)
bic r0, r0, #0x1800 @ ...iz........... bic r0, r0, #0x1800 @ ...iz...........
bic r0, r0, #0x0006 @ .............ca. bic r0, r0, #0x0006 @ .............ca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_mohawk_reset(loc) * cpu_mohawk_reset(loc)
...@@ -79,7 +79,7 @@ ENTRY(cpu_mohawk_reset) ...@@ -79,7 +79,7 @@ ENTRY(cpu_mohawk_reset)
bic ip, ip, #0x0007 @ .............cam bic ip, ip, #0x0007 @ .............cam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_mohawk_reset) ENDPROC(cpu_mohawk_reset)
.popsection .popsection
...@@ -93,7 +93,7 @@ ENTRY(cpu_mohawk_do_idle) ...@@ -93,7 +93,7 @@ ENTRY(cpu_mohawk_do_idle)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
mcr p15, 0, r0, c7, c0, 4 @ wait for interrupt mcr p15, 0, r0, c7, c0, 4 @ wait for interrupt
mov pc, lr ret lr
/* /*
* flush_icache_all() * flush_icache_all()
...@@ -103,7 +103,7 @@ ENTRY(cpu_mohawk_do_idle) ...@@ -103,7 +103,7 @@ ENTRY(cpu_mohawk_do_idle)
ENTRY(mohawk_flush_icache_all) ENTRY(mohawk_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(mohawk_flush_icache_all) ENDPROC(mohawk_flush_icache_all)
/* /*
...@@ -128,7 +128,7 @@ __flush_whole_cache: ...@@ -128,7 +128,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
mcrne p15, 0, ip, c7, c10, 0 @ drain write buffer mcrne p15, 0, ip, c7, c10, 0 @ drain write buffer
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, flags) * flush_user_cache_range(start, end, flags)
...@@ -158,7 +158,7 @@ ENTRY(mohawk_flush_user_cache_range) ...@@ -158,7 +158,7 @@ ENTRY(mohawk_flush_user_cache_range)
blo 1b blo 1b
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c10, 4 @ drain WB mcrne p15, 0, ip, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -194,7 +194,7 @@ ENTRY(mohawk_coherent_user_range) ...@@ -194,7 +194,7 @@ ENTRY(mohawk_coherent_user_range)
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov r0, #0 mov r0, #0
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -214,7 +214,7 @@ ENTRY(mohawk_flush_kern_dcache_area) ...@@ -214,7 +214,7 @@ ENTRY(mohawk_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -240,7 +240,7 @@ mohawk_dma_inv_range: ...@@ -240,7 +240,7 @@ mohawk_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -259,7 +259,7 @@ mohawk_dma_clean_range: ...@@ -259,7 +259,7 @@ mohawk_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -277,7 +277,7 @@ ENTRY(mohawk_dma_flush_range) ...@@ -277,7 +277,7 @@ ENTRY(mohawk_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -300,7 +300,7 @@ ENDPROC(mohawk_dma_map_area) ...@@ -300,7 +300,7 @@ ENDPROC(mohawk_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(mohawk_dma_unmap_area) ENTRY(mohawk_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(mohawk_dma_unmap_area) ENDPROC(mohawk_dma_unmap_area)
.globl mohawk_flush_kern_cache_louis .globl mohawk_flush_kern_cache_louis
...@@ -315,7 +315,7 @@ ENTRY(cpu_mohawk_dcache_clean_area) ...@@ -315,7 +315,7 @@ ENTRY(cpu_mohawk_dcache_clean_area)
subs r1, r1, #CACHE_DLINESIZE subs r1, r1, #CACHE_DLINESIZE
bhi 1b bhi 1b
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
/* /*
* cpu_mohawk_switch_mm(pgd) * cpu_mohawk_switch_mm(pgd)
...@@ -333,7 +333,7 @@ ENTRY(cpu_mohawk_switch_mm) ...@@ -333,7 +333,7 @@ ENTRY(cpu_mohawk_switch_mm)
orr r0, r0, #0x18 @ cache the page table in L2 orr r0, r0, #0x18 @ cache the page table in L2
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
mov pc, lr ret lr
/* /*
* cpu_mohawk_set_pte_ext(ptep, pte, ext) * cpu_mohawk_set_pte_ext(ptep, pte, ext)
...@@ -346,7 +346,7 @@ ENTRY(cpu_mohawk_set_pte_ext) ...@@ -346,7 +346,7 @@ ENTRY(cpu_mohawk_set_pte_ext)
mov r0, r0 mov r0, r0
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
mov pc, lr ret lr
.globl cpu_mohawk_suspend_size .globl cpu_mohawk_suspend_size
.equ cpu_mohawk_suspend_size, 4 * 6 .equ cpu_mohawk_suspend_size, 4 * 6
...@@ -400,7 +400,7 @@ __mohawk_setup: ...@@ -400,7 +400,7 @@ __mohawk_setup:
mrc p15, 0, r0, c1, c0 @ get control register mrc p15, 0, r0, c1, c0 @ get control register
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __mohawk_setup, . - __mohawk_setup .size __mohawk_setup, . - __mohawk_setup
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
ENTRY(cpu_sa110_proc_init) ENTRY(cpu_sa110_proc_init)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c15, c1, 2 @ Enable clock switching mcr p15, 0, r0, c15, c1, 2 @ Enable clock switching
mov pc, lr ret lr
/* /*
* cpu_sa110_proc_fin() * cpu_sa110_proc_fin()
...@@ -50,7 +50,7 @@ ENTRY(cpu_sa110_proc_fin) ...@@ -50,7 +50,7 @@ ENTRY(cpu_sa110_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_sa110_reset(loc) * cpu_sa110_reset(loc)
...@@ -74,7 +74,7 @@ ENTRY(cpu_sa110_reset) ...@@ -74,7 +74,7 @@ ENTRY(cpu_sa110_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_sa110_reset) ENDPROC(cpu_sa110_reset)
.popsection .popsection
...@@ -103,7 +103,7 @@ ENTRY(cpu_sa110_do_idle) ...@@ -103,7 +103,7 @@ ENTRY(cpu_sa110_do_idle)
mov r0, r0 @ safety mov r0, r0 @ safety
mov r0, r0 @ safety mov r0, r0 @ safety
mcr p15, 0, r0, c15, c1, 2 @ enable clock switching mcr p15, 0, r0, c15, c1, 2 @ enable clock switching
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -121,7 +121,7 @@ ENTRY(cpu_sa110_dcache_clean_area) ...@@ -121,7 +121,7 @@ ENTRY(cpu_sa110_dcache_clean_area)
add r0, r0, #DCACHELINESIZE add r0, r0, #DCACHELINESIZE
subs r1, r1, #DCACHELINESIZE subs r1, r1, #DCACHELINESIZE
bhi 1b bhi 1b
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -141,7 +141,7 @@ ENTRY(cpu_sa110_switch_mm) ...@@ -141,7 +141,7 @@ ENTRY(cpu_sa110_switch_mm)
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
ldr pc, [sp], #4 ldr pc, [sp], #4
#else #else
mov pc, lr ret lr
#endif #endif
/* /*
...@@ -157,7 +157,7 @@ ENTRY(cpu_sa110_set_pte_ext) ...@@ -157,7 +157,7 @@ ENTRY(cpu_sa110_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif #endif
mov pc, lr ret lr
.type __sa110_setup, #function .type __sa110_setup, #function
__sa110_setup: __sa110_setup:
...@@ -173,7 +173,7 @@ __sa110_setup: ...@@ -173,7 +173,7 @@ __sa110_setup:
mrc p15, 0, r0, c1, c0 @ get control register v4 mrc p15, 0, r0, c1, c0 @ get control register v4
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __sa110_setup, . - __sa110_setup .size __sa110_setup, . - __sa110_setup
/* /*
......
...@@ -43,7 +43,7 @@ ENTRY(cpu_sa1100_proc_init) ...@@ -43,7 +43,7 @@ ENTRY(cpu_sa1100_proc_init)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c15, c1, 2 @ Enable clock switching mcr p15, 0, r0, c15, c1, 2 @ Enable clock switching
mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland
mov pc, lr ret lr
/* /*
* cpu_sa1100_proc_fin() * cpu_sa1100_proc_fin()
...@@ -58,7 +58,7 @@ ENTRY(cpu_sa1100_proc_fin) ...@@ -58,7 +58,7 @@ ENTRY(cpu_sa1100_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x000e @ ............wca. bic r0, r0, #0x000e @ ............wca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_sa1100_reset(loc) * cpu_sa1100_reset(loc)
...@@ -82,7 +82,7 @@ ENTRY(cpu_sa1100_reset) ...@@ -82,7 +82,7 @@ ENTRY(cpu_sa1100_reset)
bic ip, ip, #0x000f @ ............wcam bic ip, ip, #0x000f @ ............wcam
bic ip, ip, #0x1100 @ ...i...s........ bic ip, ip, #0x1100 @ ...i...s........
mcr p15, 0, ip, c1, c0, 0 @ ctrl register mcr p15, 0, ip, c1, c0, 0 @ ctrl register
mov pc, r0 ret r0
ENDPROC(cpu_sa1100_reset) ENDPROC(cpu_sa1100_reset)
.popsection .popsection
...@@ -113,7 +113,7 @@ ENTRY(cpu_sa1100_do_idle) ...@@ -113,7 +113,7 @@ ENTRY(cpu_sa1100_do_idle)
mcr p15, 0, r0, c15, c8, 2 @ wait for interrupt mcr p15, 0, r0, c15, c8, 2 @ wait for interrupt
mov r0, r0 @ safety mov r0, r0 @ safety
mcr p15, 0, r0, c15, c1, 2 @ enable clock switching mcr p15, 0, r0, c15, c1, 2 @ enable clock switching
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -131,7 +131,7 @@ ENTRY(cpu_sa1100_dcache_clean_area) ...@@ -131,7 +131,7 @@ ENTRY(cpu_sa1100_dcache_clean_area)
add r0, r0, #DCACHELINESIZE add r0, r0, #DCACHELINESIZE
subs r1, r1, #DCACHELINESIZE subs r1, r1, #DCACHELINESIZE
bhi 1b bhi 1b
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -152,7 +152,7 @@ ENTRY(cpu_sa1100_switch_mm) ...@@ -152,7 +152,7 @@ ENTRY(cpu_sa1100_switch_mm)
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
ldr pc, [sp], #4 ldr pc, [sp], #4
#else #else
mov pc, lr ret lr
#endif #endif
/* /*
...@@ -168,7 +168,7 @@ ENTRY(cpu_sa1100_set_pte_ext) ...@@ -168,7 +168,7 @@ ENTRY(cpu_sa1100_set_pte_ext)
mcr p15, 0, r0, c7, c10, 1 @ clean D entry mcr p15, 0, r0, c7, c10, 1 @ clean D entry
mcr p15, 0, r0, c7, c10, 4 @ drain WB mcr p15, 0, r0, c7, c10, 4 @ drain WB
#endif #endif
mov pc, lr ret lr
.globl cpu_sa1100_suspend_size .globl cpu_sa1100_suspend_size
.equ cpu_sa1100_suspend_size, 4 * 3 .equ cpu_sa1100_suspend_size, 4 * 3
...@@ -211,7 +211,7 @@ __sa1100_setup: ...@@ -211,7 +211,7 @@ __sa1100_setup:
mrc p15, 0, r0, c1, c0 @ get control register v4 mrc p15, 0, r0, c1, c0 @ get control register v4
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __sa1100_setup, . - __sa1100_setup .size __sa1100_setup, . - __sa1100_setup
/* /*
......
...@@ -36,14 +36,14 @@ ...@@ -36,14 +36,14 @@
#define PMD_FLAGS_SMP PMD_SECT_WBWA|PMD_SECT_S #define PMD_FLAGS_SMP PMD_SECT_WBWA|PMD_SECT_S
ENTRY(cpu_v6_proc_init) ENTRY(cpu_v6_proc_init)
mov pc, lr ret lr
ENTRY(cpu_v6_proc_fin) ENTRY(cpu_v6_proc_fin)
mrc p15, 0, r0, c1, c0, 0 @ ctrl register mrc p15, 0, r0, c1, c0, 0 @ ctrl register
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x0006 @ .............ca. bic r0, r0, #0x0006 @ .............ca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_v6_reset(loc) * cpu_v6_reset(loc)
...@@ -62,7 +62,7 @@ ENTRY(cpu_v6_reset) ...@@ -62,7 +62,7 @@ ENTRY(cpu_v6_reset)
mcr p15, 0, r1, c1, c0, 0 @ disable MMU mcr p15, 0, r1, c1, c0, 0 @ disable MMU
mov r1, #0 mov r1, #0
mcr p15, 0, r1, c7, c5, 4 @ ISB mcr p15, 0, r1, c7, c5, 4 @ ISB
mov pc, r0 ret r0
ENDPROC(cpu_v6_reset) ENDPROC(cpu_v6_reset)
.popsection .popsection
...@@ -77,14 +77,14 @@ ENTRY(cpu_v6_do_idle) ...@@ -77,14 +77,14 @@ ENTRY(cpu_v6_do_idle)
mov r1, #0 mov r1, #0
mcr p15, 0, r1, c7, c10, 4 @ DWB - WFI may enter a low-power mode mcr p15, 0, r1, c7, c10, 4 @ DWB - WFI may enter a low-power mode
mcr p15, 0, r1, c7, c0, 4 @ wait for interrupt mcr p15, 0, r1, c7, c0, 4 @ wait for interrupt
mov pc, lr ret lr
ENTRY(cpu_v6_dcache_clean_area) ENTRY(cpu_v6_dcache_clean_area)
1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry
add r0, r0, #D_CACHE_LINE_SIZE add r0, r0, #D_CACHE_LINE_SIZE
subs r1, r1, #D_CACHE_LINE_SIZE subs r1, r1, #D_CACHE_LINE_SIZE
bhi 1b bhi 1b
mov pc, lr ret lr
/* /*
* cpu_v6_switch_mm(pgd_phys, tsk) * cpu_v6_switch_mm(pgd_phys, tsk)
...@@ -113,7 +113,7 @@ ENTRY(cpu_v6_switch_mm) ...@@ -113,7 +113,7 @@ ENTRY(cpu_v6_switch_mm)
#endif #endif
mcr p15, 0, r1, c13, c0, 1 @ set context ID mcr p15, 0, r1, c13, c0, 1 @ set context ID
#endif #endif
mov pc, lr ret lr
/* /*
* cpu_v6_set_pte_ext(ptep, pte, ext) * cpu_v6_set_pte_ext(ptep, pte, ext)
...@@ -131,7 +131,7 @@ ENTRY(cpu_v6_set_pte_ext) ...@@ -131,7 +131,7 @@ ENTRY(cpu_v6_set_pte_ext)
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
armv6_set_pte_ext cpu_v6 armv6_set_pte_ext cpu_v6
#endif #endif
mov pc, lr ret lr
/* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ /* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */
.globl cpu_v6_suspend_size .globl cpu_v6_suspend_size
...@@ -241,7 +241,7 @@ __v6_setup: ...@@ -241,7 +241,7 @@ __v6_setup:
mcreq p15, 0, r5, c1, c0, 1 @ write aux control reg mcreq p15, 0, r5, c1, c0, 1 @ write aux control reg
orreq r0, r0, #(1 << 21) @ low interrupt latency configuration orreq r0, r0, #(1 << 21) @ low interrupt latency configuration
#endif #endif
mov pc, lr @ return to head.S:__ret ret lr @ return to head.S:__ret
/* /*
* V X F I D LR * V X F I D LR
......
...@@ -59,7 +59,7 @@ ENTRY(cpu_v7_switch_mm) ...@@ -59,7 +59,7 @@ ENTRY(cpu_v7_switch_mm)
mcr p15, 0, r0, c2, c0, 0 @ set TTB 0 mcr p15, 0, r0, c2, c0, 0 @ set TTB 0
isb isb
#endif #endif
mov pc, lr bx lr
ENDPROC(cpu_v7_switch_mm) ENDPROC(cpu_v7_switch_mm)
/* /*
...@@ -106,7 +106,7 @@ ENTRY(cpu_v7_set_pte_ext) ...@@ -106,7 +106,7 @@ ENTRY(cpu_v7_set_pte_ext)
ALT_SMP(W(nop)) ALT_SMP(W(nop))
ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte
#endif #endif
mov pc, lr bx lr
ENDPROC(cpu_v7_set_pte_ext) ENDPROC(cpu_v7_set_pte_ext)
/* /*
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <asm/assembler.h>
#define TTB_IRGN_NC (0 << 8) #define TTB_IRGN_NC (0 << 8)
#define TTB_IRGN_WBWA (1 << 8) #define TTB_IRGN_WBWA (1 << 8)
...@@ -61,7 +62,7 @@ ENTRY(cpu_v7_switch_mm) ...@@ -61,7 +62,7 @@ ENTRY(cpu_v7_switch_mm)
mcrr p15, 0, rpgdl, rpgdh, c2 @ set TTB 0 mcrr p15, 0, rpgdl, rpgdh, c2 @ set TTB 0
isb isb
#endif #endif
mov pc, lr ret lr
ENDPROC(cpu_v7_switch_mm) ENDPROC(cpu_v7_switch_mm)
#ifdef __ARMEB__ #ifdef __ARMEB__
...@@ -92,7 +93,7 @@ ENTRY(cpu_v7_set_pte_ext) ...@@ -92,7 +93,7 @@ ENTRY(cpu_v7_set_pte_ext)
ALT_SMP(W(nop)) ALT_SMP(W(nop))
ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte ALT_UP (mcr p15, 0, r0, c7, c10, 1) @ flush_pte
#endif #endif
mov pc, lr ret lr
ENDPROC(cpu_v7_set_pte_ext) ENDPROC(cpu_v7_set_pte_ext)
/* /*
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#endif #endif
ENTRY(cpu_v7_proc_init) ENTRY(cpu_v7_proc_init)
mov pc, lr ret lr
ENDPROC(cpu_v7_proc_init) ENDPROC(cpu_v7_proc_init)
ENTRY(cpu_v7_proc_fin) ENTRY(cpu_v7_proc_fin)
...@@ -34,7 +34,7 @@ ENTRY(cpu_v7_proc_fin) ...@@ -34,7 +34,7 @@ ENTRY(cpu_v7_proc_fin)
bic r0, r0, #0x1000 @ ...i............ bic r0, r0, #0x1000 @ ...i............
bic r0, r0, #0x0006 @ .............ca. bic r0, r0, #0x0006 @ .............ca.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
ENDPROC(cpu_v7_proc_fin) ENDPROC(cpu_v7_proc_fin)
/* /*
...@@ -71,20 +71,20 @@ ENDPROC(cpu_v7_reset) ...@@ -71,20 +71,20 @@ ENDPROC(cpu_v7_reset)
ENTRY(cpu_v7_do_idle) ENTRY(cpu_v7_do_idle)
dsb @ WFI may enter a low-power mode dsb @ WFI may enter a low-power mode
wfi wfi
mov pc, lr ret lr
ENDPROC(cpu_v7_do_idle) ENDPROC(cpu_v7_do_idle)
ENTRY(cpu_v7_dcache_clean_area) ENTRY(cpu_v7_dcache_clean_area)
ALT_SMP(W(nop)) @ MP extensions imply L1 PTW ALT_SMP(W(nop)) @ MP extensions imply L1 PTW
ALT_UP_B(1f) ALT_UP_B(1f)
mov pc, lr ret lr
1: dcache_line_size r2, r3 1: dcache_line_size r2, r3
2: mcr p15, 0, r0, c7, c10, 1 @ clean D entry 2: mcr p15, 0, r0, c7, c10, 1 @ clean D entry
add r0, r0, r2 add r0, r0, r2
subs r1, r1, r2 subs r1, r1, r2
bhi 2b bhi 2b
dsb ishst dsb ishst
mov pc, lr ret lr
ENDPROC(cpu_v7_dcache_clean_area) ENDPROC(cpu_v7_dcache_clean_area)
string cpu_v7_name, "ARMv7 Processor" string cpu_v7_name, "ARMv7 Processor"
...@@ -163,7 +163,7 @@ ENTRY(cpu_pj4b_do_idle) ...@@ -163,7 +163,7 @@ ENTRY(cpu_pj4b_do_idle)
dsb @ WFI may enter a low-power mode dsb @ WFI may enter a low-power mode
wfi wfi
dsb @barrier dsb @barrier
mov pc, lr ret lr
ENDPROC(cpu_pj4b_do_idle) ENDPROC(cpu_pj4b_do_idle)
#else #else
globl_equ cpu_pj4b_do_idle, cpu_v7_do_idle globl_equ cpu_pj4b_do_idle, cpu_v7_do_idle
...@@ -407,7 +407,7 @@ __v7_setup: ...@@ -407,7 +407,7 @@ __v7_setup:
bic r0, r0, r5 @ clear bits them bic r0, r0, r5 @ clear bits them
orr r0, r0, r6 @ set them orr r0, r0, r6 @ set them
THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions
mov pc, lr @ return to head.S:__ret ret lr @ return to head.S:__ret
ENDPROC(__v7_setup) ENDPROC(__v7_setup)
.align 2 .align 2
......
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
#include "proc-macros.S" #include "proc-macros.S"
ENTRY(cpu_v7m_proc_init) ENTRY(cpu_v7m_proc_init)
mov pc, lr ret lr
ENDPROC(cpu_v7m_proc_init) ENDPROC(cpu_v7m_proc_init)
ENTRY(cpu_v7m_proc_fin) ENTRY(cpu_v7m_proc_fin)
mov pc, lr ret lr
ENDPROC(cpu_v7m_proc_fin) ENDPROC(cpu_v7m_proc_fin)
/* /*
...@@ -34,7 +34,7 @@ ENDPROC(cpu_v7m_proc_fin) ...@@ -34,7 +34,7 @@ ENDPROC(cpu_v7m_proc_fin)
*/ */
.align 5 .align 5
ENTRY(cpu_v7m_reset) ENTRY(cpu_v7m_reset)
mov pc, r0 ret r0
ENDPROC(cpu_v7m_reset) ENDPROC(cpu_v7m_reset)
/* /*
...@@ -46,18 +46,18 @@ ENDPROC(cpu_v7m_reset) ...@@ -46,18 +46,18 @@ ENDPROC(cpu_v7m_reset)
*/ */
ENTRY(cpu_v7m_do_idle) ENTRY(cpu_v7m_do_idle)
wfi wfi
mov pc, lr ret lr
ENDPROC(cpu_v7m_do_idle) ENDPROC(cpu_v7m_do_idle)
ENTRY(cpu_v7m_dcache_clean_area) ENTRY(cpu_v7m_dcache_clean_area)
mov pc, lr ret lr
ENDPROC(cpu_v7m_dcache_clean_area) ENDPROC(cpu_v7m_dcache_clean_area)
/* /*
* There is no MMU, so here is nothing to do. * There is no MMU, so here is nothing to do.
*/ */
ENTRY(cpu_v7m_switch_mm) ENTRY(cpu_v7m_switch_mm)
mov pc, lr ret lr
ENDPROC(cpu_v7m_switch_mm) ENDPROC(cpu_v7m_switch_mm)
.globl cpu_v7m_suspend_size .globl cpu_v7m_suspend_size
...@@ -65,11 +65,11 @@ ENDPROC(cpu_v7m_switch_mm) ...@@ -65,11 +65,11 @@ ENDPROC(cpu_v7m_switch_mm)
#ifdef CONFIG_ARM_CPU_SUSPEND #ifdef CONFIG_ARM_CPU_SUSPEND
ENTRY(cpu_v7m_do_suspend) ENTRY(cpu_v7m_do_suspend)
mov pc, lr ret lr
ENDPROC(cpu_v7m_do_suspend) ENDPROC(cpu_v7m_do_suspend)
ENTRY(cpu_v7m_do_resume) ENTRY(cpu_v7m_do_resume)
mov pc, lr ret lr
ENDPROC(cpu_v7m_do_resume) ENDPROC(cpu_v7m_do_resume)
#endif #endif
...@@ -120,7 +120,7 @@ __v7m_setup: ...@@ -120,7 +120,7 @@ __v7m_setup:
ldr r12, [r0, V7M_SCB_CCR] @ system control register ldr r12, [r0, V7M_SCB_CCR] @ system control register
orr r12, #V7M_SCB_CCR_STKALIGN orr r12, #V7M_SCB_CCR_STKALIGN
str r12, [r0, V7M_SCB_CCR] str r12, [r0, V7M_SCB_CCR]
mov pc, lr ret lr
ENDPROC(__v7m_setup) ENDPROC(__v7m_setup)
.align 2 .align 2
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
* Nothing too exciting at the moment * Nothing too exciting at the moment
*/ */
ENTRY(cpu_xsc3_proc_init) ENTRY(cpu_xsc3_proc_init)
mov pc, lr ret lr
/* /*
* cpu_xsc3_proc_fin() * cpu_xsc3_proc_fin()
...@@ -93,7 +93,7 @@ ENTRY(cpu_xsc3_proc_fin) ...@@ -93,7 +93,7 @@ ENTRY(cpu_xsc3_proc_fin)
bic r0, r0, #0x1800 @ ...IZ........... bic r0, r0, #0x1800 @ ...IZ...........
bic r0, r0, #0x0006 @ .............CA. bic r0, r0, #0x0006 @ .............CA.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_xsc3_reset(loc) * cpu_xsc3_reset(loc)
...@@ -119,7 +119,7 @@ ENTRY(cpu_xsc3_reset) ...@@ -119,7 +119,7 @@ ENTRY(cpu_xsc3_reset)
@ CAUTION: MMU turned off from this point. We count on the pipeline @ CAUTION: MMU turned off from this point. We count on the pipeline
@ already containing those two last instructions to survive. @ already containing those two last instructions to survive.
mcr p15, 0, ip, c8, c7, 0 @ invalidate I and D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I and D TLBs
mov pc, r0 ret r0
ENDPROC(cpu_xsc3_reset) ENDPROC(cpu_xsc3_reset)
.popsection .popsection
...@@ -138,7 +138,7 @@ ENDPROC(cpu_xsc3_reset) ...@@ -138,7 +138,7 @@ ENDPROC(cpu_xsc3_reset)
ENTRY(cpu_xsc3_do_idle) ENTRY(cpu_xsc3_do_idle)
mov r0, #1 mov r0, #1
mcr p14, 0, r0, c7, c0, 0 @ go to idle mcr p14, 0, r0, c7, c0, 0 @ go to idle
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -150,7 +150,7 @@ ENTRY(cpu_xsc3_do_idle) ...@@ -150,7 +150,7 @@ ENTRY(cpu_xsc3_do_idle)
ENTRY(xsc3_flush_icache_all) ENTRY(xsc3_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(xsc3_flush_icache_all) ENDPROC(xsc3_flush_icache_all)
/* /*
...@@ -176,7 +176,7 @@ __flush_whole_cache: ...@@ -176,7 +176,7 @@ __flush_whole_cache:
mcrne p15, 0, ip, c7, c5, 0 @ invalidate L1 I cache and BTB mcrne p15, 0, ip, c7, c5, 0 @ invalidate L1 I cache and BTB
mcrne p15, 0, ip, c7, c10, 4 @ data write barrier mcrne p15, 0, ip, c7, c10, 4 @ data write barrier
mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, vm_flags) * flush_user_cache_range(start, end, vm_flags)
...@@ -205,7 +205,7 @@ ENTRY(xsc3_flush_user_cache_range) ...@@ -205,7 +205,7 @@ ENTRY(xsc3_flush_user_cache_range)
mcrne p15, 0, ip, c7, c5, 6 @ invalidate BTB mcrne p15, 0, ip, c7, c5, 6 @ invalidate BTB
mcrne p15, 0, ip, c7, c10, 4 @ data write barrier mcrne p15, 0, ip, c7, c10, 4 @ data write barrier
mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush mcrne p15, 0, ip, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -232,7 +232,7 @@ ENTRY(xsc3_coherent_user_range) ...@@ -232,7 +232,7 @@ ENTRY(xsc3_coherent_user_range)
mcr p15, 0, r0, c7, c5, 0 @ invalidate L1 I cache and BTB mcr p15, 0, r0, c7, c5, 0 @ invalidate L1 I cache and BTB
mcr p15, 0, r0, c7, c10, 4 @ data write barrier mcr p15, 0, r0, c7, c10, 4 @ data write barrier
mcr p15, 0, r0, c7, c5, 4 @ prefetch flush mcr p15, 0, r0, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -253,7 +253,7 @@ ENTRY(xsc3_flush_kern_dcache_area) ...@@ -253,7 +253,7 @@ ENTRY(xsc3_flush_kern_dcache_area)
mcr p15, 0, r0, c7, c5, 0 @ invalidate L1 I cache and BTB mcr p15, 0, r0, c7, c5, 0 @ invalidate L1 I cache and BTB
mcr p15, 0, r0, c7, c10, 4 @ data write barrier mcr p15, 0, r0, c7, c10, 4 @ data write barrier
mcr p15, 0, r0, c7, c5, 4 @ prefetch flush mcr p15, 0, r0, c7, c5, 4 @ prefetch flush
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -277,7 +277,7 @@ xsc3_dma_inv_range: ...@@ -277,7 +277,7 @@ xsc3_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ data write barrier mcr p15, 0, r0, c7, c10, 4 @ data write barrier
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -294,7 +294,7 @@ xsc3_dma_clean_range: ...@@ -294,7 +294,7 @@ xsc3_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ data write barrier mcr p15, 0, r0, c7, c10, 4 @ data write barrier
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -311,7 +311,7 @@ ENTRY(xsc3_dma_flush_range) ...@@ -311,7 +311,7 @@ ENTRY(xsc3_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ data write barrier mcr p15, 0, r0, c7, c10, 4 @ data write barrier
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -334,7 +334,7 @@ ENDPROC(xsc3_dma_map_area) ...@@ -334,7 +334,7 @@ ENDPROC(xsc3_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(xsc3_dma_unmap_area) ENTRY(xsc3_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(xsc3_dma_unmap_area) ENDPROC(xsc3_dma_unmap_area)
.globl xsc3_flush_kern_cache_louis .globl xsc3_flush_kern_cache_louis
...@@ -348,7 +348,7 @@ ENTRY(cpu_xsc3_dcache_clean_area) ...@@ -348,7 +348,7 @@ ENTRY(cpu_xsc3_dcache_clean_area)
add r0, r0, #CACHELINESIZE add r0, r0, #CACHELINESIZE
subs r1, r1, #CACHELINESIZE subs r1, r1, #CACHELINESIZE
bhi 1b bhi 1b
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -406,7 +406,7 @@ ENTRY(cpu_xsc3_set_pte_ext) ...@@ -406,7 +406,7 @@ ENTRY(cpu_xsc3_set_pte_ext)
orr r2, r2, ip orr r2, r2, ip
xscale_set_pte_ext_epilogue xscale_set_pte_ext_epilogue
mov pc, lr ret lr
.ltorg .ltorg
.align .align
...@@ -478,7 +478,7 @@ __xsc3_setup: ...@@ -478,7 +478,7 @@ __xsc3_setup:
bic r0, r0, r5 @ ..V. ..R. .... ..A. bic r0, r0, r5 @ ..V. ..R. .... ..A.
orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu) orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu)
@ ...I Z..S .... .... (uc) @ ...I Z..S .... .... (uc)
mov pc, lr ret lr
.size __xsc3_setup, . - __xsc3_setup .size __xsc3_setup, . - __xsc3_setup
......
...@@ -118,7 +118,7 @@ ENTRY(cpu_xscale_proc_init) ...@@ -118,7 +118,7 @@ ENTRY(cpu_xscale_proc_init)
mrc p15, 0, r1, c1, c0, 1 mrc p15, 0, r1, c1, c0, 1
bic r1, r1, #1 bic r1, r1, #1
mcr p15, 0, r1, c1, c0, 1 mcr p15, 0, r1, c1, c0, 1
mov pc, lr ret lr
/* /*
* cpu_xscale_proc_fin() * cpu_xscale_proc_fin()
...@@ -128,7 +128,7 @@ ENTRY(cpu_xscale_proc_fin) ...@@ -128,7 +128,7 @@ ENTRY(cpu_xscale_proc_fin)
bic r0, r0, #0x1800 @ ...IZ........... bic r0, r0, #0x1800 @ ...IZ...........
bic r0, r0, #0x0006 @ .............CA. bic r0, r0, #0x0006 @ .............CA.
mcr p15, 0, r0, c1, c0, 0 @ disable caches mcr p15, 0, r0, c1, c0, 0 @ disable caches
mov pc, lr ret lr
/* /*
* cpu_xscale_reset(loc) * cpu_xscale_reset(loc)
...@@ -160,7 +160,7 @@ ENTRY(cpu_xscale_reset) ...@@ -160,7 +160,7 @@ ENTRY(cpu_xscale_reset)
@ CAUTION: MMU turned off from this point. We count on the pipeline @ CAUTION: MMU turned off from this point. We count on the pipeline
@ already containing those two last instructions to survive. @ already containing those two last instructions to survive.
mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
mov pc, r0 ret r0
ENDPROC(cpu_xscale_reset) ENDPROC(cpu_xscale_reset)
.popsection .popsection
...@@ -179,7 +179,7 @@ ENDPROC(cpu_xscale_reset) ...@@ -179,7 +179,7 @@ ENDPROC(cpu_xscale_reset)
ENTRY(cpu_xscale_do_idle) ENTRY(cpu_xscale_do_idle)
mov r0, #1 mov r0, #1
mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE
mov pc, lr ret lr
/* ================================= CACHE ================================ */ /* ================================= CACHE ================================ */
...@@ -191,7 +191,7 @@ ENTRY(cpu_xscale_do_idle) ...@@ -191,7 +191,7 @@ ENTRY(cpu_xscale_do_idle)
ENTRY(xscale_flush_icache_all) ENTRY(xscale_flush_icache_all)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mov pc, lr ret lr
ENDPROC(xscale_flush_icache_all) ENDPROC(xscale_flush_icache_all)
/* /*
...@@ -216,7 +216,7 @@ __flush_whole_cache: ...@@ -216,7 +216,7 @@ __flush_whole_cache:
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 0 @ Invalidate I cache & BTB mcrne p15, 0, ip, c7, c5, 0 @ Invalidate I cache & BTB
mcrne p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer mcrne p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* flush_user_cache_range(start, end, vm_flags) * flush_user_cache_range(start, end, vm_flags)
...@@ -245,7 +245,7 @@ ENTRY(xscale_flush_user_cache_range) ...@@ -245,7 +245,7 @@ ENTRY(xscale_flush_user_cache_range)
tst r2, #VM_EXEC tst r2, #VM_EXEC
mcrne p15, 0, ip, c7, c5, 6 @ Invalidate BTB mcrne p15, 0, ip, c7, c5, 6 @ Invalidate BTB
mcrne p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer mcrne p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* coherent_kern_range(start, end) * coherent_kern_range(start, end)
...@@ -269,7 +269,7 @@ ENTRY(xscale_coherent_kern_range) ...@@ -269,7 +269,7 @@ ENTRY(xscale_coherent_kern_range)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ Invalidate I cache & BTB mcr p15, 0, r0, c7, c5, 0 @ Invalidate I cache & BTB
mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* coherent_user_range(start, end) * coherent_user_range(start, end)
...@@ -291,7 +291,7 @@ ENTRY(xscale_coherent_user_range) ...@@ -291,7 +291,7 @@ ENTRY(xscale_coherent_user_range)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 6 @ Invalidate BTB mcr p15, 0, r0, c7, c5, 6 @ Invalidate BTB
mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* flush_kern_dcache_area(void *addr, size_t size) * flush_kern_dcache_area(void *addr, size_t size)
...@@ -312,7 +312,7 @@ ENTRY(xscale_flush_kern_dcache_area) ...@@ -312,7 +312,7 @@ ENTRY(xscale_flush_kern_dcache_area)
mov r0, #0 mov r0, #0
mcr p15, 0, r0, c7, c5, 0 @ Invalidate I cache & BTB mcr p15, 0, r0, c7, c5, 0 @ Invalidate I cache & BTB
mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* dma_inv_range(start, end) * dma_inv_range(start, end)
...@@ -336,7 +336,7 @@ xscale_dma_inv_range: ...@@ -336,7 +336,7 @@ xscale_dma_inv_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* dma_clean_range(start, end) * dma_clean_range(start, end)
...@@ -353,7 +353,7 @@ xscale_dma_clean_range: ...@@ -353,7 +353,7 @@ xscale_dma_clean_range:
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* dma_flush_range(start, end) * dma_flush_range(start, end)
...@@ -371,7 +371,7 @@ ENTRY(xscale_dma_flush_range) ...@@ -371,7 +371,7 @@ ENTRY(xscale_dma_flush_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, r0, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov pc, lr ret lr
/* /*
* dma_map_area(start, size, dir) * dma_map_area(start, size, dir)
...@@ -407,7 +407,7 @@ ENDPROC(xscale_80200_A0_A1_dma_map_area) ...@@ -407,7 +407,7 @@ ENDPROC(xscale_80200_A0_A1_dma_map_area)
* - dir - DMA direction * - dir - DMA direction
*/ */
ENTRY(xscale_dma_unmap_area) ENTRY(xscale_dma_unmap_area)
mov pc, lr ret lr
ENDPROC(xscale_dma_unmap_area) ENDPROC(xscale_dma_unmap_area)
.globl xscale_flush_kern_cache_louis .globl xscale_flush_kern_cache_louis
...@@ -458,7 +458,7 @@ ENTRY(cpu_xscale_dcache_clean_area) ...@@ -458,7 +458,7 @@ ENTRY(cpu_xscale_dcache_clean_area)
add r0, r0, #CACHELINESIZE add r0, r0, #CACHELINESIZE
subs r1, r1, #CACHELINESIZE subs r1, r1, #CACHELINESIZE
bhi 1b bhi 1b
mov pc, lr ret lr
/* =============================== PageTable ============================== */ /* =============================== PageTable ============================== */
...@@ -521,7 +521,7 @@ ENTRY(cpu_xscale_set_pte_ext) ...@@ -521,7 +521,7 @@ ENTRY(cpu_xscale_set_pte_ext)
orr r2, r2, ip orr r2, r2, ip
xscale_set_pte_ext_epilogue xscale_set_pte_ext_epilogue
mov pc, lr ret lr
.ltorg .ltorg
.align .align
...@@ -572,7 +572,7 @@ __xscale_setup: ...@@ -572,7 +572,7 @@ __xscale_setup:
mrc p15, 0, r0, c1, c0, 0 @ get control register mrc p15, 0, r0, c1, c0, 0 @ get control register
bic r0, r0, r5 bic r0, r0, r5
orr r0, r0, r6 orr r0, r0, r6
mov pc, lr ret lr
.size __xscale_setup, . - __xscale_setup .size __xscale_setup, . - __xscale_setup
/* /*
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -37,7 +38,7 @@ ENTRY(fa_flush_user_tlb_range) ...@@ -37,7 +38,7 @@ ENTRY(fa_flush_user_tlb_range)
vma_vm_mm ip, r2 vma_vm_mm ip, r2
act_mm r3 @ get current->active_mm act_mm r3 @ get current->active_mm
eors r3, ip, r3 @ == mm ? eors r3, ip, r3 @ == mm ?
movne pc, lr @ no, we dont do anything retne lr @ no, we dont do anything
mov r3, #0 mov r3, #0
mcr p15, 0, r3, c7, c10, 4 @ drain WB mcr p15, 0, r3, c7, c10, 4 @ drain WB
bic r0, r0, #0x0ff bic r0, r0, #0x0ff
...@@ -47,7 +48,7 @@ ENTRY(fa_flush_user_tlb_range) ...@@ -47,7 +48,7 @@ ENTRY(fa_flush_user_tlb_range)
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mcr p15, 0, r3, c7, c10, 4 @ data write barrier mcr p15, 0, r3, c7, c10, 4 @ data write barrier
mov pc, lr ret lr
ENTRY(fa_flush_kern_tlb_range) ENTRY(fa_flush_kern_tlb_range)
...@@ -61,7 +62,7 @@ ENTRY(fa_flush_kern_tlb_range) ...@@ -61,7 +62,7 @@ ENTRY(fa_flush_kern_tlb_range)
blo 1b blo 1b
mcr p15, 0, r3, c7, c10, 4 @ data write barrier mcr p15, 0, r3, c7, c10, 4 @ data write barrier
mcr p15, 0, r3, c7, c5, 4 @ prefetch flush (isb) mcr p15, 0, r3, c7, c5, 4 @ prefetch flush (isb)
mov pc, lr ret lr
__INITDATA __INITDATA
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -33,7 +34,7 @@ ENTRY(v4_flush_user_tlb_range) ...@@ -33,7 +34,7 @@ ENTRY(v4_flush_user_tlb_range)
vma_vm_mm ip, r2 vma_vm_mm ip, r2
act_mm r3 @ get current->active_mm act_mm r3 @ get current->active_mm
eors r3, ip, r3 @ == mm ? eors r3, ip, r3 @ == mm ?
movne pc, lr @ no, we dont do anything retne lr @ no, we dont do anything
.v4_flush_kern_tlb_range: .v4_flush_kern_tlb_range:
bic r0, r0, #0x0ff bic r0, r0, #0x0ff
bic r0, r0, #0xf00 bic r0, r0, #0xf00
...@@ -41,7 +42,7 @@ ENTRY(v4_flush_user_tlb_range) ...@@ -41,7 +42,7 @@ ENTRY(v4_flush_user_tlb_range)
add r0, r0, #PAGE_SZ add r0, r0, #PAGE_SZ
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
/* /*
* v4_flush_kern_tlb_range(start, end) * v4_flush_kern_tlb_range(start, end)
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -33,7 +34,7 @@ ENTRY(v4wb_flush_user_tlb_range) ...@@ -33,7 +34,7 @@ ENTRY(v4wb_flush_user_tlb_range)
vma_vm_mm ip, r2 vma_vm_mm ip, r2
act_mm r3 @ get current->active_mm act_mm r3 @ get current->active_mm
eors r3, ip, r3 @ == mm ? eors r3, ip, r3 @ == mm ?
movne pc, lr @ no, we dont do anything retne lr @ no, we dont do anything
vma_vm_flags r2, r2 vma_vm_flags r2, r2
mcr p15, 0, r3, c7, c10, 4 @ drain WB mcr p15, 0, r3, c7, c10, 4 @ drain WB
tst r2, #VM_EXEC tst r2, #VM_EXEC
...@@ -44,7 +45,7 @@ ENTRY(v4wb_flush_user_tlb_range) ...@@ -44,7 +45,7 @@ ENTRY(v4wb_flush_user_tlb_range)
add r0, r0, #PAGE_SZ add r0, r0, #PAGE_SZ
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
/* /*
* v4_flush_kern_tlb_range(start, end) * v4_flush_kern_tlb_range(start, end)
...@@ -65,7 +66,7 @@ ENTRY(v4wb_flush_kern_tlb_range) ...@@ -65,7 +66,7 @@ ENTRY(v4wb_flush_kern_tlb_range)
add r0, r0, #PAGE_SZ add r0, r0, #PAGE_SZ
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
__INITDATA __INITDATA
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include "proc-macros.S" #include "proc-macros.S"
...@@ -32,7 +33,7 @@ ENTRY(v4wbi_flush_user_tlb_range) ...@@ -32,7 +33,7 @@ ENTRY(v4wbi_flush_user_tlb_range)
vma_vm_mm ip, r2 vma_vm_mm ip, r2
act_mm r3 @ get current->active_mm act_mm r3 @ get current->active_mm
eors r3, ip, r3 @ == mm ? eors r3, ip, r3 @ == mm ?
movne pc, lr @ no, we dont do anything retne lr @ no, we dont do anything
mov r3, #0 mov r3, #0
mcr p15, 0, r3, c7, c10, 4 @ drain WB mcr p15, 0, r3, c7, c10, 4 @ drain WB
vma_vm_flags r2, r2 vma_vm_flags r2, r2
...@@ -44,7 +45,7 @@ ENTRY(v4wbi_flush_user_tlb_range) ...@@ -44,7 +45,7 @@ ENTRY(v4wbi_flush_user_tlb_range)
add r0, r0, #PAGE_SZ add r0, r0, #PAGE_SZ
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
ENTRY(v4wbi_flush_kern_tlb_range) ENTRY(v4wbi_flush_kern_tlb_range)
mov r3, #0 mov r3, #0
...@@ -56,7 +57,7 @@ ENTRY(v4wbi_flush_kern_tlb_range) ...@@ -56,7 +57,7 @@ ENTRY(v4wbi_flush_kern_tlb_range)
add r0, r0, #PAGE_SZ add r0, r0, #PAGE_SZ
cmp r0, r1 cmp r0, r1
blo 1b blo 1b
mov pc, lr ret lr
__INITDATA __INITDATA
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment