1 /* SPDX-License-Identifier: GPL-2.0 */
6 .set .Lextra_characteristics, 0x0
7 .set .Lpe_opt_magic, PE_OPT_MAGIC_PE32PLUS
9 .set .Lextra_characteristics, IMAGE_FILE_32BIT_MACHINE
10 .set .Lpe_opt_magic, PE_OPT_MAGIC_PE32
14 .globl __efistub_efi_zboot_header
15 __efistub_efi_zboot_header:
18 .ascii "zimg" // image type
19 .long __efistub__gzdata_start - .Ldoshdr // payload offset
20 .long __efistub__gzdata_size - 12 // payload size
21 .long 0, 0 // reserved
22 .asciz COMP_TYPE // compression type
25 .long .Lpehdr - .Ldoshdr // PE header offset
30 .short .Lsection_count
34 .short .Lsection_table - .Loptional_header
35 .short IMAGE_FILE_DEBUG_STRIPPED | \
36 IMAGE_FILE_EXECUTABLE_IMAGE | \
37 IMAGE_FILE_LINE_NUMS_STRIPPED |\
38 .Lextra_characteristics
43 .long _etext - .Lefi_header_end
46 .long __efistub_efi_zboot_entry - .Ldoshdr
47 .long .Lefi_header_end - .Ldoshdr
52 .long _etext - .Ldoshdr, 0x0
57 .short LINUX_EFISTUB_MAJOR_VERSION // MajorImageVersion
58 .short LINUX_EFISTUB_MINOR_VERSION // MinorImageVersion
63 .long .Lefi_header_end - .Ldoshdr
65 .short IMAGE_SUBSYSTEM_EFI_APPLICATION
66 .short IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
73 .long (.Lsection_table - .) / 8
75 .quad 0 // ExportTable
76 .quad 0 // ImportTable
77 .quad 0 // ResourceTable
78 .quad 0 // ExceptionTable
79 .quad 0 // CertificationTable
80 .quad 0 // BaseRelocationTable
81 #ifdef CONFIG_DEBUG_EFI
82 .long .Lefi_debug_table - .Ldoshdr // DebugTable
83 .long .Lefi_debug_table_size
88 .long _etext - .Lefi_header_end
89 .long .Lefi_header_end - .Ldoshdr
90 .long _etext - .Lefi_header_end
91 .long .Lefi_header_end - .Ldoshdr
95 .long IMAGE_SCN_CNT_CODE | \
96 IMAGE_SCN_MEM_READ | \
101 .long _etext - .Ldoshdr
103 .long _etext - .Ldoshdr
107 .long IMAGE_SCN_CNT_INITIALIZED_DATA | \
108 IMAGE_SCN_MEM_READ | \
111 .set .Lsection_count, (. - .Lsection_table) / 40
113 #ifdef CONFIG_DEBUG_EFI
114 .section ".rodata", "a"
117 // EFI_IMAGE_DEBUG_DIRECTORY_ENTRY
118 .long 0 // Characteristics
119 .long 0 // TimeDateStamp
120 .short 0 // MajorVersion
121 .short 0 // MinorVersion
122 .long IMAGE_DEBUG_TYPE_CODEVIEW // Type
123 .long .Lefi_debug_entry_size // SizeOfData
125 .long .Lefi_debug_entry - .Ldoshdr // FileOffset
127 .set .Lefi_debug_table_size, . - .Lefi_debug_table
131 // EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY
132 .ascii "NB10" // Signature
137 .asciz ZBOOT_EFI_PATH
139 .set .Lefi_debug_entry_size, . - .Lefi_debug_entry