bsp update for imx8mp-evk

Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
This commit is contained in:
Ganga Ram 2025-09-01 21:34:12 +04:00
parent a65b650d69
commit 2dbfb943a0
6 changed files with 41 additions and 58 deletions

View file

@ -1,59 +1,36 @@
{ {
pkgs,
lib, lib,
fetchgit, fetchgit,
enable-tee, buildArmTrustedFirmware,
stdenv, enable-tee ? true,
buildPackages,
pkgsCross,
openssl,
}: }:
with pkgs;
let let
opteedflag = if enable-tee then "SPD=opteed" else "";
target-board = "imx8mp"; target-board = "imx8mp";
opteedflag = if enable-tee then "SPD=opteed" else "";
in in
stdenv.mkDerivation rec { buildArmTrustedFirmware rec {
pname = "imx8mp-atf"; pname = "imx8mp-atf";
version = "lf6.1.55_2.2.0";
platform = target-board; platform = target-board;
enableParallelBuilding = true; enableParallelBuilding = true;
extraMeta.platforms = [ "aarch64-linux" ];
src = fetchgit { src = fetchgit {
url = "https://github.com/nxp-imx/imx-atf.git"; url = "https://github.com/nxp-imx/imx-atf.git";
rev = "08e9d4eef2262c0dd072b4325e8919e06d349e02"; rev = "6ddd57019494cabfca5065368349109c37f2cc9f";
sha256 = "sha256-96EddJXlFEkP/LIGVgNBvUP4IDI3BbDE/c9Yub22gnc="; sha256 = "sha256-8+5kV6wHhwMYVA9aqn4fNRhvgOLsU9RlX3UL7edMM+A=";
}; };
depsBuildBuild = [ buildPackages.stdenv.cc ]; extraMakeFlags = [
# 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"
"PLAT=${platform}" "PLAT=${platform}"
"bl31" "bl31"
"${opteedflag}" "${opteedflag}"
]; ];
installPhase = '' filesToInstall = [
runHook preInstall "build/${target-board}/release/bl31.bin"
];
mkdir -p $out
cp build/${target-board}/release/bl31.bin $out
runHook postInstall
'';
hardeningDisable = [ "all" ];
dontStrip = true;
meta = with lib; { meta = with lib; {
homepage = "https://github.com/nxp-imx/imx-atf"; homepage = "https://github.com/nxp-imx/imx-atf";
@ -62,4 +39,5 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ gngram ]; maintainers = with maintainers; [ gngram ];
platforms = [ "aarch64-linux" ]; platforms = [ "aarch64-linux" ];
}; };
} }

View file

@ -15,8 +15,9 @@ let
imx8mp-optee-os = pkgs.callPackage ./imx8mp-optee-os.nix { }; imx8mp-optee-os = pkgs.callPackage ./imx8mp-optee-os.nix { };
src = pkgs.fetchgit { src = pkgs.fetchgit {
url = "https://github.com/nxp-imx/imx-mkimage.git"; url = "https://github.com/nxp-imx/imx-mkimage.git";
rev = "c4365450fb115d87f245df2864fee1604d97c06a"; #tag: lf-6.12.20_2.0.0
sha256 = "sha256-KVIVHwBpAwd1RKy3RrYxGIniE45CDlN5RQTXsMg1Jwk="; rev = "4c2e5b25232f5aa003976ddca9d1d2fb9667beb1";
sha256 = "sha256-bXvM5Q0Fsb18gupw6/ub62/qNE7wGLaZKugp0URWeUk=";
}; };
shortRev = builtins.substring 0 8 src.rev; shortRev = builtins.substring 0 8 src.rev;
in in

View file

@ -2,11 +2,11 @@
with pkgs; with pkgs;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "imx8mp-firmware"; pname = "imx8mp-firmware";
version = "8.22"; version = "8.23";
src = pkgs.fetchurl { src = pkgs.fetchurl {
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-${version}.bin"; url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-${version}.bin";
sha256 = "sha256-lMi86sVuxQPCMuYU931rvY4Xx9qnHU5lHqj9UDTDA1A="; sha256 = "sha256-/gdjMpXaw92Z8LpOB6fN6VuySinKgrmps/YCbSmukWo=";
}; };
dontUnpack = true; dontUnpack = true;

View file

