d50bcaa816
These derivations have not seen any updates since they were created in 2010,
and some of their sources have disappeared. There are upstream configs for
these boards, so these are now used, and they build correctly. I have no way
of testing them, and I don't if anyone even uses either board with Nix anymore.
(cherry picked from commit 01020b3263
)
(cherry picked from commit 48ade50d8ece09d3ff732b07f0facdcd78084ac3)
218 lines
6.0 KiB
Nix
218 lines
6.0 KiB
Nix
{ stdenv, fetchurl, fetchpatch, bc, dtc, openssl, python2, swig
|
|
, hostPlatform, buildPackages
|
|
}:
|
|
|
|
let
|
|
buildUBoot = { filesToInstall
|
|
, installDir ? "$out"
|
|
, defconfig
|
|
, extraMakeFlags ? []
|
|
, extraMeta ? {}
|
|
, ... } @ args:
|
|
stdenv.mkDerivation (rec {
|
|
|
|
name = "uboot-${defconfig}-${version}";
|
|
version = "2018.03";
|
|
|
|
src = fetchurl {
|
|
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2";
|
|
sha256 = "1z9x635l5164c5hnf7qs19w7j3qghbkgs7rpn673dm898i9pfx3y";
|
|
};
|
|
|
|
patches = [
|
|
(fetchpatch {
|
|
url = https://github.com/dezgeg/u-boot/commit/rpi-2017-11-patch1.patch;
|
|
sha256 = "067yq55vv1slv4xy346px7h329pi14abdn04chg6s1s6hmf6c1x9";
|
|
})
|
|
(fetchpatch {
|
|
url = https://github.com/dezgeg/u-boot/commit/rpi-2017-11-patch2.patch;
|
|
sha256 = "0bbw0q027xvzvdxxvpzjajg4rm30a8mb7z74b6ma9q0l7y7bi0c4";
|
|
})
|
|
(fetchpatch {
|
|
url = https://github.com/dezgeg/u-boot/commit/pythonpath-2018-03.patch;
|
|
sha256 = "1rhhlhrwhv7ic1n5i720jfh2cxwrkssrkvinllyjy3j9k9bpzcqd";
|
|
})
|
|
(fetchpatch {
|
|
url = https://github.com/dezgeg/u-boot/commit/extlinux-path-length-2018-03.patch;
|
|
sha256 = "07jafdnxvqv8lz256qy29agjc2k1zj5ad4k28r1w5qkhwj4ixmf8";
|
|
})
|
|
];
|
|
|
|
postPatch = ''
|
|
patchShebangs tools
|
|
'';
|
|
|
|
nativeBuildInputs = [ bc dtc openssl python2 swig ];
|
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
|
|
|
hardeningDisable = [ "all" ];
|
|
|
|
makeFlags = [
|
|
"DTC=dtc"
|
|
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
|
] ++ extraMakeFlags;
|
|
|
|
configurePhase = ''
|
|
runHook preConfigure
|
|
|
|
make ${defconfig}
|
|
|
|
runHook postConfigure
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p ${installDir}
|
|
cp ${stdenv.lib.concatStringsSep " " filesToInstall} ${installDir}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
enableParallelBuilding = true;
|
|
dontStrip = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = http://www.denx.de/wiki/U-Boot/;
|
|
description = "Boot loader for embedded systems";
|
|
license = licenses.gpl2;
|
|
maintainers = [ maintainers.dezgeg ];
|
|
} // extraMeta;
|
|
} // removeAttrs args [ "extraMeta" ]);
|
|
|
|
in rec {
|
|
inherit buildUBoot;
|
|
|
|
ubootTools = buildUBoot rec {
|
|
defconfig = "allnoconfig";
|
|
installDir = "$out/bin";
|
|
buildFlags = "tools NO_SDL=1";
|
|
hardeningDisable = [];
|
|
dontStrip = false;
|
|
extraMeta.platforms = stdenv.lib.platforms.linux;
|
|
# build tools/kwboot
|
|
extraMakeFlags = [ "CONFIG_KIRKWOOD=y" ];
|
|
postConfigure = ''
|
|
sed -i '/CONFIG_SYS_TEXT_BASE/c\CONFIG_SYS_TEXT_BASE=0x00000000' .config
|
|
'';
|
|
filesToInstall = [
|
|
"tools/dumpimage"
|
|
"tools/fdtgrep"
|
|
"tools/kwboot"
|
|
"tools/mkenvimage"
|
|
"tools/mkimage"
|
|
];
|
|
};
|
|
|
|
ubootA20OlinuxinoLime = buildUBoot rec {
|
|
defconfig = "A20-OLinuXino-Lime_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
|
|
};
|
|
|
|
ubootBananaPi = buildUBoot rec {
|
|
defconfig = "Bananapi_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
|
|
};
|
|
|
|
ubootBeagleboneBlack = buildUBoot rec {
|
|
defconfig = "am335x_boneblack_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["MLO" "u-boot.img"];
|
|
};
|
|
|
|
# http://git.denx.de/?p=u-boot.git;a=blob;f=board/solidrun/clearfog/README;hb=refs/heads/master
|
|
ubootClearfog = buildUBoot rec {
|
|
defconfig = "clearfog_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-spl.kwb"];
|
|
};
|
|
|
|
ubootGuruplug = buildUBoot rec {
|
|
defconfig = "guruplug_defconfig";
|
|
extraMeta.platforms = ["armv5tel-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootJetsonTK1 = buildUBoot rec {
|
|
defconfig = "jetson-tk1_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot" "u-boot.dtb" "u-boot-dtb-tegra.bin" "u-boot-nodtb-tegra.bin"];
|
|
};
|
|
|
|
ubootOdroidXU3 = buildUBoot rec {
|
|
defconfig = "odroid-xu3_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-dtb.bin"];
|
|
};
|
|
|
|
ubootOrangePiPc = buildUBoot rec {
|
|
defconfig = "orangepi_pc_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
|
|
};
|
|
|
|
ubootPcduino3Nano = buildUBoot rec {
|
|
defconfig = "Linksprite_pcDuino3_Nano_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
|
|
};
|
|
|
|
ubootQemuArm = buildUBoot rec {
|
|
defconfig = "qemu_arm_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootRaspberryPi = buildUBoot rec {
|
|
defconfig = "rpi_defconfig";
|
|
extraMeta.platforms = ["armv6l-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootRaspberryPi2 = buildUBoot rec {
|
|
defconfig = "rpi_2_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootRaspberryPi3_32bit = buildUBoot rec {
|
|
defconfig = "rpi_3_32b_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootRaspberryPi3_64bit = buildUBoot rec {
|
|
defconfig = "rpi_3_defconfig";
|
|
extraMeta.platforms = ["aarch64-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootSheevaplug = buildUBoot rec {
|
|
defconfig = "sheevaplug_defconfig";
|
|
extraMeta.platforms = ["armv5tel-linux"];
|
|
filesToInstall = ["u-boot.bin"];
|
|
};
|
|
|
|
ubootUtilite = buildUBoot rec {
|
|
defconfig = "cm_fx6_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot-with-nand-spl.imx"];
|
|
buildFlags = "u-boot-with-nand-spl.imx";
|
|
postConfigure = ''
|
|
cat >> .config << EOF
|
|
CONFIG_CMD_SETEXPR=y
|
|
EOF
|
|
'';
|
|
# sata init; load sata 0 $loadaddr u-boot-with-nand-spl.imx
|
|
# sf probe; sf update $loadaddr 0 80000
|
|
};
|
|
|
|
ubootWandboard = buildUBoot rec {
|
|
defconfig = "wandboard_defconfig";
|
|
extraMeta.platforms = ["armv7l-linux"];
|
|
filesToInstall = ["u-boot.img" "SPL"];
|
|
};
|
|
}
|