summary refs log tree commit diff
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2016-12-27 01:51:23 +0200
committerTuomas Tynkkynen <tuomas@tuxera.com>2017-01-25 02:14:46 +0200
commit2bfd83ab6d6d8c346f043843741641b8119cee19 (patch)
treecc9e2713be1a6501dbbdb200a60513bb164a6f84
parent3519244c724d9db090fd186ab9e4e375cd5c9989 (diff)
downloadnixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.tar
nixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.tar.gz
nixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.tar.bz2
nixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.tar.lz
nixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.tar.xz
nixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.tar.zst
nixpkgs-2bfd83ab6d6d8c346f043843741641b8119cee19.zip
platforms.nix: Add some aarch64-specific kernel config
This makes Raspberry Pi 3 and some Cavium ThunderX server hardware work.
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix2
-rw-r--r--pkgs/top-level/platforms.nix27
2 files changed, 27 insertions, 2 deletions
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 44e4ebe1748..40c49509fd0 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -45,7 +45,7 @@ with stdenv.lib;
 
   # Bump the maximum number of CPUs to support systems like EC2 x1.*
   # instances and Xeon Phi.
-  ${optionalString (stdenv.system == "x86_64-linux") ''
+  ${optionalString (stdenv.system == "x86_64-linux" || stdenv.system == "aarch64-linux") ''
     NR_CPUS 384
   ''}
 
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index c740fbe6f8d..41cd0fff52b 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -451,7 +451,32 @@ rec {
     kernelArch = "arm64";
     kernelDTB = true;
     kernelAutoModules = false;
-    kernelExtraConfig = "";
+    kernelExtraConfig = ''
+      # Raspberry Pi 3 stuff. Not needed for kernels >= 4.10.
+      ARCH_BCM2835 y
+      BCM2835_MBOX y
+      BCM2835_WDT y
+      BRCMFMAC m
+      DMA_BCM2835 m
+      DRM_VC4 m
+      I2C_BCM2835 m
+      PWM_BCM2835 m
+      RASPBERRYPI_FIRMWARE y
+      RASPBERRYPI_POWER y
+      SERIAL_8250_BCM2835AUX y
+      SERIAL_8250_EXTENDED y
+      SERIAL_8250_SHARE_IRQ y
+      SND_BCM2835_SOC_I2S m
+      SPI_BCM2835AUX m
+      SPI_BCM2835 m
+
+      # Cavium ThunderX stuff.
+      PCI_HOST_THUNDER_ECAM y
+      THUNDER_NIC_RGX y
+      THUNDER_NIC_BGX y
+      THUNDER_NIC_PF y
+      THUNDER_NIC_VF y
+    '';
     uboot = null;
     kernelTarget = "Image";
     gcc = {