From 2bfd83ab6d6d8c346f043843741641b8119cee19 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Tue, 27 Dec 2016 01:51:23 +0200 Subject: [PATCH] platforms.nix: Add some aarch64-specific kernel config This makes Raspberry Pi 3 and some Cavium ThunderX server hardware work. --- .../linux/kernel/common-config.nix | 2 +- pkgs/top-level/platforms.nix | 27 ++++++++++++++++++- 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 = {