Commit f1eb542f authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Catalin Marinas

arm64: efi: replace open coded constants with symbolic ones

Replace open coded constants with symbolic ones throughout the
Image and the EFI headers. No binary level changes are intended.
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent effc7b02
...@@ -7,22 +7,24 @@ ...@@ -7,22 +7,24 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <linux/pe.h>
#include <linux/sizes.h>
.macro __EFI_PE_HEADER .macro __EFI_PE_HEADER
.ascii "PE" .long PE_MAGIC
.short 0
coff_header: coff_header:
.short 0xaa64 // AArch64 .short IMAGE_FILE_MACHINE_ARM64 // Machine
.short 1 // nr_sections .short section_count // NumberOfSections
.long 0 // TimeDateStamp .long 0 // TimeDateStamp
.long 0 // PointerToSymbolTable .long 0 // PointerToSymbolTable
.long 0 // NumberOfSymbols .long 0 // NumberOfSymbols
.short section_table - optional_header // SizeOfOptionalHeader .short section_table - optional_header // SizeOfOptionalHeader
.short 0x206 // Characteristics. .short IMAGE_FILE_DEBUG_STRIPPED | \
// IMAGE_FILE_DEBUG_STRIPPED | IMAGE_FILE_EXECUTABLE_IMAGE | \
// IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_LINE_NUMS_STRIPPED // Characteristics
// IMAGE_FILE_LINE_NUMS_STRIPPED
optional_header: optional_header:
.short 0x20b // PE32+ format .short PE_OPT_MAGIC_PE32PLUS // PE32+ format
.byte 0x02 // MajorLinkerVersion .byte 0x02 // MajorLinkerVersion
.byte 0x14 // MinorLinkerVersion .byte 0x14 // MinorLinkerVersion
.long _end - efi_header_end // SizeOfCode .long _end - efi_header_end // SizeOfCode
...@@ -33,7 +35,7 @@ optional_header: ...@@ -33,7 +35,7 @@ optional_header:
extra_header_fields: extra_header_fields:
.quad 0 // ImageBase .quad 0 // ImageBase
.long 0x1000 // SectionAlignment .long SZ_4K // SectionAlignment
.long PECOFF_FILE_ALIGNMENT // FileAlignment .long PECOFF_FILE_ALIGNMENT // FileAlignment
.short 0 // MajorOperatingSystemVersion .short 0 // MajorOperatingSystemVersion
.short 0 // MinorOperatingSystemVersion .short 0 // MinorOperatingSystemVersion
...@@ -48,7 +50,7 @@ extra_header_fields: ...@@ -48,7 +50,7 @@ extra_header_fields:
// Everything before the kernel image is considered part of the header // Everything before the kernel image is considered part of the header
.long efi_header_end - _head // SizeOfHeaders .long efi_header_end - _head // SizeOfHeaders
.long 0 // CheckSum .long 0 // CheckSum
.short 0xa // Subsystem (EFI application) .short IMAGE_SUBSYSTEM_EFI_APPLICATION // Subsystem
.short 0 // DllCharacteristics .short 0 // DllCharacteristics
.quad 0 // SizeOfStackReserve .quad 0 // SizeOfStackReserve
.quad 0 // SizeOfStackCommit .quad 0 // SizeOfStackCommit
...@@ -71,10 +73,7 @@ extra_header_fields: ...@@ -71,10 +73,7 @@ extra_header_fields:
// Section table // Section table
section_table: section_table:
.ascii ".text" .ascii ".text\0\0\0"
.byte 0
.byte 0
.byte 0 // end of 0 padding of section name
.long _end - efi_header_end // VirtualSize .long _end - efi_header_end // VirtualSize
.long efi_header_end - _head // VirtualAddress .long efi_header_end - _head // VirtualAddress
.long _edata - efi_header_end // SizeOfRawData .long _edata - efi_header_end // SizeOfRawData
...@@ -84,7 +83,12 @@ section_table: ...@@ -84,7 +83,12 @@ section_table:
.long 0 // PointerToLineNumbers .long 0 // PointerToLineNumbers
.short 0 // NumberOfRelocations .short 0 // NumberOfRelocations
.short 0 // NumberOfLineNumbers .short 0 // NumberOfLineNumbers
.long 0xe0000020 // Characteristics .long IMAGE_SCN_CNT_CODE | \
IMAGE_SCN_MEM_EXECUTE | \
IMAGE_SCN_MEM_READ | \
IMAGE_SCN_MEM_WRITE // Characteristics
.set section_count, (. - section_table) / 40
#ifdef CONFIG_DEBUG_EFI #ifdef CONFIG_DEBUG_EFI
/* /*
...@@ -106,7 +110,7 @@ efi_debug_table: ...@@ -106,7 +110,7 @@ efi_debug_table:
.long 0 // TimeDateStamp .long 0 // TimeDateStamp
.short 0 // MajorVersion .short 0 // MajorVersion
.short 0 // MinorVersion .short 0 // MinorVersion
.long 2 // Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW .long IMAGE_DEBUG_TYPE_CODEVIEW // Type
.long efi_debug_entry_size // SizeOfData .long efi_debug_entry_size // SizeOfData
.long 0 // RVA .long 0 // RVA
.long efi_debug_entry - _head // FileOffset .long efi_debug_entry - _head // FileOffset
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment