diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-boot.nix b/compulab/ucm-imx95/bsp/ucm-imx95-boot.nix index 3554b73b..e49ff90e 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-boot.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-boot.nix @@ -1,17 +1,24 @@ { - pkgs, + callPackage, + fetchFromGitHub, + stdenv, + clang, + git, + dtc, + glibc, + zlib, + vim, }: -with pkgs; let - imx95-atf = pkgs.callPackage ./ucm-imx95-atf.nix { }; - imx95-firmware = pkgs.callPackage ./ucm-imx95-firmware.nix { }; - imx95-uboot = pkgs.callPackage ./ucm-imx95-uboot.nix { }; - imx95-optee-os = pkgs.callPackage ./ucm-imx95-optee-os.nix { }; - imx95-sm-fw = pkgs.callPackage ./ucm-imx95-sm-fw.nix { }; - imx95-oei-ddr = pkgs.callPackage ./ucm-imx95-oei-ddr.nix { }; - imx95-oei-tcm = pkgs.callPackage ./ucm-imx95-oei-tcm.nix { }; - src = pkgs.fetchFromGitHub { + imx95-atf = callPackage ./ucm-imx95-atf.nix { }; + imx95-firmware = callPackage ./ucm-imx95-firmware.nix { }; + imx95-uboot = callPackage ./ucm-imx95-uboot.nix { }; + imx95-optee-os = callPackage ./ucm-imx95-optee-os.nix { }; + imx95-sm-fw = callPackage ./ucm-imx95-sm-fw.nix { }; + imx95-oei-ddr = callPackage ./ucm-imx95-oei-ddr.nix { }; + imx95-oei-tcm = callPackage ./ucm-imx95-oei-tcm.nix { }; + src = fetchFromGitHub { owner = "nxp-imx"; repo = "imx-mkimage"; #tag: lf-6.6.52-2.2.1 @@ -21,7 +28,7 @@ let shortRev = builtins.substring 0 8 src.rev; in { - imx95-boot = pkgs.stdenv.mkDerivation rec { + imx95-boot = stdenv.mkDerivation rec { inherit src; name = "imx95-mkimage"; version = "lf-6.6.52-2.2.1"; @@ -32,11 +39,11 @@ in substituteInPlace Makefile \ --replace-fail 'CC = gcc' 'CC = clang' substituteInPlace iMX95/soc.mak \ - --replace-fail 'xxd' "${pkgs.vim.xxd}/bin/xxd" + --replace-fail 'xxd' "${vim.xxd}/bin/xxd" substituteInPlace scripts/fspi_fcb_gen.sh \ - --replace-fail 'xxd' "${pkgs.vim.xxd}/bin/xxd" + --replace-fail 'xxd' "${vim.xxd}/bin/xxd" substituteInPlace scripts/fspi_packer.sh \ - --replace-fail 'xxd' "${pkgs.vim.xxd}/bin/xxd" + --replace-fail 'xxd' "${vim.xxd}/bin/xxd" patchShebangs scripts ''; diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-firmware.nix b/compulab/ucm-imx95/bsp/ucm-imx95-firmware.nix index 3de82670..e0fd5705 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-firmware.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-firmware.nix @@ -1,10 +1,12 @@ { - pkgs, + stdenv, + fetchurl, + coreutils, + bash, siliconRev ? "A0", ... }: -with pkgs; stdenv.mkDerivation rec { pname = "nxp-firmware-imx95"; version = "nxp-firmware-8.28-994fa14"; diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-linux.nix b/compulab/ucm-imx95/bsp/ucm-imx95-linux.nix index 76520a8c..db613d36 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-linux.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-linux.nix @@ -1,5 +1,9 @@ -{ lib, pkgs, ... }@args: -with pkgs; +{ + lib, + buildLinux, + fetchFromGitHub, + ... +}@args: buildLinux ( args // rec { diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix b/compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix index 612d0169..e295f1bf 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix @@ -1,20 +1,24 @@ { lib, - pkgs, + stdenv, + buildPackages, + gcc-arm-embedded, + fetchFromGitHub, + fetchpatch, }: let metaBspImx95Rev = "5f4c7b5db846fa3a75055054e32215089d15a7b7"; # scarthgap in -pkgs.stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "imx95-imx-oei"; version = "lf-6.6.36-2.1.0"; nativeBuildInputs = [ - pkgs.buildPackages.python3 - pkgs.gcc-arm-embedded + buildPackages.python3 + gcc-arm-embedded ]; - src = pkgs.fetchFromGitHub { + src = fetchFromGitHub { owner = "nxp-imx"; repo = "imx-oei"; rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925"; @@ -22,15 +26,15 @@ pkgs.stdenv.mkDerivation rec { }; patches = [ - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0001-Add-CompuLab-lpddr5_timing.c.patch"; sha256 = "sha256-6ZpBOXw2aIhD2i9Wx368xfHq6NvdZghWHU9u8+gRTj8="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0002-board-mx95lp5-Fix-default-DDR_CONFIG-timing-name.patch"; sha256 = "sha256-WZ/vYaTC2iKIC+jnHtnPriCxK9gjRsOv2Uy13Ye4698="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0003-Add-CompuLab-lpddr5_timing_4g.c.patch"; sha256 = "sha256-yyierv2USZlM8Cuxf4FDj4+UtILvJQH9BJSj+fmayL8="; }) @@ -45,8 +49,8 @@ pkgs.stdenv.mkDerivation rec { makeFlags = [ "board=mx95lp5" - "CROSS_COMPILE=${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-" - "OEI_CROSS_COMPILE=${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-" + "CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-" + "OEI_CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-" "ARCH=arm" "DDR_CONFIG=lpddr5_timing" "oei=ddr" diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix b/compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix index 9960cd50..a5d67da4 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix @@ -1,20 +1,24 @@ { lib, - pkgs, + stdenv, + buildPackages, + gcc-arm-embedded, + fetchFromGitHub, + fetchpatch, }: let metaBspImx95Rev = "5f4c7b5db846fa3a75055054e32215089d15a7b7"; # scarthgap in -pkgs.stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "imx95-imx-oei-tcm"; version = "lf-6.6.36-2.1.0"; nativeBuildInputs = [ - pkgs.buildPackages.python3 - pkgs.gcc-arm-embedded + buildPackages.python3 + gcc-arm-embedded ]; - src = pkgs.fetchFromGitHub { + src = fetchFromGitHub { owner = "nxp-imx"; repo = "imx-oei"; rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925"; @@ -22,15 +26,15 @@ pkgs.stdenv.mkDerivation rec { }; patches = [ - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0001-Add-CompuLab-lpddr5_timing.c.patch"; sha256 = "sha256-6ZpBOXw2aIhD2i9Wx368xfHq6NvdZghWHU9u8+gRTj8="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0002-board-mx95lp5-Fix-default-DDR_CONFIG-timing-name.patch"; sha256 = "sha256-WZ/vYaTC2iKIC+jnHtnPriCxK9gjRsOv2Uy13Ye4698="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-oei/imx-oei/0003-Add-CompuLab-lpddr5_timing_4g.c.patch"; sha256 = "sha256-yyierv2USZlM8Cuxf4FDj4+UtILvJQH9BJSj+fmayL8="; }) @@ -45,8 +49,8 @@ pkgs.stdenv.mkDerivation rec { makeFlags = [ "board=mx95lp5" - "CROSS_COMPILE=${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-" - "OEI_CROSS_COMPILE=${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-" + "CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-" + "OEI_CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-" "ARCH=arm" "DDR_CONFIG=lpddr5_timing" "oei=tcm" diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix b/compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix index 6b66cf6c..9471e365 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix @@ -1,14 +1,17 @@ { lib, - pkgs, + stdenv, + fetchFromGitHub, + buildPackages, + bash, }: let - inherit (pkgs.buildPackages) python3; - toolchain = pkgs.stdenv.cc; - binutils = pkgs.stdenv.cc.bintools.bintools_bin; - cpp = pkgs.stdenv.cc; + inherit (buildPackages) python3; + toolchain = stdenv.cc; + binutils = stdenv.cc.bintools.bintools_bin; + cpp = stdenv.cc; in -pkgs.stdenv.mkDerivation { +stdenv.mkDerivation { pname = "imx95-optee-os"; version = "lf-6.6.36_2.1.0"; @@ -24,7 +27,7 @@ pkgs.stdenv.mkDerivation { cryptography ]; - src = pkgs.fetchFromGitHub { + src = fetchFromGitHub { owner = "nxp-imx"; repo = "imx-optee-os"; rev = "612bc5a642a4608d282abeee2349d86de996d7ee"; @@ -50,7 +53,7 @@ pkgs.stdenv.mkDerivation { substituteInPlace scripts/pem_to_pub_c.py \ --replace-fail '/usr/bin/env python3' '${python3}/bin/python' substituteInPlace ta/pkcs11/scripts/verify-helpers.sh \ - --replace-fail '/bin/bash' '${pkgs.bash}/bin/bash' + --replace-fail '/bin/bash' '${bash}/bin/bash' substituteInPlace mk/gcc.mk \ --replace-fail "\$(CROSS_COMPILE_\$(sm))objcopy" ${binutils}/bin/${toolchain.targetPrefix}objcopy substituteInPlace mk/gcc.mk \ diff --git a/compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix b/compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix index c4f44831..8baf5a43 100644 --- a/compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix +++ b/compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix @@ -1,26 +1,30 @@ { lib, - pkgs, + stdenv, + buildPackages, + gcc-arm-embedded, + fetchFromGitHub, + fetchpatch, }: let metaBspImx95Rev = "224eed17cddc573061150e9d2ce6f9acb39ea50e"; # scarthgap-6.6.36-EVAL-UCM-iMX95-1.0 in -pkgs.stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "imx95-sm-fw"; version = "lf-6.6.36-2.1.0"; nativeBuildInputs = [ - pkgs.buildPackages.python3 - pkgs.gcc-arm-embedded + buildPackages.python3 + gcc-arm-embedded ]; - propagatedBuildInputs = with pkgs.buildPackages.python3.pkgs; [ + propagatedBuildInputs = with buildPackages.python3.pkgs; [ pycryptodomex pyelftools cryptography ]; - src = pkgs.fetchFromGitHub { + src = fetchFromGitHub { owner = "nxp-imx"; repo = "imx-sm"; rev = "709deccd9338399eb39b5cf99a60eab4fa60d539"; @@ -28,23 +32,23 @@ pkgs.stdenv.mkDerivation rec { }; patches = [ - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0001-Add-mcimx95cust-board.patch"; sha256 = "sha256-zvZ4bNew+yRPmaZQMrAH087KpCLRqz6zdElfe72Dtuc="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0002-Fix-null-pionter-except.patch"; sha256 = "sha256-q72VEvJqm2CmOxdWMqGibgXS5lY08mC4srEcy00QdrE="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0001-update-for-yocto-6.6.36-compatibility.patch"; sha256 = "sha256-JzHqDiD/ZOu6VQQI0JxY17RQ3bA2t1aP3O1sjLPguWs="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0003-sm-Disable-GPIO1-10-interrupt.patch"; sha256 = "sha256-dhcDv7Uq856+MBonczMPznk+tuqUFxTcHiKLX+myCVA="; }) - (pkgs.fetchpatch { + (fetchpatch { url = "https://raw.githubusercontent.com/compulab-yokneam/meta-bsp-imx95/${metaBspImx95Rev}/recipes-bsp/imx-system-manager/imx-system-manager/0004-configs-mx95cust-change-LPTPM1-ownership.patch"; sha256 = "sha256-NcLu6+zXpiSz1bHKW14Zuf6F/4pzKsekb+zaRtKjSTY="; }) @@ -52,7 +56,7 @@ pkgs.stdenv.mkDerivation rec { postPatch = '' substituteInPlace sm/makefiles/gcc_cross.mak \ - --replace-fail "\$(SM_CROSS_COMPILE)objcopy" ${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-objcopy + --replace-fail "\$(SM_CROSS_COMPILE)objcopy" ${gcc-arm-embedded}/bin/arm-none-eabi-objcopy substituteInPlace sm/makefiles/build_info.mak \ --replace-fail "/bin/echo" "echo" substituteInPlace sm/makefiles/gcc_cross.mak \ @@ -63,8 +67,8 @@ pkgs.stdenv.mkDerivation rec { makeFlags = [ "config=mx95cust" "M=2" - "CROSS_COMPILE=${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-" - "CROSS_COMPILE64=${pkgs.gcc-arm-embedded}/bin/arm-none-eabi-" + "CROSS_COMPILE=${gcc-arm-embedded}/bin/arm-none-eabi-" + "CROSS_COMPILE64=${gcc-arm-embedded}/bin/arm-none-eabi-" "ARCH=arm" ]; diff --git a/compulab/ucm-imx95/overlay.nix b/compulab/ucm-imx95/overlay.nix index 942a3711..516f9e79 100644 --- a/compulab/ucm-imx95/overlay.nix +++ b/compulab/ucm-imx95/overlay.nix @@ -1,3 +1,3 @@ final: _prev: { - inherit (final.callPackage ./bsp/ucm-imx95-boot.nix { pkgs = final; }) imx95-boot; + inherit (final.callPackage ./bsp/ucm-imx95-boot.nix { }) imx95-boot; }