forked from mirrors/nixpkgs
01020b3263
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.
218 lines
6 KiB
Nix
218 lines
6 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"];
|
|
};
|
|
}
|