Path: blob/master/drivers/firmware/efi/libstub/zboot-header.S
26483 views
/* SPDX-License-Identifier: GPL-2.0 */12#include <linux/pe.h>34#ifdef CONFIG_64BIT5.set .Lextra_characteristics, 0x06.set .Lpe_opt_magic, IMAGE_NT_OPTIONAL_HDR64_MAGIC7#else8.set .Lextra_characteristics, IMAGE_FILE_32BIT_MACHINE9.set .Lpe_opt_magic, IMAGE_NT_OPTIONAL_HDR32_MAGIC10#endif1112.section ".head", "a"13.globl __efistub_efi_zboot_header14__efistub_efi_zboot_header:15.Ldoshdr:16.long IMAGE_DOS_SIGNATURE17.ascii "zimg" // image type18.long __efistub__gzdata_start - .Ldoshdr // payload offset19.long __efistub__gzdata_size - ZBOOT_SIZE_LEN // payload size20.long 0, 0 // reserved21.asciz COMP_TYPE // compression type22.org .Ldoshdr + 0x3823.long LINUX_PE_MAGIC24.long .Lpehdr - .Ldoshdr // PE header offset2526.Lpehdr:27.long IMAGE_NT_SIGNATURE28.short MACHINE_TYPE29.short .Lsection_count30.long 031.long 032.long 033.short .Lsection_table - .Loptional_header34.short IMAGE_FILE_DEBUG_STRIPPED | \35IMAGE_FILE_EXECUTABLE_IMAGE | \36IMAGE_FILE_LINE_NUMS_STRIPPED |\37.Lextra_characteristics3839.Loptional_header:40.short .Lpe_opt_magic41.byte 0, 042.long _etext - .Lefi_header_end43.long __data_size44.long 045.long __efistub_efi_zboot_entry - .Ldoshdr46.long .Lefi_header_end - .Ldoshdr4748#ifdef CONFIG_64BIT49.quad 050#else51.long _etext - .Ldoshdr, 0x052#endif53.long 409654.long 51255.short 0, 056.short LINUX_EFISTUB_MAJOR_VERSION // MajorImageVersion57.short LINUX_EFISTUB_MINOR_VERSION // MinorImageVersion58.short 0, 059.long 060.long _end - .Ldoshdr6162.long .Lefi_header_end - .Ldoshdr63.long 064.short IMAGE_SUBSYSTEM_EFI_APPLICATION65.short IMAGE_DLLCHARACTERISTICS_NX_COMPAT66#ifdef CONFIG_64BIT67.quad 0, 0, 0, 068#else69.long 0, 0, 0, 070#endif71.long 072.long (.Lsection_table - .) / 87374.quad 0 // ExportTable75.quad 0 // ImportTable76.quad 0 // ResourceTable77.quad 0 // ExceptionTable78.quad 0 // CertificationTable79.quad 0 // BaseRelocationTable80#if defined(PE_DLL_CHAR_EX) || defined(CONFIG_DEBUG_EFI)81.long .Lefi_debug_table - .Ldoshdr // DebugTable82.long .Lefi_debug_table_size8384.section ".rodata", "a"85.p2align 286.Lefi_debug_table:87// EFI_IMAGE_DEBUG_DIRECTORY_ENTRY[]88#ifdef PE_DLL_CHAR_EX89.long 0 // Characteristics90.long 0 // TimeDateStamp91.short 0 // MajorVersion92.short 0 // MinorVersion93.long IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS // Type94.long 4 // SizeOfData95.long 0 // RVA96.long .Lefi_dll_characteristics_ex - .Ldoshdr // FileOffset97#endif98#ifdef CONFIG_DEBUG_EFI99.long 0 // Characteristics100.long 0 // TimeDateStamp101.short 0 // MajorVersion102.short 0 // MinorVersion103.long IMAGE_DEBUG_TYPE_CODEVIEW // Type104.long .Lefi_debug_entry_size // SizeOfData105.long 0 // RVA106.long .Lefi_debug_entry - .Ldoshdr // FileOffset107#endif108.set .Lefi_debug_table_size, . - .Lefi_debug_table109.previous110#endif111112.Lsection_table:113.ascii ".text\0\0\0"114.long _etext - .Lefi_header_end115.long .Lefi_header_end - .Ldoshdr116.long _etext - .Lefi_header_end117.long .Lefi_header_end - .Ldoshdr118119.long 0, 0120.short 0, 0121.long IMAGE_SCN_CNT_CODE | \122IMAGE_SCN_MEM_READ | \123IMAGE_SCN_MEM_EXECUTE124125#ifdef CONFIG_EFI_SBAT126.ascii ".sbat\0\0\0"127.long __sbat_size128.long _sbat - .Ldoshdr129.long __sbat_size130.long _sbat - .Ldoshdr131132.long 0, 0133.short 0, 0134.long IMAGE_SCN_CNT_INITIALIZED_DATA | \135IMAGE_SCN_MEM_READ | \136IMAGE_SCN_MEM_DISCARDABLE137138.pushsection ".sbat", "a", @progbits139.incbin CONFIG_EFI_SBAT_FILE140.popsection141#endif142143.ascii ".data\0\0\0"144.long __data_size145.long _data - .Ldoshdr146.long __data_rawsize147.long _data - .Ldoshdr148149.long 0, 0150.short 0, 0151.long IMAGE_SCN_CNT_INITIALIZED_DATA | \152IMAGE_SCN_MEM_READ | \153IMAGE_SCN_MEM_WRITE154155.set .Lsection_count, (. - .Lsection_table) / 40156157#ifdef PE_DLL_CHAR_EX158.Lefi_dll_characteristics_ex:159.long PE_DLL_CHAR_EX160#endif161#ifdef CONFIG_DEBUG_EFI162.Lefi_debug_entry:163// EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY164.ascii "NB10" // Signature165.long 0 // Unknown166.long 0 // Unknown2167.long 0 // Unknown3168169.asciz ZBOOT_EFI_PATH170171.set .Lefi_debug_entry_size, . - .Lefi_debug_entry172#endif173174.p2align 12175.Lefi_header_end:176177178179