Skip to content

Commit 30ade4f

Browse files
tangyoulingchenhuacai
authored andcommitted
LoongArch: Add struct loongarch_image_header for kernel
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>
1 parent 5dcddd2 commit 30ade4f

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

arch/loongarch/include/asm/image.h

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
/*
3+
* LoongArch binary image header for EFI(PE/COFF) format.
4+
*
5+
* Author: Youling Tang <tangyouling@kylinos.cn>
6+
* Copyright (C) 2025 KylinSoft Corporation.
7+
*/
8+
9+
#ifndef __ASM_IMAGE_H
10+
#define __ASM_IMAGE_H
11+
12+
#ifndef __ASSEMBLER__
13+
14+
/**
15+
* struct loongarch_image_header
16+
*
17+
* @dos_sig: Optional PE format 'MZ' signature.
18+
* @padding_1: Reserved.
19+
* @kernel_entry: Kernel image entry pointer.
20+
* @kernel_asize: An estimated size of the memory image size in LSB byte order.
21+
* @text_offset: The image load offset in LSB byte order.
22+
* @padding_2: Reserved.
23+
* @pe_header: Optional offset to a PE format header.
24+
**/
25+
26+
struct loongarch_image_header {
27+
uint8_t dos_sig[2];
28+
uint16_t padding_1[3];
29+
uint64_t kernel_entry;
30+
uint64_t kernel_asize;
31+
uint64_t text_offset;
32+
uint32_t padding_2[7];
33+
uint32_t pe_header;
34+
};
35+
36+
#endif /* __ASSEMBLER__ */
37+
38+
#endif /* __ASM_IMAGE_H */

0 commit comments

Comments
 (0)