mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-05 01:37:24 +08:00
Fetch AHAB container, M7 firmware, and DDR PHY firmware binaries from the NXP release packages. The derivation extracts the correct LPDDR5 PHY images and selects the appropriate AHAB container for A0 or B0 silicon revisions. Signed-off-by: Govind Singh <govind.singh@tii.ae>
77 lines
2.4 KiB
Nix
77 lines
2.4 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
}:
|
|
let
|
|
inherit (pkgs.buildPackages) python3;
|
|
toolchain = pkgs.gccStdenv.cc;
|
|
binutils = pkgs.gccStdenv.cc.bintools.bintools_bin;
|
|
cpp = pkgs.gcc;
|
|
in
|
|
pkgs.stdenv.mkDerivation rec {
|
|
pname = "imx95-optee-os";
|
|
version = "lf-6.6.36_2.1.0";
|
|
|
|
nativeBuildInputs = [
|
|
python3
|
|
];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
propagatedBuildInputs = with python3.pkgs; [
|
|
pycryptodomex
|
|
pyelftools
|
|
cryptography
|
|
];
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "nxp-imx";
|
|
repo = "imx-optee-os";
|
|
rev = "612bc5a642a4608d282abeee2349d86de996d7ee";
|
|
sha256 = "sha256-l8GKkrlBs5kgw6jrzGLT9WAeTSDqo8XWZDFT2+Fisv4=";
|
|
};
|
|
meta = with lib; {
|
|
homepage = "https://github.com/nxp-imx/imx-optee-os";
|
|
license = [ licenses.bsd2 ];
|
|
maintainers = with maintainers; [ govindsi ];
|
|
platforms = [ "aarch64-linux" ];
|
|
};
|
|
|
|
postPatch = ''
|
|
substituteInPlace scripts/arm32_sysreg.py \
|
|
--replace '/usr/bin/env python3' '${python3}/bin/python'
|
|
substituteInPlace scripts/gen_tee_bin.py \
|
|
--replace '/usr/bin/env python3' '${python3}/bin/python'
|
|
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'
|
|
substituteInPlace mk/gcc.mk \
|
|
--replace "\$(CROSS_COMPILE_\$(sm))objcopy" ${binutils}/bin/${toolchain.targetPrefix}objcopy
|
|
substituteInPlace mk/gcc.mk \
|
|
--replace "\$(CROSS_COMPILE_\$(sm))objdump" ${binutils}/bin/${toolchain.targetPrefix}objdump
|
|
substituteInPlace mk/gcc.mk \
|
|
--replace "\$(CROSS_COMPILE_\$(sm))nm" ${binutils}/bin/${toolchain.targetPrefix}nm
|
|
substituteInPlace mk/gcc.mk \
|
|
--replace "\$(CROSS_COMPILE_\$(sm))readelf" ${binutils}/bin/${toolchain.targetPrefix}readelf
|
|
substituteInPlace mk/gcc.mk \
|
|
--replace "\$(CROSS_COMPILE_\$(sm))ar" ${binutils}/bin/${toolchain.targetPrefix}ar
|
|
substituteInPlace mk/gcc.mk \
|
|
--replace "\$(CROSS_COMPILE_\$(sm))cpp" ${cpp}/bin/cpp
|
|
'';
|
|
|
|
makeFlags = [
|
|
"PLATFORM=imx-mx95evk"
|
|
"CFG_ARM64_core=y"
|
|
"CFG_TEE_TA_LOG_LEVEL=0"
|
|
"CFG_TEE_CORE_LOG_LEVEL=0"
|
|
"CROSS_COMPILE=${toolchain}/bin/${toolchain.targetPrefix}"
|
|
"CROSS_COMPILE64=${toolchain}/bin/${toolchain.targetPrefix}"
|
|
];
|
|
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp ./out/arm-plat-imx/core/tee-raw.bin $out/tee.bin
|
|
'';
|
|
}
|