Various: Add support for raspberry pi 4.

This commit is contained in:
Thomas Kerber
2019-08-17 17:42:22 +01:00
parent 7f523f4d7e
commit cc5baf2d86
12 changed files with 112 additions and 29 deletions

View File

@@ -1,8 +1,8 @@
{ stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args:
{ stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, rpiVersion, ... } @ args:
let
modDirVersion = "4.14.98";
tag = "1.20190215";
modDirVersion = "4.19.71";
tag = "1.20190906";
in
lib.overrideDerivation (buildLinux (args // {
version = "${modDirVersion}-${tag}";
@@ -11,25 +11,33 @@ lib.overrideDerivation (buildLinux (args // {
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "linux";
rev = "raspberrypi-kernel_${tag}-1";
sha256 = "1gc4x7p82m2v1jhahhyl7qfdkflj71ly6p0fpc1vf9sk13hbwgj2";
rev = "9532eb3c84d8d952ef28da3d135683ac01adc9b8";
sha256 = "0168wz8kkdzbyha41iqlgn1z1kcy4smg89rgxkgadzq78y7fglpl";
};
defconfig = {
armv6l-linux = "bcmrpi_defconfig";
armv7l-linux = "bcm2709_defconfig";
aarch64-linux = "bcmrpi3_defconfig";
}.${stdenv.hostPlatform.system} or (throw "linux_rpi not supported on '${stdenv.hostPlatform.system}'");
"1" = "bcmrpi_defconfig";
"2" = "bcm2709_defconfig";
"3" = "bcmrpi3_defconfig";
"4" = "bcm2711_defconfig";
}.${toString rpiVersion};
features = {
efiBootStub = false;
} // (args.features or {});
extraMeta.hydraPlatforms = [ "aarch64-linux" ];
} // (args.argsOverride or {}))) (oldAttrs: {
extraMeta = if (rpiVersion < 3) then {
platforms = with lib.platforms; [ arm ];
hydraPlatforms = [];
} else {
platforms = with lib.platforms; [ arm aarch64 ];
hydraPlatforms = [ "aarch64-linux" ];
};
})) (oldAttrs: {
postConfigure = ''
# The v7 defconfig has this set to '-v7' which screws up our modDirVersion.
sed -i $buildRoot/.config -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
sed -i $buildRoot/include/config/auto.conf -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
'';
# Make copies of the DTBs named after the upstream names so that U-Boot finds them.
@@ -56,5 +64,6 @@ lib.overrideDerivation (buildLinux (args // {
copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb
copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb
copyDTB bcm2710-rpi-cm3.dtb bcm2837-rpi-cm3.dtb
copyDTB bcm2711-rpi-4-b.dtb bcm2838-rpi-4-b.dtb
'';
})