aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/purgatory/kexec-purgatory.S
diff options
context:
space:
mode:
authorGravatar Masahiro Yamada <masahiroy@kernel.org> 2022-06-26 07:34:37 +0900
committerGravatar Palmer Dabbelt <palmer@rivosinc.com> 2022-08-11 09:32:34 -0700
commitd8357e3bf8f7aabd98bf4dc2709ee877b741cefc (patch)
tree16d6f22c0f8ce1a87ab7aeacc3f520056190e987 /arch/riscv/purgatory/kexec-purgatory.S
parentriscv/purgatory: hard-code obj-y in Makefile (diff)
downloadlinux-d8357e3bf8f7aabd98bf4dc2709ee877b741cefc.tar.gz
linux-d8357e3bf8f7aabd98bf4dc2709ee877b741cefc.tar.bz2
linux-d8357e3bf8f7aabd98bf4dc2709ee877b741cefc.zip
riscv/purgatory: Omit use of bin2c
The .incbin assembler directive is much faster than bin2c + $(CC). Do similar refactoring as in commit 4c0f032d4963 ("s390/purgatory: Omit use of bin2c"). Please note the .quad directive matches to size_t in C (both 8 byte) because the purgatory is compiled only for the 64-bit kernel. (KEXEC_FILE depends on 64BIT). Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Link: https://lore.kernel.org/r/20220625223438.835408-2-masahiroy@kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'arch/riscv/purgatory/kexec-purgatory.S')
-rw-r--r--arch/riscv/purgatory/kexec-purgatory.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/riscv/purgatory/kexec-purgatory.S b/arch/riscv/purgatory/kexec-purgatory.S
new file mode 100644
index 000000000000..0e9188815718
--- /dev/null
+++ b/arch/riscv/purgatory/kexec-purgatory.S
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+ .section .rodata, "a"
+
+ .align 8
+kexec_purgatory:
+ .globl kexec_purgatory
+ .incbin "arch/riscv/purgatory/purgatory.ro"
+.Lkexec_purgatroy_end:
+
+ .align 8
+kexec_purgatory_size:
+ .globl kexec_purgatory_size
+ .quad .Lkexec_purgatroy_end - kexec_purgatory