summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/systems/default.nix13
-rw-r--r--lib/systems/examples.nix48
-rw-r--r--lib/systems/platforms.nix670
-rw-r--r--nixos/doc/manual/release-notes/rl-2103.xml16
-rw-r--r--nixos/modules/hardware/device-tree.nix8
-rw-r--r--nixos/modules/installer/netboot/netboot.nix2
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix8
-rw-r--r--nixos/modules/system/activation/top-level.nix2
-rw-r--r--nixos/modules/system/boot/loader/generations-dir/generations-dir.nix2
-rw-r--r--nixos/modules/system/boot/loader/raspberrypi/raspberrypi.nix2
-rw-r--r--nixos/release.nix4
-rw-r--r--pkgs/applications/audio/virtual-ans/default.nix2
-rw-r--r--pkgs/applications/virtualization/crosvm/default.nix2
-rw-r--r--pkgs/applications/virtualization/vpcs/default.nix2
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix2
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix16
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix4
-rw-r--r--pkgs/build-support/vm/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/common/platform-flags.nix2
-rw-r--r--pkgs/development/compilers/julia/1.0.nix2
-rw-r--r--pkgs/development/compilers/julia/1.3.nix2
-rw-r--r--pkgs/development/compilers/julia/1.5.nix2
-rw-r--r--pkgs/development/libraries/glibc/common.nix2
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix2
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix6
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix2
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix11
-rw-r--r--pkgs/os-specific/linux/exfat/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix18
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix30
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix4
-rw-r--r--pkgs/os-specific/linux/rtl8723bs/default.nix2
-rw-r--r--pkgs/os-specific/linux/rtl8812au/default.nix2
-rw-r--r--pkgs/os-specific/linux/uclibc/default.nix2
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix2
-rw-r--r--pkgs/top-level/all-packages.nix2
37 files changed, 448 insertions, 454 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index 84d0b34805a0..4edcbeb36f16 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -24,6 +24,8 @@ rec {
# Either of these can be losslessly-extracted from `parsed` iff parsing succeeds.
system = parse.doubleFromSystem final.parsed;
config = parse.tripleFromSystem final.parsed;
+ # Just a guess, based on `system`
+ platform = platforms.select final;
# Determine whether we are compatible with the provided CPU
isCompatible = platform: parse.isCompatible final.parsed.cpu platform.parsed.cpu;
# Derived meta-data
@@ -77,16 +79,7 @@ rec {
};
isStatic = final.isWasm || final.isRedox;
- # Just a guess, based on `system`
- inherit
- ({
- linux-kernel = args.linux-kernel or {};
- gcc = args.gcc or {};
- rustc = args.rust or {};
- } // platforms.select final)
- linux-kernel gcc rustc;
-
- linuxArch =
+ kernelArch =
if final.isAarch32 then "arm"
else if final.isAarch64 then "arm64"
else if final.isx86_32 then "x86"
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index de12e0b83c1d..16002450f2d1 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -7,6 +7,7 @@ let
riscv = bits: {
config = "riscv${bits}-unknown-linux-gnu";
+ platform = platforms.riscv-multiplatform;
};
in
@@ -16,68 +17,84 @@ rec {
#
powernv = {
config = "powerpc64le-unknown-linux-gnu";
+ platform = platforms.powernv;
};
musl-power = {
config = "powerpc64le-unknown-linux-musl";
+ platform = platforms.powernv;
};
sheevaplug = {
config = "armv5tel-unknown-linux-gnueabi";
- } // platforms.sheevaplug;
+ platform = platforms.sheevaplug;
+ };
raspberryPi = {
config = "armv6l-unknown-linux-gnueabihf";
- } // platforms.raspberrypi;
+ platform = platforms.raspberrypi;
+ };
remarkable1 = {
config = "armv7l-unknown-linux-gnueabihf";
- } // platforms.zero-gravitas;
+ platform = platforms.zero-gravitas;
+ };
remarkable2 = {
config = "armv7l-unknown-linux-gnueabihf";
- } // platforms.zero-sugar;
+ platform = platforms.zero-sugar;
+ };
armv7l-hf-multiplatform = {
config = "armv7l-unknown-linux-gnueabihf";
+ platform = platforms.armv7l-hf-multiplatform;
};
aarch64-multiplatform = {
config = "aarch64-unknown-linux-gnu";
+ platform = platforms.aarch64-multiplatform;
};
armv7a-android-prebuilt = {
config = "armv7a-unknown-linux-androideabi";
sdkVer = "29";
ndkVer = "21";
+ platform = platforms.armv7a-android;
useAndroidPrebuilt = true;
- } // platforms.armv7a-android;
+ };
aarch64-android-prebuilt = {
config = "aarch64-unknown-linux-android";
sdkVer = "29";
ndkVer = "21";
+ platform = platforms.aarch64-multiplatform;
useAndroidPrebuilt = true;
};
- scaleway-c1 = armv7l-hf-multiplatform // platforms.scaleway-c1;
+ scaleway-c1 = armv7l-hf-multiplatform // rec {
+ platform = platforms.scaleway-c1;
+ inherit (platform.gcc) fpu;
+ };
pogoplug4 = {
config = "armv5tel-unknown-linux-gnueabi";
- } // platforms.pogoplug4;
+ platform = platforms.pogoplug4;
+ };
ben-nanonote = {
config = "mipsel-unknown-linux-uclibc";
- } // platforms.ben_nanonote;
+ platform = platforms.ben_nanonote;
+ };
fuloongminipc = {
config = "mipsel-unknown-linux-gnu";
- } // platforms.fuloong2f_n32;
+ platform = platforms.fuloong2f_n32;
+ };
muslpi = raspberryPi // {
config = "armv6l-unknown-linux-musleabihf";
};
- aarch64-multiplatform-musl = {
+ aarch64-multiplatform-musl = aarch64-multiplatform // {
config = "aarch64-unknown-linux-musl";
};
@@ -93,11 +110,13 @@ rec {
riscv64-embedded = {
config = "riscv64-none-elf";
libc = "newlib";
+ platform = platforms.riscv-multiplatform;
};
riscv32-embedded = {
config = "riscv32-none-elf";
libc = "newlib";
+ platform = platforms.riscv-multiplatform;
};
mmix = {
@@ -117,11 +136,13 @@ rec {
vc4 = {
config = "vc4-elf";
libc = "newlib";
+ platform = {};
};
or1k = {
config = "or1k-elf";
libc = "newlib";
+ platform = {};
};
arm-embedded = {
@@ -183,6 +204,7 @@ rec {
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneOS";
useiOSPrebuilt = true;
+ platform = {};
};
iphone32 = {
@@ -192,6 +214,7 @@ rec {
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneOS";
useiOSPrebuilt = true;
+ platform = {};
};
iphone64-simulator = {
@@ -201,6 +224,7 @@ rec {
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneSimulator";
useiOSPrebuilt = true;
+ platform = {};
};
iphone32-simulator = {
@@ -210,6 +234,7 @@ rec {
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneSimulator";
useiOSPrebuilt = true;
+ platform = {};
};
#
@@ -220,6 +245,7 @@ rec {
mingw32 = {
config = "i686-w64-mingw32";
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
+ platform = {};
};
# 64 bit mingw-w64
@@ -227,6 +253,7 @@ rec {
# That's the triplet they use in the mingw-w64 docs.
config = "x86_64-w64-mingw32";
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
+ platform = {};
};
# BSDs
@@ -248,5 +275,6 @@ rec {
# Ghcjs
ghcjs = {
config = "js-unknown-ghcjs";
+ platform = {};
};
}
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index f399c1873f5e..e869de488c14 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -1,36 +1,39 @@
{ lib }:
rec {
- pc = {
- linux-kernel = {
- name = "pc";
-
- baseConfig = "defconfig";
- # Build whatever possible as a module, if not stated in the extra config.
- autoModules = true;
- target = "bzImage";
- };
+ pcBase = {
+ name = "pc";
+ kernelBaseConfig = "defconfig";
+ # Build whatever possible as a module, if not stated in the extra config.
+ kernelAutoModules = true;
+ kernelTarget = "bzImage";
+ };
+
+ pc64 = pcBase // { kernelArch = "x86_64"; };
+
+ pc32 = pcBase // { kernelArch = "i386"; };
+
+ pc32_simplekernel = pc32 // {
+ kernelAutoModules = false;
};
- pc_simplekernel = lib.recursiveUpdate pc {
- linux-kernel.autoModules = false;
+ pc64_simplekernel = pc64 // {
+ kernelAutoModules = false;
};
powernv = {
- linux-kernel = {
- name = "PowerNV";
-
- baseConfig = "powernv_defconfig";
- target = "zImage";
- installTarget = "install";
- file = "vmlinux";
- autoModules = true;
- # avoid driver/FS trouble arising from unusual page size
- extraConfig = ''
- PPC_64K_PAGES n
- PPC_4K_PAGES y
- IPV6 y
- '';
- };
+ name = "PowerNV";
+ kernelArch = "powerpc";
+ kernelBaseConfig = "powernv_defconfig";
+ kernelTarget = "zImage";
+ kernelInstallTarget = "install";
+ kernelFile = "vmlinux";
+ kernelAutoModules = true;
+ # avoid driver/FS trouble arising from unusual page size
+ kernelExtraConfig = ''
+ PPC_64K_PAGES n
+ PPC_4K_PAGES y
+ IPV6 y
+ '';
};
##
@@ -38,121 +41,17 @@ rec {
##
pogoplug4 = {
- linux-kernel = {
- name = "pogoplug4";
+ name = "pogoplug4";
- baseConfig = "multi_v5_defconfig";
- autoModules = false;
- extraConfig = ''
- # Ubi for the mtd
- MTD_UBI y
- UBIFS_FS y
- UBIFS_FS_XATTR y
- UBIFS_FS_ADVANCED_COMPR y
- UBIFS_FS_LZO y
- UBIFS_FS_ZLIB y
- UBIFS_FS_DEBUG n
- '';
- makeFlags = [ "LOADADDR=0x8000" ];
- target = "uImage";
- # TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
- #DTB = true;
- };
gcc = {
arch = "armv5te";
};
- };
-
- sheevaplug = {
- linux-kernel = {
- name = "sheevaplug";
-
- baseConfig = "multi_v5_defconfig";
- autoModules = false;
- extraConfig = ''
- BLK_DEV_RAM y
- BLK_DEV_INITRD y
- BLK_DEV_CRYPTOLOOP m
- BLK_DEV_DM m
- DM_CRYPT m
- MD y
- REISERFS_FS m
- BTRFS_FS m
- XFS_FS m
- JFS_FS m
- EXT4_FS m
- USB_STORAGE_CYPRESS_ATACB m
-
- # mv cesa requires this sw fallback, for mv-sha1
- CRYPTO_SHA1 y
- # Fast crypto
- CRYPTO_TWOFISH y
- CRYPTO_TWOFISH_COMMON y
- CRYPTO_BLOWFISH y
- CRYPTO_BLOWFISH_COMMON y
-
- IP_PNP y
- IP_PNP_DHCP y
- NFS_FS y
- ROOT_NFS y
- TUN m
- NFS_V4 y
- NFS_V4_1 y
- NFS_FSCACHE y
- NFSD m
- NFSD_V2_ACL y
- NFSD_V3 y
- NFSD_V3_ACL y
- NFSD_V4 y
- NETFILTER y
- IP_NF_IPTABLES y
- IP_NF_FILTER y
- IP_NF_MATCH_ADDRTYPE y
- IP_NF_TARGET_LOG y
- IP_NF_MANGLE y
- IPV6 m
- VLAN_8021Q m
-
- CIFS y
- CIFS_XATTR y
- CIFS_POSIX y
- CIFS_FSCACHE y
- CIFS_ACL y
-
- WATCHDOG y
- WATCHDOG_CORE y
- ORION_WATCHDOG m
-
- ZRAM m
- NETCONSOLE m
-
- # Disable OABI to have seccomp_filter (required for systemd)
- # https://github.com/raspberrypi/firmware/issues/651
- OABI_COMPAT n
-
- # Fail to build
- DRM n
- SCSI_ADVANSYS n
- USB_ISP1362_HCD n
- SND_SOC n
- SND_ALI5451 n
- FB_SAVAGE n
- SCSI_NSP32 n
- ATA_SFF n
- SUNGEM n
- IRDA n
- ATM_HE n
- SCSI_ACARD n
- BLK_DEV_CMD640_ENHANCED n
-
- FUSE_FS m
-
- # systemd uses cgroups
- CGROUPS y
-
- # Latencytop
- LATENCYTOP y
+ kernelBaseConfig = "multi_v5_defconfig";
+ kernelArch = "arm";
+ kernelAutoModules = false;
+ kernelExtraConfig =
+ ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
@@ -161,36 +60,137 @@ rec {
UBIFS_FS_LZO y
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
-
- # Kdb, for kernel troubles
- KGDB y
- KGDB_SERIAL_CONSOLE y
- KGDB_KDB y
'';
- makeFlags = [ "LOADADDR=0x0200000" ];
- target = "uImage";
- DTB = true; # Beyond 3.10
- };
+ kernelMakeFlags = [ "LOADADDR=0x8000" ];
+ kernelTarget = "uImage";
+ # TODO reenable once manual-config's config actually builds a .dtb and this is checked to be working
+ #kernelDTB = true;
+ };
+
+ sheevaplug = {
+ name = "sheevaplug";
+ kernelBaseConfig = "multi_v5_defconfig";
+ kernelArch = "arm";
+ kernelAutoModules = false;
+ kernelExtraConfig = ''
+ BLK_DEV_RAM y
+ BLK_DEV_INITRD y
+ BLK_DEV_CRYPTOLOOP m
+ BLK_DEV_DM m
+ DM_CRYPT m
+ MD y
+ REISERFS_FS m
+ BTRFS_FS m
+ XFS_FS m
+ JFS_FS m
+ EXT4_FS m
+ USB_STORAGE_CYPRESS_ATACB m
+
+ # mv cesa requires this sw fallback, for mv-sha1
+ CRYPTO_SHA1 y
+ # Fast crypto
+ CRYPTO_TWOFISH y
+ CRYPTO_TWOFISH_COMMON y
+ CRYPTO_BLOWFISH y
+ CRYPTO_BLOWFISH_COMMON y
+
+ IP_PNP y
+ IP_PNP_DHCP y
+ NFS_FS y
+ ROOT_NFS y
+ TUN m
+ NFS_V4 y
+ NFS_V4_1 y
+ NFS_FSCACHE y
+ NFSD m
+ NFSD_V2_ACL y
+ NFSD_V3 y
+ NFSD_V3_ACL y
+ NFSD_V4 y
+ NETFILTER y
+ IP_NF_IPTABLES y
+ IP_NF_FILTER y
+ IP_NF_MATCH_ADDRTYPE y
+ IP_NF_TARGET_LOG y
+ IP_NF_MANGLE y
+ IPV6 m
+ VLAN_8021Q m
+
+ CIFS y
+ CIFS_XATTR y
+ CIFS_POSIX y
+ CIFS_FSCACHE y
+ CIFS_ACL y
+
+ WATCHDOG y
+ WATCHDOG_CORE y
+ ORION_WATCHDOG m
+
+ ZRAM m
+ NETCONSOLE m
+
+ # Disable OABI to have seccomp_filter (required for systemd)
+ # https://github.com/raspberrypi/firmware/issues/651
+ OABI_COMPAT n
+
+ # Fail to build
+ DRM n
+ SCSI_ADVANSYS n
+ USB_ISP1362_HCD n
+ SND_SOC n
+ SND_ALI5451 n
+ FB_SAVAGE n
+ SCSI_NSP32 n
+ ATA_SFF n
+ SUNGEM n
+ IRDA n
+ ATM_HE n
+ SCSI_ACARD n
+ BLK_DEV_CMD640_ENHANCED n
+
+ FUSE_FS m
+
+ # systemd uses cgroups
+ CGROUPS y
+
+ # Latencytop
+ LATENCYTOP y
+
+ # Ubi for the mtd
+ MTD_UBI y
+ UBIFS_FS y
+ UBIFS_FS_XATTR y
+ UBIFS_FS_ADVANCED_COMPR y
+ UBIFS_FS_LZO y
+ UBIFS_FS_ZLIB y
+ UBIFS_FS_DEBUG n
+
+ # Kdb, for kernel troubles
+ KGDB y
+ KGDB_SERIAL_CONSOLE y
+ KGDB_KDB y
+ '';
+ kernelMakeFlags = [ "LOADADDR=0x0200000" ];
+ kernelTarget = "uImage";
+ kernelDTB = true; # Beyond 3.10
gcc = {
arch = "armv5te";
};
};
raspberrypi = {
- linux-kernel = {
- name = "raspberrypi";
-
- baseConfig = "bcm2835_defconfig";
- DTB = true;
- autoModules = true;
- preferBuiltin = true;
- extraConfig = ''
- # Disable OABI to have seccomp_filter (required for systemd)
- # https://github.com/raspberrypi/firmware/issues/651
- OABI_COMPAT n
- '';
- target = "zImage";
- };
+ name = "raspberrypi";
+ kernelBaseConfig = "bcm2835_defconfig";
+ kernelDTB = true;
+ kernelArch = "arm";
+ kernelAutoModules = true;
+ kernelPreferBuiltin = true;
+ kernelExtraConfig = ''
+ # Disable OABI to have seccomp_filter (required for systemd)
+ # https://github.com/raspberrypi/firmware/issues/651
+ OABI_COMPAT n
+ '';
+ kernelTarget = "zImage";
gcc = {
arch = "armv6";
fpu = "vfp";
@@ -201,15 +201,13 @@ rec {
raspberrypi2 = armv7l-hf-multiplatform;
zero-gravitas = {
- linux-kernel = {
- name = "zero-gravitas";
-
- baseConfig = "zero-gravitas_defconfig";
- # Target verified by checking /boot on reMarkable 1 device
- target = "zImage";
- autoModules = false;
- DTB = true;
- };
+ name = "zero-gravitas";
+ kernelBaseConfig = "zero-gravitas_defconfig";
+ kernelArch = "arm";
+ # kernelTarget verified by checking /boot on reMarkable 1 device
+ kernelTarget = "zImage";
+ kernelAutoModules = false;
+ kernelDTB = true;
gcc = {
fpu = "neon";
cpu = "cortex-a9";
@@ -217,15 +215,13 @@ rec {
};
zero-sugar = {
- linux-kernel = {
- name = "zero-sugar";
-
- baseConfig = "zero-sugar_defconfig";
- DTB = true;
- autoModules = false;
- preferBuiltin = true;
- target = "zImage";
- };
+ name = "zero-sugar";
+ kernelBaseConfig = "zero-sugar_defconfig";
+ kernelArch = "arm";
+ kernelDTB = true;
+ kernelAutoModules = false;
+ kernelPreferBuiltin = true;
+ kernelTarget = "zImage";
gcc = {
cpu = "cortex-a7";
fpu = "neon-vfpv4";
@@ -233,7 +229,7 @@ rec {
};
};
- scaleway-c1 = lib.recursiveUpdate armv7l-hf-multiplatform {
+ scaleway-c1 = armv7l-hf-multiplatform // {
gcc = {
cpu = "cortex-a9";
fpu = "vfpv3";
@@ -241,11 +237,12 @@ rec {
};
utilite = {
- linux-kernel = {
- name = "utilite";
- maseConfig = "multi_v7_defconfig";
- autoModules = false;
- extraConfig = ''
+ name = "utilite";
+ kernelBaseConfig = "multi_v7_defconfig";
+ kernelArch = "arm";
+ kernelAutoModules = false;
+ kernelExtraConfig =
+ ''
# Ubi for the mtd
MTD_UBI y
UBIFS_FS y
@@ -255,37 +252,35 @@ rec {
UBIFS_FS_ZLIB y
UBIFS_FS_DEBUG n
'';
- makeFlags = [ "LOADADDR=0x10800000" ];
- target = "uImage";
- DTB = true;
- };
+ kernelMakeFlags = [ "LOADADDR=0x10800000" ];
+ kernelTarget = "uImage";
+ kernelDTB = true;
gcc = {
cpu = "cortex-a9";
fpu = "neon";
};
};
- guruplug = lib.recursiveUpdate sheevaplug {
+ guruplug = sheevaplug // {
# Define `CONFIG_MACH_GURUPLUG' (see
# <http://kerneltrap.org/mailarchive/git-commits-head/2010/5/19/33618>)
# and other GuruPlug-specific things. Requires the `guruplug-defconfig'
# patch.
- linux-kernel.baseConfig = "guruplug_defconfig";
+
+ kernelBaseConfig = "guruplug_defconfig";
};
- beaglebone = lib.recursiveUpdate armv7l-hf-multiplatform {
- linux-kernel = {
- name = "beaglebone";
- baseConfig = "bb.org_defconfig";
- autoModules = false;
- extraConfig = ""; # TBD kernel config
- target = "zImage";
- };
+ beaglebone = armv7l-hf-multiplatform // {
+ name = "beaglebone";
+ kernelBaseConfig = "bb.org_defconfig";
+ kernelAutoModules = false;
+ kernelExtraConfig = ""; # TBD kernel config
+ kernelTarget = "zImage";
};
# https://developer.android.com/ndk/guides/abis#v7a
- armv7a-android = {
- linux-kernel.name = "armeabi-v7a";
+ armv7a-android = {
+ name = "armeabi-v7a";
gcc = {
arch = "armv7-a";
float-abi = "softfp";
@@ -294,31 +289,29 @@ rec {
};
armv7l-hf-multiplatform = {
- linux-kernel = {
- name = "armv7l-hf-multiplatform";
- Major = "2.6"; # Using "2.6" enables 2.6 kernel syscalls in glibc.
- baseConfig = "multi_v7_defconfig";
- DTB = true;
- autoModules = true;
- PreferBuiltin = true;
- target = "zImage";
- extraConfig = ''
- # Serial port for Raspberry Pi 3. Upstream forgot to add it to the ARMv7 defconfig.
- SERIAL_8250_BCM2835AUX y
- SERIAL_8250_EXTENDED y
- SERIAL_8250_SHARE_IRQ y
-
- # Fix broken sunxi-sid nvmem driver.
- TI_CPTS y
-
- # Hangs ODROID-XU4
- ARM_BIG_LITTLE_CPUIDLE n
-
- # Disable OABI to have seccomp_filter (required for systemd)
- # https://github.com/raspberrypi/firmware/issues/651
- OABI_COMPAT n
- '';
- };
+ name = "armv7l-hf-multiplatform";
+ kernelBaseConfig = "multi_v7_defconfig";
+ kernelArch = "arm";
+ kernelDTB = true;
+ kernelAutoModules = true;
+ kernelPreferBuiltin = true;
+ kernelTarget = "zImage";
+ kernelExtraConfig = ''
+ # Serial port for Raspberry Pi 3. Upstream forgot to add it to the ARMv7 defconfig.
+ SERIAL_8250_BCM2835AUX y
+ SERIAL_8250_EXTENDED y
+ SERIAL_8250_SHARE_IRQ y
+
+ # Fix broken sunxi-sid nvmem driver.
+ TI_CPTS y
+
+ # Hangs ODROID-XU4
+ ARM_BIG_LITTLE_CPUIDLE n
+
+ # Disable OABI to have seccomp_filter (required for systemd)
+ # https://github.com/raspberrypi/firmware/issues/651
+ OABI_COMPAT n
+ '';
gcc = {
# Some table about fpu flags:
# http://community.arm.com/servlet/JiveServlet/showImage/38-1981-3827/blogentry-103749-004812900+1365712953_thumb.png
@@ -343,35 +336,34 @@ rec {
};
aarch64-multiplatform = {
- linux-kernel = {
- name = "aarch64-multiplatform";
- baseConfig = "defconfig";
- DTB = true;
- autoModules = true;
- preferBuiltin = true;
- extraConfig = ''
- # Raspberry Pi 3 stuff. Not needed for s >= 4.10.
- ARCH_BCM2835 y
- BCM2835_MBOX y
- BCM2835_WDT y
- RASPBERRYPI_FIRMWARE y
- RASPBERRYPI_POWER y
- SERIAL_8250_BCM2835AUX y
- SERIAL_8250_EXTENDED y
- SERIAL_8250_SHARE_IRQ y
-
- # Cavium ThunderX stuff.
- PCI_HOST_THUNDER_ECAM y
-
- # Nvidia Tegra stuff.
- PCI_TEGRA y
-
- # The default (=y) forces us to have the XHCI firmware available in initrd,
- # which our initrd builder can't currently do easily.
- USB_XHCI_TEGRA m
- '';
- target = "Image";
- };
+ name = "aarch64-multiplatform";
+ kernelBaseConfig = "defconfig";
+ kernelArch = "arm64";
+ kernelDTB = true;
+ kernelAutoModules = true;
+ kernelPreferBuiltin = true;
+ kernelExtraConfig = ''
+ # Raspberry Pi 3 stuff. Not needed for kernels >= 4.10.
+ ARCH_BCM2835 y
+ BCM2835_MBOX y
+ BCM2835_WDT y
+ RASPBERRYPI_FIRMWARE y
+ RASPBERRYPI_POWER y
+ SERIAL_8250_BCM2835AUX y
+ SERIAL_8250_EXTENDED y
+ SERIAL_8250_SHARE_IRQ y
+
+ # Cavium ThunderX stuff.
+ PCI_HOST_THUNDER_ECAM y
+
+ # Nvidia Tegra stuff.
+ PCI_TEGRA y
+
+ # The default (=y) forces us to have the XHCI firmware available in initrd,
+ # which our initrd builder can't currently do easily.
+ USB_XHCI_TEGRA m
+ '';
+ kernelTarget = "Image";
gcc = {
arch = "armv8-a";
};
@@ -382,9 +374,8 @@ rec {
##
ben_nanonote = {
- linux-kernel = {
- name = "ben_nanonote";
- };
+ name = "ben_nanonote";
+ kernelArch = "mips";
gcc = {
arch = "mips32";
float = "soft";
@@ -392,76 +383,75 @@ rec {
};
fuloong2f_n32 = {
- linux-kernel = {
- name = "fuloong2f_n32";
- baseConfig = "lemote2f_defconfig";
- autoModules = false;
- extraConfig = ''
- MIGRATION n
- COMPACTION n
-
- # nixos mounts some cgroup
- CGROUPS y
-
- BLK_DEV_RAM y
- BLK_DEV_INITRD y
- BLK_DEV_CRYPTOLOOP m
- BLK_DEV_DM m
- DM_CRYPT m
- MD y
- REISERFS_FS m
- EXT4_FS m
- USB_STORAGE_CYPRESS_ATACB m
-
- IP_PNP y
- IP_PNP_DHCP y
- IP_PNP_BOOTP y
- NFS_FS y
- ROOT_NFS y
- TUN m
- NFS_V4 y
- NFS_V4_1 y
- NFS_FSCACHE y
- NFSD m
- NFSD_V2_ACL