mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-08 19:46:10 +01:00
bsp update for imx8mp-evk
Signed-off-by: Ganga Ram <Ganga.Ram@tii.ae>
This commit is contained in:
parent
a65b650d69
commit
2dbfb943a0
6 changed files with 41 additions and 58 deletions
|
|
@ -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" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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 { })
|
||||||
|
|
|
||||||
|
|
@ -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 \
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
})
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue