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

u-boot: ROCK64 RAM init improvements
This commit is contained in:
Silvan Mosberger 2023-11-25 13:46:38 +01:00 committed by GitHub
commit 1fb123914b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 24 deletions

View file

@ -141,7 +141,6 @@ in {
platform = "rk3328";
extraMeta.platforms = ["aarch64-linux"];
filesToInstall = [ "build/${platform}/release/bl31/bl31.elf"];
platformCanUseHDCPBlob = true;
};
armTrustedFirmwareRK3399 = buildArmTrustedFirmware rec {

View file

@ -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 {

View file

@ -28876,6 +28876,7 @@ with pkgs;
ubootRaspberryPi4_64bit
ubootRaspberryPiZero
ubootRock64
ubootRock64v2
ubootRockPi4
ubootRockPro64
ubootROCPCRK3399