2 * relocate_kernel.S - put the kernel image in place to boot
7 .globl relocate_new_kernel
12 mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs
14 mrc p15, 0, ip, c1, c0, 0 @ ctrl register
15 bic ip, ip, #0x000f @ ............wcam
16 bic ip, ip, #0x1100 @ ...i...s........
17 mcr p15, 0, ip, c1, c0, 0 @ ctrl register
19 ldr r0,kexec_indirection_page
20 ldr r1,kexec_start_address
23 * If there is no indirection page (we are doing crashdumps)
24 * skip any relocation.
29 0: /* top, read another word for the indirection page */
32 /* Is it a destination page. Put destination address to r4 */
38 /* Is it an indirection page */
64 /* Jump to relocated kernel */
67 ldr r1,kexec_mach_type
68 ldr r2,kexec_boot_atags
73 .globl kexec_start_address
77 .globl kexec_indirection_page
78 kexec_indirection_page:
81 .globl kexec_mach_type
85 /* phy addr of the atags for the new kernel */
86 .globl kexec_boot_atags
90 relocate_new_kernel_end:
92 .globl relocate_new_kernel_size
93 relocate_new_kernel_size:
94 .long relocate_new_kernel_end - relocate_new_kernel