[ipxe-devel] [RFC] Why does ARM set -mcpu=cortex-a15

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Mar 29 00:45:28 UTC 2018


Hello Michael,

I have some questions concerning the compilation flags used by iPXE on ARM.

There are a lot of different ARM CPUs available. Why do we set
-mcpu=cortex-a15?

This would for instance exclude i.mx6 CPUs which are Cortex-A9.
The Allwinner A20 I am currently testing on is Cortex-A7.

All aforementioned CPUs have an FPU. So why use -mfloat=soft?

Couldn't we use something like
-march=armv7-a -mfpu=vfpv3-d16 -mfloat=hard
instead? This is what Debian requires for armhf.

The following differences exist

HVC (hypervisor call) assembler instruction is not available on
Cortex-A7, Cortex-A9. This concerns arch/arm/include/bits/xen.h which is
included by drivers/net/netfront.c and some tests. But the netfront
driver is irrelevant for snp.efi.

Fused multiply and add is not available on the Cortex-A9 FPU.

Best regards

Heinrich



More information about the ipxe-devel mailing list