@ -3,7 +3,7 @@ with pkgs;
buildLinux ( buildLinux (
args args
// rec { // rec {
version = "6.1.55"; version = "6.12.20";
name = "imx8mp-linux"; name = "imx8mp-linux";
# modDirVersion needs to be x.y.z, will automatically add .0 if needed # modDirVersion needs to be x.y.z, will automatically add .0 if needed
@ -47,9 +47,9 @@ buildLinux (
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nxp-imx"; owner = "nxp-imx";
repo = "linux-imx"; repo = "linux-imx";
# tag: lf-6.1.55-2.2.0 # tag: lf-6.12.20-2.0.0
rev = "770c5fe2c1d1529fae21b7043911cd50c6cf087e"; rev = "dfaf2136deb2af2e60b994421281ba42f1c087e0";
sha256 = "sha256-tIWt75RUrjB6KmUuAYBVyAC1dmVGSUAgqV5ROJh3xU0="; sha256 = "sha256-ITrmj3a5YfXh/PSRTi+Rlto5uEBIAWFWtkTsO1ATXIo=";
}; };
} }
// (args.argsOverride or { }) // (args.argsOverride or { })

View file

@ -1,13 +1,13 @@
{ pkgs }: { pkgs }:
let let
python3 = pkgs.buildPackages.python3; inherit (pkgs.buildPackages) python3;
toolchain = pkgs.gcc9Stdenv.cc; toolchain = pkgs.gccStdenv.cc;
binutils = pkgs.gcc9Stdenv.cc.bintools.bintools_bin; binutils = pkgs.gccStdenv.cc.bintools.bintools_bin;
cpp = pkgs.gcc; cpp = pkgs.gcc;
in in
pkgs.stdenv.mkDerivation rec { pkgs.stdenv.mkDerivation rec {
pname = "imx8mp-optee-os"; pname = "imx8mp-optee-os";
version = "lf-6.1.55-2.2.0"; version = "lf-6.12.20-2.0.0";
nativeBuildInputs = [ nativeBuildInputs = [
python3 python3
@ -23,8 +23,8 @@ pkgs.stdenv.mkDerivation rec {
src = pkgs.fetchgit { src = pkgs.fetchgit {
url = "https://github.com/nxp-imx/imx-optee-os.git"; url = "https://github.com/nxp-imx/imx-optee-os.git";
rev = "a303fc80f7c4bd713315687a1fa1d6ed136e78ee"; rev = "87964807d80baf1dcfd89cafc66de34a1cf16bf3";
sha256 = "sha256-OpyG812DX0c06bRZPKWB2cNu6gtZCOvewDhsKgrGB+s="; sha256 = "sha256-AMZUMgmmyi5l3BMT84uubwjU0lwNObs9XW6ZCbqfhmc=";
}; };
postPatch = '' postPatch = ''
@ -35,7 +35,9 @@ pkgs.stdenv.mkDerivation rec {
substituteInPlace scripts/pem_to_pub_c.py \ substituteInPlace scripts/pem_to_pub_c.py \
--replace '/usr/bin/env python3' '${python3}/bin/python' --replace '/usr/bin/env python3' '${python3}/bin/python'
substituteInPlace ta/pkcs11/scripts/verify-helpers.sh \ 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 \ substituteInPlace mk/gcc.mk \
--replace "\$(CROSS_COMPILE_\$(sm))objcopy" ${binutils}/bin/${toolchain.targetPrefix}objcopy --replace "\$(CROSS_COMPILE_\$(sm))objcopy" ${binutils}/bin/${toolchain.targetPrefix}objcopy
substituteInPlace mk/gcc.mk \ substituteInPlace mk/gcc.mk \

View file

@ -12,18 +12,19 @@
which, which,
perl, perl,
buildPackages, buildPackages,
efitools,
}: }:
let let
ubsrc = fetchgit { ubsrc = fetchgit {
url = "https://github.com/nxp-imx/uboot-imx.git"; url = "https://github.com/nxp-imx/uboot-imx.git";
# tag: "lf-6.1.55-2.2.0" # tag: lf-6.12.20-2.0.0
rev = "49b102d98881fc28af6e0a8af5ea2186c1d90a5f"; rev = "9383f8387dc76524524da69992db96c22195a57c";
sha256 = "sha256-1j6X82DqezEizeWoSS600XKPNwrQ4yT0vZuUImKAVVA="; sha256 = "sha256-httRSwN8NiKOdL7fZEvN/4AbypGQfegYtJgxKIea+Zg=";
}; };
in in
(stdenv.mkDerivation { stdenv.mkDerivation {
pname = "imx8mp-uboot"; pname = "imx8mp-uboot";
version = "2023.04"; version = "2025.04";
src = ubsrc; src = ubsrc;
postPatch = '' postPatch = ''
@ -41,6 +42,7 @@ in
gnutls gnutls
openssl openssl
perl perl
efitools
]; ];
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];
@ -81,11 +83,11 @@ in
mkdir -p $out mkdir -p $out
cp ./u-boot-nodtb.bin $out cp ./u-boot-nodtb.bin $out
cp ./spl/u-boot-spl.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 cp .config $out
runHook postInstall runHook postInstall
''; '';
dontStrip = true; dontStrip = true;
}) }