diff options
author | Geoff Levand <geoff@infradead.org> | 2016-09-21 18:14:25 +0000 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2016-09-29 09:36:56 +0200 |
commit | 522df5f7217fda01ece3f6ac3e9987b0320c2bb0 (patch) | |
tree | 5886c37cd98e07de434cddc6c8d90fa6d9f13c9f /purgatory/arch/arm64/entry.S | |
parent | 217bcc00c9309416a6c6cd0584196559d28a9259 (diff) |
arm64: Add arm64 kexec support
Add kexec reboot support for ARM64 platforms.
Signed-off-by: Geoff Levand <geoff@infradead.org>
Tested-By: Pratyush Anand <panand@redhat.com>
Tested-By: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'purgatory/arch/arm64/entry.S')
-rw-r--r-- | purgatory/arch/arm64/entry.S | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/purgatory/arch/arm64/entry.S b/purgatory/arch/arm64/entry.S new file mode 100644 index 0000000..adf16f4 --- /dev/null +++ b/purgatory/arch/arm64/entry.S @@ -0,0 +1,51 @@ +/* + * ARM64 purgatory. + */ + +.macro size, sym:req + .size \sym, . - \sym +.endm + +.text + +.globl purgatory_start +purgatory_start: + + adr x19, .Lstack + mov sp, x19 + + bl purgatory + + /* Start new image. */ + ldr x17, arm64_kernel_entry + ldr x0, arm64_dtb_addr + mov x1, xzr + mov x2, xzr + mov x3, xzr + br x17 + +size purgatory_start + +.ltorg + +.align 4 + .rept 256 + .quad 0 + .endr +.Lstack: + +.data + +.align 3 + +.globl arm64_kernel_entry +arm64_kernel_entry: + .quad 0 +size arm64_kernel_entry + +.globl arm64_dtb_addr +arm64_dtb_addr: + .quad 0 +size arm64_dtb_addr + +.end
\ No newline at end of file |