We should use predefined constants instead of magic numbers.

Move some constant definitions from include/pe.h to
include/asm-generic/pe.h.

Use these constants in crt0_*_efi.S.

Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 arch/arm/lib/crt0_aarch64_efi.S |  9 ++++-----
 arch/arm/lib/crt0_arm_efi.S     |  9 ++++-----
 arch/riscv/lib/crt0_riscv_efi.S | 11 +++++------
 include/asm-generic/pe.h        | 16 ++++++++++++++++
 include/pe.h                    | 15 ---------------
 5 files changed, 29 insertions(+), 31 deletions(-)

diff --git a/arch/arm/lib/crt0_aarch64_efi.S b/arch/arm/lib/crt0_aarch64_efi.S
index cb205fa30a..368933ecf2 100644
--- a/arch/arm/lib/crt0_aarch64_efi.S
+++ b/arch/arm/lib/crt0_aarch64_efi.S
@@ -17,14 +17,13 @@
         */
        .globl  ImageBase
 ImageBase:
-       .ascii  "MZ"
+       .short  IMAGE_DOS_SIGNATURE             /* 'MZ' */
        .skip   58                              /* 'MZ' + pad + offset == 64 */
        .long   pe_header - ImageBase           /* Offset to the PE header */
 pe_header:
-       .ascii  "PE"
-       .short  0
+       .long   IMAGE_NT_SIGNATURE              /* 'PE' */
 coff_header:
-       .short  0xaa64                          /* AArch64 */
+       .short  IMAGE_FILE_MACHINE_ARM64        /* AArch64 */
        .short  2                               /* nr_sections */
        .long   0                               /* TimeDateStamp */
        .long   0                               /* PointerToSymbolTable */
@@ -36,7 +35,7 @@ coff_header:
                 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
                 IMAGE_FILE_DEBUG_STRIPPED)
 optional_header:
-       .short  0x20b                           /* PE32+ format */
+       .short  IMAGE_NT_OPTIONAL_HDR64_MAGIC   /* PE32+ format */
        .byte   0x02                            /* MajorLinkerVersion */
        .byte   0x14                            /* MinorLinkerVersion */
        .long   _edata - _start                 /* SizeOfCode */
diff --git a/arch/arm/lib/crt0_arm_efi.S b/arch/arm/lib/crt0_arm_efi.S
index 5470e2ff0e..cc8a115f31 100644
--- a/arch/arm/lib/crt0_arm_efi.S
+++ b/arch/arm/lib/crt0_arm_efi.S
@@ -16,14 +16,13 @@
         */
        .globl  image_base
 image_base:
-       .ascii  "MZ"
+       .short  IMAGE_DOS_SIGNATURE             /* 'MZ' */
        .skip   58                              /* 'MZ' + pad + offset == 64 */
        .long   pe_header - image_base          /* Offset to the PE header */
 pe_header:
-       .ascii  "PE"
-       .short  0
+       .long   IMAGE_NT_SIGNATURE              /* 'PE' */
 coff_header:
-       .short  0x1c2                           /* Mixed ARM/Thumb */
+       .short  IMAGE_FILE_MACHINE_THUMB        /* Mixed ARM/Thumb */
        .short  2                               /* nr_sections */
        .long   0                               /* TimeDateStamp */
        .long   0                               /* PointerToSymbolTable */
@@ -36,7 +35,7 @@ coff_header:
                 IMAGE_FILE_32BIT_MACHINE | \
                 IMAGE_FILE_DEBUG_STRIPPED)
 optional_header:
-       .short  0x10b                           /* PE32 format */
+       .short  IMAGE_NT_OPTIONAL_HDR32_MAGIC   /* PE32 format */
        .byte   0x02                            /* MajorLinkerVersion */
        .byte   0x14                            /* MinorLinkerVersion */
        .long   _edata - _start                 /* SizeOfCode */
diff --git a/arch/riscv/lib/crt0_riscv_efi.S b/arch/riscv/lib/crt0_riscv_efi.S
index b7b5329e1f..87fe1e56f9 100644
--- a/arch/riscv/lib/crt0_riscv_efi.S
+++ b/arch/riscv/lib/crt0_riscv_efi.S
@@ -14,12 +14,12 @@
 #define SIZE_LONG      8
 #define SAVE_LONG(reg, idx)    sd      reg, (idx*SIZE_LONG)(sp)
 #define LOAD_LONG(reg, idx)    ld      reg, (idx*SIZE_LONG)(sp)
