On 06.04.18 01:03, Heinrich Schuchardt wrote:
> On 04/06/2018 12:43 AM, Alexander Graf wrote:
>>
>>
>> On 05.04.18 23:28, Ivan Gorinov wrote:
>>> Check FileHeader.Machine to make sure the EFI executable image is built
>>> for the same architecture. For example, 32-bit U-Boot on x86 will print
>>> an error message instead of loading an x86_64 image and crashing.
>>>
>>> Signed-off-by: Ivan Gorinov <ivan.gori...@intel.com>
>>> ---
>>>  include/pe.h                      | 24 ++++++++++++++++++++++++
>>>  lib/efi_loader/efi_image_loader.c | 24 ++++++++++++------------
>>>  2 files changed, 36 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/include/pe.h b/include/pe.h
>>> index c3a19ce..0dc33f0 100644
>>> --- a/include/pe.h
>>> +++ b/include/pe.h
>>> @@ -38,11 +38,35 @@ typedef struct _IMAGE_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
>>> +
>>> +#if defined(CONFIG_ARM64)
>>> +#define TARGET_PE_MACHINE_TYPE IMAGE_FILE_MACHINE_ARM64
>>> +#elif defined(CONFIG_ARM)
>>> +#define TARGET_PE_MACHINE_TYPE IMAGE_FILE_MACHINE_THUMB
>>
>> Are you sure we always have thumb as machine type here? Aren't we
>> compatible with either ARM or THUMB?
> 
> The value 0x01c2 means ARM or THUMB
> It is used by Linux, GRUB, iPXE.

I'm not sure that's fully accurate. ARM means some old legacy one, but
ARMNT and THUMB can both be used, no?

  https://www.npmjs.com/package/binarycpu

What I'm trying to say is that a 1:1 matching might not be the only
thing we want.


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

Reply via email to