diff --git a/nxp/imx8mp-evk/bsp/imx8mp-atf.nix b/nxp/imx8mp-evk/bsp/imx8mp-atf.nix index a3ac81075..d2495097e 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-atf.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-atf.nix @@ -1,59 +1,36 @@ { + pkgs, lib, fetchgit, - enable-tee, - stdenv, - buildPackages, - pkgsCross, - openssl, + buildArmTrustedFirmware, + enable-tee ? true, }: +with pkgs; let - opteedflag = if enable-tee then "SPD=opteed" else ""; target-board = "imx8mp"; + opteedflag = if enable-tee then "SPD=opteed" else ""; in -stdenv.mkDerivation rec { +buildArmTrustedFirmware rec { pname = "imx8mp-atf"; - version = "lf6.1.55_2.2.0"; platform = target-board; enableParallelBuilding = true; + extraMeta.platforms = [ "aarch64-linux" ]; src = fetchgit { url = "https://github.com/nxp-imx/imx-atf.git"; - rev = "08e9d4eef2262c0dd072b4325e8919e06d349e02"; - sha256 = "sha256-96EddJXlFEkP/LIGVgNBvUP4IDI3BbDE/c9Yub22gnc="; + rev = "6ddd57019494cabfca5065368349109c37f2cc9f"; + sha256 = "sha256-8+5kV6wHhwMYVA9aqn4fNRhvgOLsU9RlX3UL7edMM+A="; }; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - # For Cortex-M0 firmware in RK3399 - nativeBuildInputs = [ pkgsCross.arm-embedded.stdenv.cc ]; - - buildInputs = [ openssl ]; - - makeFlags = [ - "HOSTCC=$(CC_FOR_BUILD)" - "M0_CROSS_COMPILE=${pkgsCross.arm-embedded.stdenv.cc.targetPrefix}" - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - # binutils 2.39 regression - # `warning: /build/source/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions` - # See also: https://developer.trustedfirmware.org/T996 - "LDFLAGS=-no-warn-rwx-segments" + extraMakeFlags = [ "PLAT=${platform}" "bl31" "${opteedflag}" ]; - installPhase = '' - runHook preInstall - - mkdir -p $out - cp build/${target-board}/release/bl31.bin $out - - runHook postInstall - ''; - - hardeningDisable = [ "all" ]; - dontStrip = true; + filesToInstall = [ + "build/${target-board}/release/bl31.bin" + ]; meta = with lib; { homepage = "https://github.com/nxp-imx/imx-atf"; @@ -62,4 +39,5 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ gngram ]; platforms = [ "aarch64-linux" ]; }; + } diff --git a/nxp/imx8mp-evk/bsp/imx8mp-boot.nix b/nxp/imx8mp-evk/bsp/imx8mp-boot.nix index 8a74f500d..a53600b97 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-boot.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-boot.nix @@ -15,8 +15,9 @@ let imx8mp-optee-os = pkgs.callPackage ./imx8mp-optee-os.nix { }; src = pkgs.fetchgit { url = "https://github.com/nxp-imx/imx-mkimage.git"; - rev = "c4365450fb115d87f245df2864fee1604d97c06a"; - sha256 = "sha256-KVIVHwBpAwd1RKy3RrYxGIniE45CDlN5RQTXsMg1Jwk="; + #tag: lf-6.12.20_2.0.0 + rev = "4c2e5b25232f5aa003976ddca9d1d2fb9667beb1"; + sha256 = "sha256-bXvM5Q0Fsb18gupw6/ub62/qNE7wGLaZKugp0URWeUk="; }; shortRev = builtins.substring 0 8 src.rev; in diff --git a/nxp/imx8mp-evk/bsp/imx8mp-firmware.nix b/nxp/imx8mp-evk/bsp/imx8mp-firmware.nix index 361257fb1..c763d8cf5 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-firmware.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-firmware.nix @@ -2,11 +2,11 @@ with pkgs; stdenv.mkDerivation rec { pname = "imx8mp-firmware"; - version = "8.22"; + version = "8.23"; src = pkgs.fetchurl { url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-${version}.bin"; - sha256 = "sha256-lMi86sVuxQPCMuYU931rvY4Xx9qnHU5lHqj9UDTDA1A="; + sha256 = "sha256-/gdjMpXaw92Z8LpOB6fN6VuySinKgrmps/YCbSmukWo="; }; dontUnpack = true; diff --git a/nxp/imx8mp-evk/bsp/imx8mp-linux.nix b/nxp/imx8mp-evk/bsp/imx8mp-linux.nix index 70b8370a5..86025f2a3 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-linux.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-linux.nix @@ -3,7 +3,7 @@ with pkgs; buildLinux ( args // rec { - version = "6.1.55"; + version = "6.12.20"; name = "imx8mp-linux"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed @@ -47,9 +47,9 @@ buildLinux ( src = fetchFromGitHub { owner = "nxp-imx"; repo = "linux-imx"; - # tag: lf-6.1.55-2.2.0 - rev = "770c5fe2c1d1529fae21b7043911cd50c6cf087e"; - sha256 = "sha256-tIWt75RUrjB6KmUuAYBVyAC1dmVGSUAgqV5ROJh3xU0="; + # tag: lf-6.12.20-2.0.0 + rev = "dfaf2136deb2af2e60b994421281ba42f1c087e0"; + sha256 = "sha256-ITrmj3a5YfXh/PSRTi+Rlto5uEBIAWFWtkTsO1ATXIo="; }; } // (args.argsOverride or { }) diff --git a/nxp/imx8mp-evk/bsp/imx8mp-optee-os.nix b/nxp/imx8mp-evk/bsp/imx8mp-optee-os.nix index 4119efb19..4cdd5f5d5 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-optee-os.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-optee-os.nix @@ -1,13 +1,13 @@ { pkgs }: let - python3 = pkgs.buildPackages.python3; - toolchain = pkgs.gcc9Stdenv.cc; - binutils = pkgs.gcc9Stdenv.cc.bintools.bintools_bin; + inherit (pkgs.buildPackages) python3; + toolchain = pkgs.gccStdenv.cc; + binutils = pkgs.gccStdenv.cc.bintools.bintools_bin; cpp = pkgs.gcc; in pkgs.stdenv.mkDerivation rec { pname = "imx8mp-optee-os"; - version = "lf-6.1.55-2.2.0"; + version = "lf-6.12.20-2.0.0"; nativeBuildInputs = [ python3 @@ -23,8 +23,8 @@ pkgs.stdenv.mkDerivation rec { src = pkgs.fetchgit { url = "https://github.com/nxp-imx/imx-optee-os.git"; - rev = "a303fc80f7c4bd713315687a1fa1d6ed136e78ee"; - sha256 = "sha256-OpyG812DX0c06bRZPKWB2cNu6gtZCOvewDhsKgrGB+s="; + rev = "87964807d80baf1dcfd89cafc66de34a1cf16bf3"; + sha256 = "sha256-AMZUMgmmyi5l3BMT84uubwjU0lwNObs9XW6ZCbqfhmc="; }; postPatch = '' @@ -35,7 +35,9 @@ pkgs.stdenv.mkDerivation rec { substituteInPlace scripts/pem_to_pub_c.py \ --replace '/usr/bin/env python3' '${python3}/bin/python' substituteInPlace ta/pkcs11/scripts/verify-helpers.sh \ - --replace '/bin/bash' '${pkgs.bash}/bin/bash' + --replace '/usr/bin/env bash' '${pkgs.bash}/bin/bash' + substituteInPlace ta/pkcs11/scripts/dump_ec_curve_params.sh \ + --replace '/usr/bin/env bash' '${pkgs.bash}/bin/bash' substituteInPlace mk/gcc.mk \ --replace "\$(CROSS_COMPILE_\$(sm))objcopy" ${binutils}/bin/${toolchain.targetPrefix}objcopy substituteInPlace mk/gcc.mk \ diff --git a/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix b/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix index 14586d47d..582cb70b1 100644 --- a/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix +++ b/nxp/imx8mp-evk/bsp/imx8mp-uboot.nix @@ -12,18 +12,19 @@ which, perl, buildPackages, + efitools, }: 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="; + # tag: lf-6.12.20-2.0.0 + rev = "9383f8387dc76524524da69992db96c22195a57c"; + sha256 = "sha256-httRSwN8NiKOdL7fZEvN/4AbypGQfegYtJgxKIea+Zg="; }; in -(stdenv.mkDerivation { +stdenv.mkDerivation { pname = "imx8mp-uboot"; - version = "2023.04"; + version = "2025.04"; src = ubsrc; postPatch = '' @@ -41,6 +42,7 @@ in gnutls openssl perl + efitools ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; @@ -81,11 +83,11 @@ in 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 ./dts/upstream/src/arm64/freescale/imx8mp-evk.dtb $out cp .config $out runHook postInstall ''; dontStrip = true; -}) +}