Message ID | 20160908195536.4452-1-lersek@redhat.com |
---|---|
State | Superseded |
Headers | show |
On 8 September 2016 at 20:55, Laszlo Ersek <lersek@redhat.com> wrote: > "EfiRom --dump" does not recognize the 0x8664 machine type: > >> EFI ROM header contents >> EFI Signature 0x0EF1 >> Compression Type 0x0001 (compressed) >> Machine type 0x8664 (unknown) >> Subsystem 0x000B (EFI boot service driver) >> EFI image offset 0x0050 (@0xF650) > > Add lookup strings for the remaining EFI_IMAGE_MACHINE_* numeric macros > that can be found in > "BaseTools/Source/C/Include/IndustryStandard/PeImage.h". > > Cc: Liming Gao <liming.gao@intel.com> > Cc: Yonghong Zhu <yonghong.zhu@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <lersek@redhat.com> > --- > BaseTools/Source/C/EfiRom/EfiRom.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/BaseTools/Source/C/EfiRom/EfiRom.h b/BaseTools/Source/C/EfiRom/EfiRom.h > index 1214700826de..461963b4a701 100644 > --- a/BaseTools/Source/C/EfiRom/EfiRom.h > +++ b/BaseTools/Source/C/EfiRom/EfiRom.h > @@ -117,6 +117,9 @@ static STRING_LOOKUP mMachineTypes[] = { > { EFI_IMAGE_MACHINE_IA32, "IA32" }, > { EFI_IMAGE_MACHINE_IA64, "IA64" }, > { EFI_IMAGE_MACHINE_EBC, "EBC" }, > + { EFI_IMAGE_MACHINE_X64, "X64" }, > + { EFI_IMAGE_MACHINE_ARMT, "ARMT" }, Just 'ARM', please? PE/COFF has multiple machine types for ARM, but EFI only uses this one for ARM (0x1c2) With that change, Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Thanks, Ard. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On 09/08/16 22:39, Ard Biesheuvel wrote: > On 8 September 2016 at 20:55, Laszlo Ersek <lersek@redhat.com> wrote: >> "EfiRom --dump" does not recognize the 0x8664 machine type: >> >>> EFI ROM header contents >>> EFI Signature 0x0EF1 >>> Compression Type 0x0001 (compressed) >>> Machine type 0x8664 (unknown) >>> Subsystem 0x000B (EFI boot service driver) >>> EFI image offset 0x0050 (@0xF650) >> >> Add lookup strings for the remaining EFI_IMAGE_MACHINE_* numeric macros >> that can be found in >> "BaseTools/Source/C/Include/IndustryStandard/PeImage.h". >> >> Cc: Liming Gao <liming.gao@intel.com> >> Cc: Yonghong Zhu <yonghong.zhu@intel.com> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Laszlo Ersek <lersek@redhat.com> >> --- >> BaseTools/Source/C/EfiRom/EfiRom.h | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/BaseTools/Source/C/EfiRom/EfiRom.h b/BaseTools/Source/C/EfiRom/EfiRom.h >> index 1214700826de..461963b4a701 100644 >> --- a/BaseTools/Source/C/EfiRom/EfiRom.h >> +++ b/BaseTools/Source/C/EfiRom/EfiRom.h >> @@ -117,6 +117,9 @@ static STRING_LOOKUP mMachineTypes[] = { >> { EFI_IMAGE_MACHINE_IA32, "IA32" }, >> { EFI_IMAGE_MACHINE_IA64, "IA64" }, >> { EFI_IMAGE_MACHINE_EBC, "EBC" }, >> + { EFI_IMAGE_MACHINE_X64, "X64" }, >> + { EFI_IMAGE_MACHINE_ARMT, "ARMT" }, > > Just 'ARM', please? PE/COFF has multiple machine types for ARM, but > EFI only uses this one for ARM (0x1c2) > > With that change, > > Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> I wasn't sure if we wanted to use the edk2 architecture identifiers here, or the last _FOO substrings from the macro names verbatim. One fact that supported just picking _FOO is: "BaseTools/Source/C/Include/IndustryStandard/PeImage.h" has two mappings for Itanium (different macro name, same replacement text): #define EFI_IMAGE_MACHINE_IA64 IMAGE_FILE_MACHINE_IA64 #define EFI_IMAGE_MACHINE_IPF IMAGE_FILE_MACHINE_IA64 The identifier that you can find in the edk2 INF files is IPF, not IA64, but the above lookup strings include IA64, not IPF. This suggested that the _FOO suffixes were authoritative, not the arch identifiers that we use in the DSC / INF etc files. I'm fine either way, but I would like to hear back from the BaseTools maintainers too. Because, if we go with ARM, but keep IA64 (rather than IPF), then that's a (differently) inconsistent situation. And if we change IA64 to IPF as well, then downstream scripts that presumably parse the output might break... Fun... For now I prefer ARMT. Ugly but self-consistent (within the tool). If Liming / Yonghong agree with you, I'll be happy to repost. Thanks! Laszlo _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
diff --git a/BaseTools/Source/C/EfiRom/EfiRom.h b/BaseTools/Source/C/EfiRom/EfiRom.h index 1214700826de..461963b4a701 100644 --- a/BaseTools/Source/C/EfiRom/EfiRom.h +++ b/BaseTools/Source/C/EfiRom/EfiRom.h @@ -117,6 +117,9 @@ static STRING_LOOKUP mMachineTypes[] = { { EFI_IMAGE_MACHINE_IA32, "IA32" }, { EFI_IMAGE_MACHINE_IA64, "IA64" }, { EFI_IMAGE_MACHINE_EBC, "EBC" }, + { EFI_IMAGE_MACHINE_X64, "X64" }, + { EFI_IMAGE_MACHINE_ARMT, "ARMT" }, + { EFI_IMAGE_MACHINE_AARCH64, "AARCH64" }, { 0, NULL } };