about summary refs log tree commit diff
path: root/pkgs/top-level/platforms.nix
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@viric.name>2015-05-10 10:59:29 +0000
committerLluís Batlle i Rossell <viric@viric.name>2015-05-10 10:59:29 +0000
commitcaeaddcf181293aad70fb1c6ec58f7eba0093263 (patch)
tree9e36b0122495f3eb0cdb7edf09c2e64321bf3f68 /pkgs/top-level/platforms.nix
parent21dd114f8204178d72d1587ec032be0e7f066c43 (diff)
downloadnixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.tar
nixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.tar.gz
nixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.tar.bz2
nixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.tar.lz
nixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.tar.xz
nixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.tar.zst
nixlib-caeaddcf181293aad70fb1c6ec58f7eba0093263.zip
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.
Diffstat (limited to 'pkgs/top-level/platforms.nix')
-rw-r--r--pkgs/top-level/platforms.nix50
1 files changed, 23 insertions, 27 deletions
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index 47d7d5993f1c..4a6dc5aacf6a 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -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";
     };
   };
+
 }