[PATCH V6 6/8] Add EFI stub for ARM

Leif Lindholm leif.lindholm at linaro.org
Wed Jan 15 06:47:00 EST 2014


On Tue, Jan 14, 2014 at 06:16:58PM -0800, Roy Franz wrote:
> >>> +      .align 3
> >>> +pe_header:
> >>> +       .ascii  "PE"
> >>> +       .short  0
> >>> +
> >>> +coff_header:
> >>> +       .short  0x01c2                          @ ARM or Thumb
> >>
> >> Could you explain why you are using 0x1c2 (Thumb) here and not 0x1c0 (ARM) ?
> >
> > Nope.  It should be 0x1c0.
> 
> OK, now I resolved the nagging feeling that I had already fixed
> this...   Right now, the EDK2 UEFI implementation
> requires the machine type for ARM to be "0x1c2".  I don't think that
> this is correct, but correcting this in EDK2 slipped through
> the cracks, but is now back on my todo list.

Nope, it should be 0x1c2.

0x1c0 is the COFF code for ARM only, which corresponds roughly with
OABI - which is not supported (and never will be) by the UEFI
specification.
0x1c2 means ARM or Thumb (Interworking), which is what we have.

The UEFI specification (correctly) neglects to even mention 0x1c0
and 0x1c4.

Do also note that the COFF information relates to the executable,
the stub. The rest of the kernel image is just a blob as far as UEFI
is concerned.

> I think that for now we should leave this as 0x1c2 so that the
> unpatched EDK2 builds will boot it, and some time after EDK2 is
> updated
> this can be changed.  I'll work on a patch for EDK2 and get the
> discussion going on that list to resolve this in EDK2.

No need.

/
    Leif



More information about the linux-arm-kernel mailing list