Hi, On Wed, Mar 28, 2018 at 10:19:50PM +0200, Heinrich Schuchardt wrote: > Without the flag a "data abort" occured when compiling with gcc 6.3 for > armhf and running on an Allwinner A20 SOC in function efi_devpath_end().
I think this may be a bug in the UEFI implementation (which I guess is U-Boot?). In the 2.7 UEFI spec, section 2.3.5 states that for AArch32: Unaligned access should be enabled if supported; Alignment faults are enabled otherwise. All ARMv6 and ARMv7 CPUs (including the COrtex-A7s in the A20 SoC) support unaligned accesses to normal memory, as would be the case for memory accessed by efi_devpath_end(). Unless GCC is generating misaligned LDM/STM instructions, I believe this is a FW bug that would be worth reporting, regardless of whether this patch is taken on the IPXE side. Thanks, Mark. > > The flag is usable both with GCC and LLVM. > > With some console commands enabled bin-arm32-efi/snp.efi grows from 148448 > to 154464 bytes. > > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > --- > src/arch/arm32/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/arch/arm32/Makefile b/src/arch/arm32/Makefile > index 3a7c0923..fc72af11 100644 > --- a/src/arch/arm32/Makefile > +++ b/src/arch/arm32/Makefile > @@ -5,6 +5,7 @@ SRCDIRS += arch/arm32/libgcc > > # ARM32-specific flags > # > +CFLAGS += -mno-unaligned-access > CFLAGS += -mthumb -mcpu=cortex-a15 -mabi=aapcs -mfloat-abi=soft > CFLAGS += -mword-relocations > ASFLAGS += -mthumb -mcpu=cortex-a15 > -- > 2.11.0 > > _______________________________________________ > ipxe-devel mailing list > ipxe-devel@lists.ipxe.org > https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel