2 * linux/arch/arm/boot/compressed/head-ftvpci.S
4 * Copyright (C) 2000 FutureTV Labs Ltd.
6 * Special startup code for FTV PCI board.
9 .section ".start", #alloc, #execinstr
11 mcr p15, 0, r0, c7, c5, 0 @ flush I cache
12 mrc p15, 0, r0, c1, c0
14 mcr p15, 0, r0, c1, c0 @ enable I cache
16 mcreq p15, 0, r0, c15, c1, 2 @ enable clock switching
18 /* check to see if the kernel must be relocated */
22 beq 2f @ no need to copy
24 /* in the wrong place -> presumably, executing out of ROM */
25 sub ip, ip, sl @ displacement
26 ldr lr, =_start @ destination
27 sub sp, lr, ip @ source
28 ldr fp, =_edata @ end of copied area
29 1: ldmia sp!, {r0, r1, r2, r3, r4, r5, r6, r10}
30 stmia lr!, {r0, r1, r2, r3, r4, r5, r6, r10}
40 /* fall back into head.S */