diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 20d928d944d8..8b4f451c2f48 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -1,5 +1,6 @@ { stdenv , lib +, callPackage , fetchurl , fetchpatch , fetchFromGitHub @@ -178,6 +179,35 @@ in { ''; }; + ubootNanoPCT4 = buildUBoot rec { + # vanilla u-boot does not work with the nanopc-t4 + # so we use this repo with the required patches applied + src = fetchFromGitHub { + owner = "tmountain"; + repo = "u-boot-nanopct4"; + rev = "23f6f74ec3ba53263ed97ec3cac9979b0ad998bc"; + sha256 = "07b3gcizkswld796l502bj6ln0hwz7wcm2rp3knpjmmha5llb5dz"; + }; + + version = "2020.10"; + # this provides wrapped rkbin binaries that are patched to work with NixOS + rkbin = callPackage "${src}/rkbin" {}; + + defconfig = "nanopc-t4-rk3399_defconfig"; + + extraMeta = { + platforms = [ "aarch64-linux" ]; + license = lib.licenses.unfreeRedistributableFirmware; + }; + filesToInstall = [ "idbloader.bin" "uboot.img" "trust.bin" ]; + postBuild = '' + ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/share/rkbin/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.bin + cat ${rkbin}/share/rkbin/rk33/rk3399_miniloader_v1.19.bin >> idbloader.bin + ${rkbin}/bin/trust_merger --replace bl31.elf ${rkbin}/share/rkbin/rk33/rk3399_bl31_v1.30.elf trust.ini + ${rkbin}/bin/loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img + ''; + }; + ubootNovena = buildUBoot { defconfig = "novena_defconfig"; extraMeta.platforms = ["armv7l-linux"]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bf78fa128d77..b265153fcf96 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20010,6 +20010,7 @@ in ubootClearfog ubootGuruplug ubootJetsonTK1 + ubootNanoPCT4 ubootNovena ubootOdroidC2 ubootOdroidXU3