Unverified Commit 1fb12391 authored by Silvan Mosberger's avatar Silvan Mosberger Committed by GitHub
Browse files

Merge pull request #191538 from lorenz/rock64-uboot-improvements

u-boot: ROCK64 RAM init improvements
parents 6909e461 6568016f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -141,7 +141,6 @@ in {
    platform = "rk3328";
    extraMeta.platforms = ["aarch64-linux"];
    filesToInstall = [ "build/${platform}/release/bl31/bl31.elf"];
    platformCanUseHDCPBlob = true;
  };

  armTrustedFirmwareRK3399 = buildArmTrustedFirmware rec {
+19 −23
Original line number Diff line number Diff line
@@ -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 {
+1 −0
Original line number Diff line number Diff line
@@ -28876,6 +28876,7 @@ with pkgs;
    ubootRaspberryPi4_64bit
    ubootRaspberryPiZero
    ubootRock64
    ubootRock64v2
    ubootRockPi4
    ubootRockPro64
    ubootROCPCRK3399