| * relocate_kernel.S - put the kernel image in place to boot |
| #include <linux/linkage.h> |
| #include <asm/assembler.h> |
| .align 3 /* not needed for this code, but keeps fncpy() happy */ |
| ENTRY(relocate_new_kernel) |
| ldr r0,kexec_indirection_page |
| ldr r1,kexec_start_address |
| * If there is no indirection page (we are doing crashdumps) |
| 0: /* top, read another word for the indirection page */ |
| /* Is it a destination page. Put destination address to r4 */ |
| /* Is it an indirection page */ |
| /* Jump to relocated kernel */ |
| .globl kexec_start_address |
| .globl kexec_indirection_page |
| /* phy addr of the atags for the new kernel */ |
| ENDPROC(relocate_new_kernel) |
| .globl relocate_new_kernel_size |
| relocate_new_kernel_size: |
| .long relocate_new_kernel_end - relocate_new_kernel |