-#define PE_MACHINE     0x5064
+#define PE_MACHINE     IMAGE_FILE_MACHINE_RISCV64
 #else
 #define SIZE_LONG      4
 #define SAVE_LONG(reg, idx)    sw      reg, (idx*SIZE_LONG)(sp)
 #define LOAD_LONG(reg, idx)    lw      reg, (idx*SIZE_LONG)(sp)
-#define PE_MACHINE     0x5032
+#define PE_MACHINE     IMAGE_FILE_MACHINE_RISCV32
 #endif


@@ -30,12 +30,11 @@
         */
        .globl  ImageBase
 ImageBase:
-       .ascii  "MZ"
+       .short  IMAGE_DOS_SIGNATURE             /* 'MZ' */
        .skip   58                              /* 'MZ' + pad + offset == 64 */
        .long   pe_header - ImageBase           /* Offset to the PE header */
 pe_header:
-       .ascii  "PE"
-       .short  0
+       .long   IMAGE_NT_SIGNATURE              /* 'PE' */
 coff_header:
        .short  PE_MACHINE                      /* RISC-V 64/32-bit */
        .short  2                               /* nr_sections */
@@ -49,7 +48,7 @@ coff_header:
                 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
                 IMAGE_FILE_DEBUG_STRIPPED)
 optional_header:
-       .short  0x20b                           /* PE32+ format */
+       .short  IMAGE_NT_OPTIONAL_HDR64_MAGIC   /* PE32+ format */
        .byte   0x02                            /* MajorLinkerVersion */
        .byte   0x14                            /* MinorLinkerVersion */
        .long   _edata - _start                 /* SizeOfCode */
diff --git a/include/asm-generic/pe.h b/include/asm-generic/pe.h
index faae534e37..b247519a3d 100644
--- a/include/asm-generic/pe.h
+++ b/include/asm-generic/pe.h
@@ -29,6 +29,22 @@
 #define IMAGE_FILE_UP_SYSTEM_ONLY              0x4000
 #define IMAGE_FILE_BYTES_REVERSED_HI           0x8000

+/* Machine types */
+#define IMAGE_FILE_MACHINE_I386                        0x014c
+#define IMAGE_FILE_MACHINE_ARM                 0x01c0
+#define IMAGE_FILE_MACHINE_THUMB               0x01c2
+#define IMAGE_FILE_MACHINE_ARMNT               0x01c4
+#define IMAGE_FILE_MACHINE_AMD64               0x8664
+#define IMAGE_FILE_MACHINE_ARM64               0xaa64
+#define IMAGE_FILE_MACHINE_RISCV32             0x5032
+#define IMAGE_FILE_MACHINE_RISCV64             0x5064
+
+/* Header magic constants */
+#define IMAGE_NT_OPTIONAL_HDR32_MAGIC          0x010b
+#define IMAGE_NT_OPTIONAL_HDR64_MAGIC          0x020b
+#define IMAGE_DOS_SIGNATURE                    0x5a4d     /* MZ   */
+#define IMAGE_NT_SIGNATURE                     0x00004550 /* PE00 */
+
 /* Subsystem type */
 #define IMAGE_SUBSYSTEM_EFI_APPLICATION                10
 #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER        11
diff --git a/include/pe.h b/include/pe.h
index c7aeb2dcb6..bff3b0aa7a 100644
--- a/include/pe.h
+++ b/include/pe.h
@@ -34,21 +34,6 @@ typedef struct _IMAGE_DOS_HEADER {
        uint32_t e_lfanew;      /* 3c: Offset to extended header */
 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

-#define IMAGE_DOS_SIGNATURE            0x5A4D     /* MZ   */
-#define IMAGE_NT_SIGNATURE             0x00004550 /* PE00 */
-
-#define IMAGE_FILE_MACHINE_I386                0x014c
-#define IMAGE_FILE_MACHINE_ARM         0x01c0
-#define IMAGE_FILE_MACHINE_THUMB       0x01c2
-#define IMAGE_FILE_MACHINE_ARMNT       0x01c4
-#define IMAGE_FILE_MACHINE_AMD64       0x8664
-#define IMAGE_FILE_MACHINE_ARM64       0xaa64
-#define IMAGE_FILE_MACHINE_RISCV32     0x5032
-#define IMAGE_FILE_MACHINE_RISCV64     0x5064
-
-#define IMAGE_NT_OPTIONAL_HDR32_MAGIC  0x10b
-#define IMAGE_NT_OPTIONAL_HDR64_MAGIC  0x20b
-
 typedef struct _IMAGE_FILE_HEADER {
        uint16_t Machine;
        uint16_t NumberOfSections;
--
2.20.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to