From 772de835d56f2f83277c57fcf1afb5a280c08589 Mon Sep 17 00:00:00 2001 From: Ganga Ram Date: Thu, 16 May 2024 14:32:17 +0400 Subject: [PATCH] Remove buildUBoot function from U-Boot build The buildUBoot function is intended for internal use and is dedicated for Raspberry Pi platforms. With latest nixpkgs it is causing build failure in older uboot(prior to v2023.07) due to a Raspberry Pi patch. Now this function is not used for the U-Boot build. More Information: https://github.com/NixOS/nixpkgs/pull/311614 https://github.com/NixOS/nixpkgs/pull/146634 Signed-off-by: Ganga Ram --- nxp/imx8mp-evk/bsp/imx8mp-uboot.nix | 93 ++++++++++++++++++++++------- nxp/imx8mq-evk/bsp/imx8mq-uboot.nix | 93 ++++++++++++++++++++++------- 2 files changed, 142 insertions(+), 44 deletions(-) diff --git a/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix b/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix index d890c1e..c542af2 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix @@ -1,19 +1,57 @@ -{pkgs}: -with pkgs; let - inherit buildUBoot; -in - (buildUBoot { - pname = "imx8mp-uboot"; - version = "2023.04"; - - src = fetchgit { +{ stdenv +, lib +, bison +, dtc +, fetchgit +, flex +, gnutls +, libuuid +, ncurses +, openssl +, which +, perl +, buildPackages +}: +let + ubsrc = fetchgit { url = "https://github.com/nxp-imx/uboot-imx.git"; # tag: "lf-6.1.55-2.2.0" rev = "49b102d98881fc28af6e0a8af5ea2186c1d90a5f"; sha256 = "sha256-1j6X82DqezEizeWoSS600XKPNwrQ4yT0vZuUImKAVVA="; }; +in + (stdenv.mkDerivation { + pname = "imx8mp-uboot"; + version = "2023.04"; + src = ubsrc; - extraConfig = '' + postPatch = '' + patchShebangs tools + patchShebangs scripts + ''; + + nativeBuildInputs = [ + bison + flex + openssl + which + ncurses + libuuid + gnutls + openssl + perl + ]; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + hardeningDisable = [ "all" ]; + enableParallelBuilding = true; + + makeFlags = [ + "DTC=${lib.getExe buildPackages.dtc}" + "CROSS_COMPILE=${stdenv.cc.targetPrefix}" + ]; + + extraConfig = '' CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="setenv ramdisk_addr_r 0x45000000; setenv fdt_addr_r 0x44000000; run distro_bootcmd; " CONFIG_CMD_BOOTEFI_SELFTEST=y @@ -25,17 +63,28 @@ in CONFIG_CMD_CACHE=y ''; - enableParallelBuilding = true; - defconfig = "imx8mp_evk_defconfig"; - extraMeta.platforms = ["aarch64-linux"]; + passAsFile = [ "extraConfig" ]; - filesToInstall = [ - "./u-boot-nodtb.bin" - "./spl/u-boot-spl.bin" - "./arch/arm/dts/imx8mp-evk.dtb" - ".config" - ]; - }) - .overrideAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs ++ [pkgs.perl]; + configurePhase = '' + runHook preConfigure + + make imx8mp_evk_defconfig + cat $extraConfigPath >> .config + + runHook postConfigure + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp ./u-boot-nodtb.bin $out + cp ./spl/u-boot-spl.bin $out + cp ./arch/arm/dts/imx8mp-evk.dtb $out + cp .config $out + + runHook postInstall + ''; + + dontStrip = true; }) diff --git a/nxp/imx8mq-evk/bsp/imx8mq-uboot.nix b/nxp/imx8mq-evk/bsp/imx8mq-uboot.nix index 0b2b05b..fbbf92a 100644 --- a/nxp/imx8mq-evk/bsp/imx8mq-uboot.nix +++ b/nxp/imx8mq-evk/bsp/imx8mq-uboot.nix @@ -1,19 +1,57 @@ -{pkgs}: -with pkgs; let - inherit buildUBoot; -in - (buildUBoot { - pname = "imx8mq-uboot"; - version = "2023.04"; - - src = fetchgit { +{ stdenv +, lib +, bison +, dtc +, fetchgit +, flex +, gnutls +, libuuid +, ncurses +, openssl +, which +, perl +, buildPackages +}: +let + ubsrc = fetchgit { url = "https://github.com/nxp-imx/uboot-imx.git"; # tag: "lf-6.1.55-2.2.0" rev = "49b102d98881fc28af6e0a8af5ea2186c1d90a5f"; sha256 = "sha256-1j6X82DqezEizeWoSS600XKPNwrQ4yT0vZuUImKAVVA="; }; +in + (stdenv.mkDerivation { + pname = "imx8mq-uboot"; + version = "2023.04"; + src = ubsrc; - extraConfig = '' + postPatch = '' + patchShebangs tools + patchShebangs scripts + ''; + + nativeBuildInputs = [ + bison + flex + openssl + which + ncurses + libuuid + gnutls + openssl + perl + ]; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + hardeningDisable = [ "all" ]; + enableParallelBuilding = true; + + makeFlags = [ + "DTC=${lib.getExe buildPackages.dtc}" + "CROSS_COMPILE=${stdenv.cc.targetPrefix}" + ]; + + extraConfig = '' CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="setenv ramdisk_addr_r 0x45000000; setenv fdt_addr_r 0x44000000; run distro_bootcmd; " CONFIG_CMD_BOOTEFI_SELFTEST=y @@ -25,17 +63,28 @@ in CONFIG_CMD_CACHE=y ''; - enableParallelBuilding = true; - defconfig = "imx8mq_evk_defconfig"; - extraMeta.platforms = ["aarch64-linux"]; + passAsFile = [ "extraConfig" ]; - filesToInstall = [ - "./u-boot-nodtb.bin" - "./spl/u-boot-spl.bin" - "./arch/arm/dts/imx8mq-evk.dtb" - ".config" - ]; - }) - .overrideAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs ++ [pkgs.perl]; + configurePhase = '' + runHook preConfigure + + make imx8mq_evk_defconfig + cat $extraConfigPath >> .config + + runHook postConfigure + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp ./u-boot-nodtb.bin $out + cp ./spl/u-boot-spl.bin $out + cp ./arch/arm/dts/imx8mq-evk.dtb $out + cp .config $out + + runHook postInstall + ''; + + dontStrip = true; })