]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
LoongArch: Add struct loongarch_image_header for kernel
authorYouling Tang <tangyouling@kylinos.cn>
Thu, 2 Oct 2025 14:39:07 +0000 (22:39 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Thu, 2 Oct 2025 14:39:07 +0000 (22:39 +0800)
Define a dedicated image header structure for LoongArch architecture to
standardize kernel loading in bootloaders (primarily for kexec_file).

This header includes critical metadata, such as PE/DOS signature, kernel
entry points, kernel image size and load address offset, etc.

Signed-off-by: Youling Tang <tangyouling@kylinos.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/include/asm/image.h [new file with mode: 0644]

diff --git a/arch/loongarch/include/asm/image.h b/arch/loongarch/include/asm/image.h
new file mode 100644 (file)
index 0000000..f2d7384
--- /dev/null
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * LoongArch binary image header for EFI(PE/COFF) format.
+ *
+ * Author: Youling Tang <tangyouling@kylinos.cn>
+ * Copyright (C) 2025 KylinSoft Corporation.
+ */
+
+#ifndef __ASM_IMAGE_H
+#define __ASM_IMAGE_H
+
+#ifndef __ASSEMBLER__
+
+/**
+ * struct loongarch_image_header
+ *
+ * @dos_sig: Optional PE format 'MZ' signature.
+ * @padding_1: Reserved.
+ * @kernel_entry: Kernel image entry pointer.
+ * @kernel_asize: An estimated size of the memory image size in LSB byte order.
+ * @text_offset: The image load offset in LSB byte order.
+ * @padding_2: Reserved.
+ * @pe_header: Optional offset to a PE format header.
+ **/
+
+struct loongarch_image_header {
+       uint8_t dos_sig[2];
+       uint16_t padding_1[3];
+       uint64_t kernel_entry;
+       uint64_t kernel_asize;
+       uint64_t text_offset;
+       uint32_t padding_2[7];
+       uint32_t pe_header;
+};
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* __ASM_IMAGE_H */