From: tip-bot for Ard Biesheuvel <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
tglx@linutronix.de, peterz@infradead.org, hpa@zytor.com,
torvalds@linux-foundation.org, matt@codeblueprint.co.uk,
ard.biesheuvel@linaro.org
Subject: [tip:efi/core] arm/efi: Replace open coded constants with symbolic ones
Date: Mon, 21 Aug 2017 02:19:00 -0700 [thread overview]
Message-ID: <tip-609eaf0748a5b9dccf3810a2b822a0559f33c0b2@git.kernel.org> (raw)
In-Reply-To: <20170818194947.19347-11-ard.biesheuvel@linaro.org>
Commit-ID: 609eaf0748a5b9dccf3810a2b822a0559f33c0b2
Gitweb: http://git.kernel.org/tip/609eaf0748a5b9dccf3810a2b822a0559f33c0b2
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
AuthorDate: Fri, 18 Aug 2017 20:49:43 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 21 Aug 2017 09:43:50 +0200
arm/efi: Replace open coded constants with symbolic ones
Replace the various open coded constants in the EFI PE/COFF header with
definitions from pe.h, or expressions based on local symbols.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-11-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
| 128 ++++++++++++++++++----------------
1 file changed, 67 insertions(+), 61 deletions(-)
--git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index 309d619..542e1ad 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2015 Linaro Ltd
+ * Copyright (C) 2013-2017 Linaro Ltd
* Authors: Roy Franz <roy.franz@linaro.org>
* Ard Biesheuvel <ard.biesheuvel@linaro.org>
*
@@ -8,6 +8,9 @@
* published by the Free Software Foundation.
*/
+#include <linux/pe.h>
+#include <linux/sizes.h>
+
.macro __nop
#ifdef CONFIG_EFI_STUB
@ This is almost but not quite a NOP, since it does clobber the
@@ -15,7 +18,7 @@
@ PE/COFF expects the magic string "MZ" at offset 0, while the
@ ARM/Linux boot protocol expects an executable instruction
@ there.
- .inst 'M' | ('Z' << 8) | (0x1310 << 16) @ tstne r0, #0x4d000
+ .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000
#else
AR_CLASS( mov r0, r0 )
M_CLASS( nop.w )
@@ -34,78 +37,81 @@
@ The only 2 fields of the MSDOS header that are used are this
@ PE/COFF offset, and the "MZ" bytes at offset 0x0.
@
- .long pe_header - start @ Offset to the PE header.
+ .long pe_header - start @ Offset to the PE header.
pe_header:
- .ascii "PE\0\0"
+ .long PE_MAGIC
coff_header:
- .short 0x01c2 @ ARM or Thumb
- .short 1 @ nr_sections
- .long 0 @ TimeDateStamp
- .long 0 @ PointerToSymbolTable
- .long 0 @ NumberOfSymbols
- .short section_table - optional_header
- @ SizeOfOptionalHeader
- .short 0x306 @ Characteristics.
- @ IMAGE_FILE_32BIT_MACHINE |
- @ IMAGE_FILE_DEBUG_STRIPPED |
- @ IMAGE_FILE_EXECUTABLE_IMAGE |
- @ IMAGE_FILE_LINE_NUMS_STRIPPED
+ .short IMAGE_FILE_MACHINE_THUMB @ Machine
+ .short section_count @ NumberOfSections
+ .long 0 @ TimeDateStamp
+ .long 0 @ PointerToSymbolTable
+ .long 0 @ NumberOfSymbols
+ .short section_table - optional_header @ SizeOfOptionalHeader
+ .short IMAGE_FILE_32BIT_MACHINE | \
+ IMAGE_FILE_DEBUG_STRIPPED | \
+ IMAGE_FILE_EXECUTABLE_IMAGE | \
+ IMAGE_FILE_LINE_NUMS_STRIPPED @ Characteristics
optional_header:
- .short 0x10b @ PE32 format
- .byte 0x02 @ MajorLinkerVersion
- .byte 0x14 @ MinorLinkerVersion
- .long _end - __efi_start @ SizeOfCode
- .long 0 @ SizeOfInitializedData
- .long 0 @ SizeOfUninitializedData
- .long efi_stub_entry - start @ AddressOfEntryPoint
- .long start_offset @ BaseOfCode
- .long 0 @ data
+ .short PE_OPT_MAGIC_PE32 @ PE32 format
+ .byte 0x02 @ MajorLinkerVersion
+ .byte 0x14 @ MinorLinkerVersion
+ .long _end - __efi_start @ SizeOfCode
+ .long 0 @ SizeOfInitializedData
+ .long 0 @ SizeOfUninitializedData
+ .long efi_stub_entry - start @ AddressOfEntryPoint
+ .long start_offset @ BaseOfCode
+ .long 0 @ BaseOfData
extra_header_fields:
- .long 0 @ ImageBase
- .long 0x200 @ SectionAlignment
- .long 0x200 @ FileAlignment
- .short 0 @ MajorOperatingSystemVersion
- .short 0 @ MinorOperatingSystemVersion
- .short 0 @ MajorImageVersion
- .short 0 @ MinorImageVersion
- .short 0 @ MajorSubsystemVersion
- .short 0 @ MinorSubsystemVersion
- .long 0 @ Win32VersionValue
+ .long 0 @ ImageBase
+ .long SZ_512 @ SectionAlignment
+ .long SZ_512 @ FileAlignment
+ .short 0 @ MajorOsVersion
+ .short 0 @ MinorOsVersion
+ .short 0 @ MajorImageVersion
+ .short 0 @ MinorImageVersion
+ .short 0 @ MajorSubsystemVersion
+ .short 0 @ MinorSubsystemVersion
+ .long 0 @ Win32VersionValue
- .long _end - start @ SizeOfImage
- .long start_offset @ SizeOfHeaders
- .long 0 @ CheckSum
- .short 0xa @ Subsystem (EFI application)
- .short 0 @ DllCharacteristics
- .long 0 @ SizeOfStackReserve
- .long 0 @ SizeOfStackCommit
- .long 0 @ SizeOfHeapReserve
- .long 0 @ SizeOfHeapCommit
- .long 0 @ LoaderFlags
- .long 0x6 @ NumberOfRvaAndSizes
+ .long _end - start @ SizeOfImage
+ .long start_offset @ SizeOfHeaders
+ .long 0 @ CheckSum
+ .short IMAGE_SUBSYSTEM_EFI_APPLICATION @ Subsystem
+ .short 0 @ DllCharacteristics
+ .long 0 @ SizeOfStackReserve
+ .long 0 @ SizeOfStackCommit
+ .long 0 @ SizeOfHeapReserve
+ .long 0 @ SizeOfHeapCommit
+ .long 0 @ LoaderFlags
+ .long (section_table - .) / 8 @ NumberOfRvaAndSizes
- .quad 0 @ ExportTable
- .quad 0 @ ImportTable
- .quad 0 @ ResourceTable
- .quad 0 @ ExceptionTable
- .quad 0 @ CertificationTable
- .quad 0 @ BaseRelocationTable
+ .quad 0 @ ExportTable
+ .quad 0 @ ImportTable
+ .quad 0 @ ResourceTable
+ .quad 0 @ ExceptionTable
+ .quad 0 @ CertificationTable
+ .quad 0 @ BaseRelocationTable
section_table:
.ascii ".text\0\0\0"
- .long _end - __efi_start @ VirtualSize
- .long __efi_start @ VirtualAddress
- .long _edata - __efi_start @ SizeOfRawData
- .long __efi_start @ PointerToRawData
- .long 0 @ PointerToRelocations
- .long 0 @ PointerToLineNumbers
- .short 0 @ NumberOfRelocations
- .short 0 @ NumberOfLineNumbers
- .long 0xe0000020 @ Characteristics
+ .long _end - __efi_start @ VirtualSize
+ .long __efi_start @ VirtualAddress
+ .long _edata - __efi_start @ SizeOfRawData
+ .long __efi_start @ PointerToRawData
+ .long 0 @ PointerToRelocations
+ .long 0 @ PointerToLineNumbers
+ .short 0 @ NumberOfRelocations
+ .short 0 @ NumberOfLineNumbers
+ .long IMAGE_SCN_CNT_CODE | \
+ IMAGE_SCN_MEM_READ | \
+ IMAGE_SCN_MEM_WRITE | \
+ IMAGE_SCN_MEM_EXECUTE @ Characteristics
+
+ .set section_count, (. - section_table) / 40
.align 9
__efi_start:
next prev parent reply other threads:[~2017-08-21 9:23 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-18 19:49 [GIT PULL 00/14] EFI changes for v4.14 Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 01/14] efi: arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP Ard Biesheuvel
2017-08-21 9:15 ` [tip:efi/core] efi/arm: " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 02/14] efi/libstub: arm64: use hidden attribute for struct screen_info reference Ard Biesheuvel
2017-08-21 9:15 ` [tip:efi/core] efi/libstub/arm64: Use " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 03/14] efi/libstub: arm64: force 'hidden' visibility for section markers Ard Biesheuvel
2017-08-21 9:16 ` [tip:efi/core] efi/libstub/arm64: Force " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 04/14] efi/libstub: arm64: set -fpie when building the EFI stub Ard Biesheuvel
2017-08-21 9:16 ` [tip:efi/core] efi/libstub/arm64: Set " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 05/14] efi: arm/arm64: Add missing assignment of efi.config_table Ard Biesheuvel
2017-08-21 9:17 ` [tip:efi/core] efi/arm/arm64: " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 06/14] efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns Ard Biesheuvel
2017-08-21 9:17 ` [tip:efi/core] " tip-bot for Hans de Goede
2017-08-18 19:49 ` [PATCH 07/14] drivers/fbdev: efifb: allow BAR to be moved instead of claiming it Ard Biesheuvel
2017-08-21 9:17 ` [tip:efi/core] drivers/fbdev/efifb: Allow " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 08/14] arm: efi: remove forbidden values from the PE/COFF header Ard Biesheuvel
2017-08-21 9:18 ` [tip:efi/core] arm/efi: Remove " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 09/14] arm: efi: remove pointless dummy .reloc section Ard Biesheuvel
2017-08-21 9:18 ` [tip:efi/core] arm/efi: Remove " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 10/14] arm: efi: replace open coded constants with symbolic ones Ard Biesheuvel
2017-08-21 9:19 ` tip-bot for Ard Biesheuvel [this message]
2017-08-18 19:49 ` [PATCH 11/14] arm: efi: split zImage code and data into separate PE/COFF sections Ard Biesheuvel
2017-08-21 9:19 ` [tip:efi/core] arm/efi: Split " tip-bot for Ard Biesheuvel
2017-08-18 19:49 ` [PATCH 12/14] firmware: dcdbas: constify attribute_group structures Ard Biesheuvel
2017-08-21 9:19 ` [tip:efi/core] firmware/dcdbas: Constify " tip-bot for Arvind Yadav
2017-08-18 19:49 ` [PATCH 13/14] firmware: efi: constify " Ard Biesheuvel
2017-08-21 9:20 ` [tip:efi/core] firmware/efi: Constify " tip-bot for Arvind Yadav
2017-08-18 19:49 ` [PATCH 14/14] firmware: efi: esrt: constify " Ard Biesheuvel
2017-08-21 9:20 ` [tip:efi/core] firmware/efi/esrt: Constify " tip-bot for Arvind Yadav
2017-08-21 9:34 ` [GIT PULL 00/14] EFI changes for v4.14 Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-609eaf0748a5b9dccf3810a2b822a0559f33c0b2@git.kernel.org \
--to=tipbot@zytor.com \
--cc=ard.biesheuvel@linaro.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=matt@codeblueprint.co.uk \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox