Enabling NEON for armv7l. Also use a common platform for armv7.

I added some comments about our decision for fpu flags. It's about the boards
we have in mind to support. NVidia Tegra2 is out, because it lacks neon.
This commit is contained in:
Lluís Batlle i Rossell 2015-05-10 10:59:29 +00:00
parent 21dd114f82
commit caeaddcf18

View file

@ -214,12 +214,9 @@ rec {
};
};
raspberrypi2 = {
raspberrypi2 = armv7l-hf-multiplatform // {
name = "raspberrypi2";
kernelMajor = "3.14";
kernelHeadersBaseConfig = "multi_v7_defconfig";
kernelBaseConfig = "bcm2709_defconfig";
kernelArch = "arm";
kernelDTB = true;
kernelAutoModules = false;
kernelExtraConfig =
@ -294,16 +291,6 @@ rec {
'';
kernelTarget = "zImage";
uboot = null;
gcc = {
# For gcc 4.8, the best for rpi2 would be:
# cpu = "cortex-a7";
# fpu = "neon-vfpv4";
# But we prefer compatibility with the beaglebone, so both
# can run the same built store paths.
arch = "armv7-a";
fpu = "vfpv3-d16";
float = "hard";
};
};
guruplug = sheevaplug // {
@ -467,38 +454,47 @@ rec {
gcc.arch = "loongson2f";
};
beaglebone = {
beaglebone = armv7l-hf-multiplatform // {
name = "beaglebone";
kernelMajor = "2.6";
kernelHeadersBaseConfig = "multi_v7_defconfig";
kernelBaseConfig = "omap2plus_defconfig";
kernelArch = "arm";
kernelAutoModules = false;
kernelExtraConfig = ""; # TBD kernel config
kernelTarget = "zImage";
uboot = null;
gcc = {
arch = "armv7-a";
fpu = "vfpv3-d16";
float = "hard";
};
};
armv7l-hf-multiplatform = {
name = "armv7l-hf-multiplatform";
kernelMajor = "2.6";
kernelMajor = "2.6"; # Using "2.6" enables 2.6 kernel syscalls in glibc.
kernelHeadersBaseConfig = "multi_v7_defconfig";
kernelBaseConfig = "multi_v7_defconfig";
kernelArch = "arm";
kernelDTB = true;
kernelAutoModules = false;
kernelExtraConfig = "";
kernelTarget = "zImage";
kernelDTB = true;
uboot = null;
kernelTarget = "zImage";
gcc = {
# Some table about fpu flags:
# http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png
# Cortex-A5: -mfpu=neon-fp16
# Cortex-A7 (rpi2): -mfpu=neon-vfpv4
# Cortex-A8 (beaglebone): -mfpu=neon
# Cortex-A9: -mfpu=neon-fp16
# Cortex-A15: -mfpu=neon-vfpv4
# More about FPU:
#https://wiki.debian.org/ArmHardFloatPort/VfpComparison
# We try to be compatible with beaglebone by now
arch = "armv7-a";
fpu = "vfpv3-d16";
fpu = "neon";
float = "hard";
# For Raspberry Pi the 2 the best would be:
# cpu = "cortex-a7";
# fpu = "neon-vfpv4";
};
};
}