linux_rpi: Extend the logic for not installing unnecessary DTBs

Now ARMv6 and ARMv7 builds avoid installing DTBs for boards where the
resulting kernel won't run just like the aarch64 builds already do.
Also deduplicates the logic a bit.
This commit is contained in:
Tuomas Tynkkynen 2018-09-20 16:41:04 +03:00
parent c841c3e2c6
commit f9197b9f63

View file

@ -1,10 +1,10 @@
{ stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args:
{ stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, ... } @ args:
let
modDirVersion = "4.14.62";
tag = "1.20180817";
in
stdenv.lib.overrideDerivation (buildLinux (args // rec {
lib.overrideDerivation (buildLinux (args // rec {
version = "${modDirVersion}-${tag}";
inherit modDirVersion;
@ -34,20 +34,13 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec {
# Make copies of the DTBs named after the upstream names so that U-Boot finds them.
# This is ugly as heck, but I don't know a better solution so far.
postFixup = if stdenv.hostPlatform.system == "aarch64-linux" then ''
rm $out/dtbs/broadcom/bcm283*.dtb
postFixup = ''
dtbDir=${if stdenv.isAarch64 then "$out/dtbs/broadcom" else "$out/dtbs"}
rm $dtbDir/bcm283*.dtb
copyDTB() {
cp -v "$out/dtbs/broadcom/$1" "$out/dtbs/broadcom/$2"
cp -v "$dtbDir/$1" "$dtbDir/$2"
}
copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb
copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb
'' else ''
rm $out/dtbs/bcm283*.dtb
copyDTB() {
cp -v "$out/dtbs/$1" "$out/dtbs/$2"
}
'' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv6l-linux"]) ''
copyDTB bcm2708-rpi-0-w.dtb bcm2835-rpi-zero.dtb
copyDTB bcm2708-rpi-0-w.dtb bcm2835-rpi-zero-w.dtb
copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb
@ -57,7 +50,9 @@ stdenv.lib.overrideDerivation (buildLinux (args // rec {
copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus.dtb
copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb
copyDTB bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb
'' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux"]) ''
copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb
'' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux" "aarch64-linux"]) ''
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