On Thu, Jan 7, 2016 at 5:09 PM, Shawn Guo <shawn....@linaro.org> wrote:
> We have a AARCH64 verification platform (FPGA) which is built without
> NEON unit.  Is there any prebuilt AARCH64 rootfs (busybox, debian ...)
> that can be used on such platform?  Or is it possible to build an
> AARCH64 rootfs with -mgeneral-regs-only flag to avoid using NEON unit?

A linux root fs without FP/ASIMD instructions would require compiler
support to generate soft-float code.  ARM has not defined any
soft-float ABI for aarch64, and apparently has no intention to do so,
so there is no soft-float support in gcc for aarch64.  My
understanding is that this is partly because the ARMv8-A profile
requires FP/ASIMD instruction support, and partly because ARM wants to
avoid (or at least delay) the multilib problem that they already have
on ARMv7.

-mgeneral-regs-only does not help here.    It can only work for code
that has no FP operations.  Glibc has FP operations, and I don't think
that it can be built without them.  This option is only intended for
some special purpose code that needs to avoid using FP registers
because they haven't been initialized yet or because it would be too
expensive to save/restore them.  It is primarily intended to be used
by bootloaders and kernels and similar low level codes.

There are a few other possible options here, but not any easy and/or
good ones.  We could add kernel support to emulate FP/ASIMD
instructions.  I think this was done on x86 so that linux could run on
x86 parts without an FPU.  This is potentially a lot of work.  You
could perhaps use a soft-float ARMv7 root fs, if your part can execute
aarch32 instructions, but that doesn't help if you want to test
aarch64 support.  Or we could argue with ARM and try to get them to
change their stance on soft-float ABI support, but that could take a
while, and may not be successful.

Jim
_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to