diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix index 92bd7e0bee5bb..444fcebe38fa9 100644 --- a/pkgs/misc/arm-trusted-firmware/default.nix +++ b/pkgs/misc/arm-trusted-firmware/default.nix @@ -141,7 +141,6 @@ in { platform = "rk3328"; extraMeta.platforms = ["aarch64-linux"]; filesToInstall = [ "build/${platform}/release/bl31/bl31.elf"]; - platformCanUseHDCPBlob = true; }; armTrustedFirmwareRK3399 = buildArmTrustedFirmware rec { diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 54a5f6be0920a..6f32434afaace 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -497,32 +497,28 @@ in { filesToInstall = ["u-boot.bin"]; }; - ubootRock64 = let - rkbin = fetchFromGitHub { - owner = "ayufan-rock64"; - repo = "rkbin"; - rev = "f79a708978232a2b6b06c2e4173c5314559e0d3a"; - sha256 = "0h7xm4ck3p3380c6bqm5ixrkxwcx6z5vysqdwvfa7gcqx5d6x5zz"; - }; - in buildUBoot { + ubootRock64 = buildUBoot { defconfig = "rock64-rk3328_defconfig"; - extraMeta = { - platforms = [ "aarch64-linux" ]; - license = lib.licenses.unfreeRedistributableFirmware; - }; + extraMeta.platforms = [ "aarch64-linux" ]; BL31="${armTrustedFirmwareRK3328}/bl31.elf"; - filesToInstall = [ "u-boot.itb" "idbloader.img"]; - # Derive MAC address from cpuid - # Submitted upstream: https://patchwork.ozlabs.org/patch/1203686/ - extraConfig = '' - CONFIG_MISC_INIT_R=y - ''; - # Close to being blob free, but the U-Boot TPL causes random memory - # corruption - postBuild = '' - ./tools/mkimage -n rk3328 -T rksd -d ${rkbin}/rk33/rk3328_ddr_786MHz_v1.13.bin idbloader.img - cat spl/u-boot-spl.bin >> idbloader.img + filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" ]; + }; + + # A special build with much lower memory frequency (666 vs 1600 MT/s) which + # makes ROCK64 V2 boards stable. This is necessary because the DDR3 routing + # on that revision is marginal and not uncoditionally stable at the specified + # frequency. If your ROCK64 is unstable you can try this u-boot variant to + # see if it works better for you. The only disadvantage is lowered memory + # bandwidth. + ubootRock64v2 = buildUBoot { + prePatch = '' + substituteInPlace arch/arm/dts/rk3328-rock64-u-boot.dtsi \ + --replace rk3328-sdram-lpddr3-1600.dtsi rk3328-sdram-lpddr3-666.dtsi ''; + defconfig = "rock64-rk3328_defconfig"; + extraMeta.platforms = [ "aarch64-linux" ]; + BL31="${armTrustedFirmwareRK3328}/bl31.elf"; + filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" ]; }; ubootRockPro64 = buildUBoot { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d08259807abf..51181601f6608 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -28876,6 +28876,7 @@ with pkgs; ubootRaspberryPi4_64bit ubootRaspberryPiZero ubootRock64 + ubootRock64v2 ubootRockPi4 ubootRockPro64 ubootROCPCRK3399