Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 14 additions & 36 deletions nxp/imx8mp-evk/bsp/imx8mp-atf.nix
Original file line number Diff line number Diff line change
@@ -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";
Expand All @@ -62,4 +39,5 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ gngram ];
platforms = [ "aarch64-linux" ];
};

}
5 changes: 3 additions & 2 deletions nxp/imx8mp-evk/bsp/imx8mp-boot.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions nxp/imx8mp-evk/bsp/imx8mp-firmware.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 4 additions & 4 deletions nxp/imx8mp-evk/bsp/imx8mp-linux.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 { })
Expand Down
16 changes: 9 additions & 7 deletions nxp/imx8mp-evk/bsp/imx8mp-optee-os.nix
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 = ''
Expand All @@ -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 \
Expand Down
16 changes: 9 additions & 7 deletions nxp/imx8mp-evk/bsp/imx8mp-uboot.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 = ''
Expand All @@ -41,6 +42,7 @@ in
gnutls
openssl
perl
efitools
];

depsBuildBuild = [ buildPackages.stdenv.cc ];
Expand Down Expand Up @@ -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;
})
}