On 10/02/2018 04:16 PM, Bin Meng wrote: > Hi Heinrich, > > On Thu, Sep 27, 2018 at 1:51 AM Heinrich Schuchardt <[email protected]> > wrote: >> >> On 09/26/2018 08:03 AM, Bin Meng wrote: >>> Per Microsoft PE Format documentation [1], PointerToSymbolTable and >>> NumberOfSymbols should be zero for an image in the COFF file header. >>> Currently the COFF file header is hardcoded on ARM and these two >>> members are not zero. >>> >>> This updates the hardcoded structure to clear these two members, as >>> well as setting the flag IMAGE_FILE_LOCAL_SYMS_STRIPPED so that we >>> can generate compliant *.efi images. >>> >>> [1] https://docs.microsoft.com/zh-cn/windows/desktop/Debug/pe-format >>> >>> Signed-off-by: Bin Meng <[email protected]> >>> --- >>> >>> arch/arm/lib/crt0_aarch64_efi.S | 7 ++++--- >>> arch/arm/lib/crt0_arm_efi.S | 6 +++--- >>> 2 files changed, 7 insertions(+), 6 deletions(-) >>> >>> diff --git a/arch/arm/lib/crt0_aarch64_efi.S >>> b/arch/arm/lib/crt0_aarch64_efi.S >>> index 0db4360..a489d05 100644 >>> --- a/arch/arm/lib/crt0_aarch64_efi.S >>> +++ b/arch/arm/lib/crt0_aarch64_efi.S >>> @@ -28,13 +28,14 @@ coff_header: >>> .short 2 /* nr_sections */ >>> .long 0 /* TimeDateStamp */ >>> .long 0 /* PointerToSymbolTable */ >>> - .long 1 /* NumberOfSymbols */ >>> + .long 0 /* NumberOfSymbols */ >>> .short section_table - optional_header /* SizeOfOptionalHeader */ >>> /* >>> * Characteristics: IMAGE_FILE_DEBUG_STRIPPED | >>> - * IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_LINE_NUMS_STRIPPED >>> + * IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_LINE_NUMS_STRIPPED | >>> + * IMAGE_FILE_LOCAL_SYMS_STRIPPED >>> */ >>> - .short 0x206 >>> + .short 0x20e >> >> I think your code misses to set IMAGE_FILE_32BIT_MACHINE in dependence >> of the bitness of the system. >> > > Do you mean currently for aarch64 targets, U-Boot only supports > loading 32-bit EFI images?
I misread your patch. Sorry for the noise. > >> I would prefer if these constants were defined in asm-generic/pe.h: >> >> #define IMAGE_FILE_RELOCS_STRIPPED 0x0001 >> #define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 >> #define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 >> #define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 >> #define IMAGE_FILE_AGGRESSIVE_WS_TRIM 0x0010 >> #define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 >> /* Reserved 0x0040 */ >> #define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 >> #define IMAGE_FILE_32BIT_MACHINE 0x0100 >> #define IMAGE_FILE_DEBUG_STRIPPED 0x0200 >> #define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 >> #define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 >> #define IMAGE_FILE_SYSTEM 0x1000 >> #define IMAGE_FILE_DLL 0x2000 >> #define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 >> #define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 >> > > Will add these macros in v2. > > Regards, > Bin > _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

