summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkgs/misc/uboot/default.nix30
-rw-r--r--pkgs/top-level/all-packages.nix1
2 files changed, 31 insertions, 0 deletions
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