From c21fee9d2f29a847b8a2d13ef5f228d2bd63f5d4 Mon Sep 17 00:00:00 2001 From: Travis Whitton Date: Thu, 28 Jan 2021 13:41:08 -0500 Subject: [PATCH 1/4] uboot: add ubootNanoPCT4 for NanoPC-T4 --- pkgs/misc/uboot/default.nix | 30 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 31 insertions(+) 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 From c3da6f908d2c1e0fa86df3d0afe57b1a20dbe901 Mon Sep 17 00:00:00 2001 From: Travis Whitton Date: Fri, 29 Jan 2021 13:42:16 -0500 Subject: [PATCH 2/4] uboot: simplify ubootNanoPCT4 build --- pkgs/misc/uboot/default.nix | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 8b4f451c2f48..5cc77efd4d9b 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -1,6 +1,5 @@ { stdenv , lib -, callPackage , fetchurl , fetchpatch , fetchFromGitHub @@ -180,31 +179,24 @@ 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"; + rkbin = fetchFromGitHub { + owner = "armbian"; + repo = "rkbin"; + rev = "3bd0321cae5ef881a6005fb470009ad5a5d1462d"; + sha256 = "09r4dzxsbs3pff4sh70qnyp30s3rc7pkc46v1m3152s7jqjasp31"; }; - 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" ]; + BL31="${armTrustedFirmwareRK3328}/bl31.elf"; + filesToInstall = [ "u-boot.itb" "idbloader.img"]; 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 + ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img + cat ${rkbin}/rk33/rk3399_miniloader_v1.19.bin >> idbloader.img ''; }; From e79e264a6e6b14e73aea5a82e9156d51ffa165e5 Mon Sep 17 00:00:00 2001 From: Travis Whitton Date: Fri, 29 Jan 2021 14:06:52 -0500 Subject: [PATCH 3/4] uboot: use RK3399 ATF for ubootNanoPCT4 --- pkgs/misc/uboot/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 5cc77efd4d9b..492f4ca3175f 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -189,11 +189,11 @@ in { defconfig = "nanopc-t4-rk3399_defconfig"; extraMeta = { - platforms = [ "aarch64-linux" ]; + platforms = ["aarch64-linux"]; license = lib.licenses.unfreeRedistributableFirmware; }; - BL31="${armTrustedFirmwareRK3328}/bl31.elf"; - filesToInstall = [ "u-boot.itb" "idbloader.img"]; + BL31="${armTrustedFirmwareRK3399}/bl31.elf"; + filesToInstall = ["u-boot.itb" "idbloader.img"]; postBuild = '' ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img cat ${rkbin}/rk33/rk3399_miniloader_v1.19.bin >> idbloader.img From 3aec4fad92027c7da11ab6270a7ad5487325623f Mon Sep 17 00:00:00 2001 From: Travis Whitton Date: Fri, 29 Jan 2021 17:18:35 -0500 Subject: [PATCH 4/4] uboot: remove ATF for ubootNanoPCT4 --- pkgs/misc/uboot/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 492f4ca3175f..ef8caccbc34b 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -192,7 +192,6 @@ in { platforms = ["aarch64-linux"]; license = lib.licenses.unfreeRedistributableFirmware; }; - BL31="${armTrustedFirmwareRK3399}/bl31.elf"; filesToInstall = ["u-boot.itb" "idbloader.img"]; postBuild = '' ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img