mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-08 19:46:10 +01:00
ucm-imx95: firmware: fetch firmware files from NXP release
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>
This commit is contained in:
parent
a3576f0f3c
commit
11ea8b8477
8 changed files with 76 additions and 30 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
fetchgit,
|
fetchFromGitHub,
|
||||||
stdenv,
|
stdenv,
|
||||||
buildPackages,
|
buildPackages,
|
||||||
pkgsCross,
|
pkgsCross,
|
||||||
|
|
@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
|
||||||
platform = target-board;
|
platform = target-board;
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/nxp-imx/imx-atf.git";
|
owner = "nxp-imx";
|
||||||
|
repo = "imx-atf";
|
||||||
rev = "28affcae957cb8194917b5246276630f9e6343e1";
|
rev = "28affcae957cb8194917b5246276630f9e6343e1";
|
||||||
sha256 = "sha256-a8F+Lf8pwML+tCwawS0N/mrSXWPmFhlUeOg0MCRK3VE=";
|
sha256 = "sha256-a8F+Lf8pwML+tCwawS0N/mrSXWPmFhlUeOg0MCRK3VE=";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,9 @@ let
|
||||||
imx95-sm-fw = pkgs.callPackage ./ucm-imx95-sm-fw.nix { };
|
imx95-sm-fw = pkgs.callPackage ./ucm-imx95-sm-fw.nix { };
|
||||||
imx95-oei-ddr = pkgs.callPackage ./ucm-imx95-oei-ddr.nix { };
|
imx95-oei-ddr = pkgs.callPackage ./ucm-imx95-oei-ddr.nix { };
|
||||||
imx95-oei-tcm = pkgs.callPackage ./ucm-imx95-oei-tcm.nix { };
|
imx95-oei-tcm = pkgs.callPackage ./ucm-imx95-oei-tcm.nix { };
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchFromGitHub {
|
||||||
url = "https://github.com/nxp-imx/imx-mkimage.git";
|
owner = "nxp-imx";
|
||||||
|
repo = "imx-mkimage";
|
||||||
#tag: lf-6.6.36
|
#tag: lf-6.6.36
|
||||||
rev = "4622115cbc037f79039c4522faeced4aabea986b";
|
rev = "4622115cbc037f79039c4522faeced4aabea986b";
|
||||||
sha256 = "sha256-2gz0GxlB3jwy8PC6+cP3+MpyUzqE1vDTw8nuxK6vo3g=";
|
sha256 = "sha256-2gz0GxlB3jwy8PC6+cP3+MpyUzqE1vDTw8nuxK6vo3g=";
|
||||||
|
|
@ -68,9 +69,9 @@ in
|
||||||
install -m 0644 ${imx95-sm-fw}/m33_image.bin ./iMX95/m33_image.bin
|
install -m 0644 ${imx95-sm-fw}/m33_image.bin ./iMX95/m33_image.bin
|
||||||
install -m 0644 ${imx95-oei-ddr}/oei-m33-ddr.bin ./iMX95/oei-m33-ddr.bin
|
install -m 0644 ${imx95-oei-ddr}/oei-m33-ddr.bin ./iMX95/oei-m33-ddr.bin
|
||||||
install -m 0644 ${imx95-oei-tcm}/oei-m33-tcm.bin ./iMX95/oei-m33-tcm.bin
|
install -m 0644 ${imx95-oei-tcm}/oei-m33-tcm.bin ./iMX95/oei-m33-tcm.bin
|
||||||
install -m 0644 ${imx95-firmware}/ucm-imx95/lpddr5* ./iMX95/
|
install -m 0644 ${imx95-firmware}/ddr/lpddr5* ./iMX95/
|
||||||
install -m 0644 ${imx95-firmware}/ucm-imx95/mx95a0-ahab-container.img ./iMX95/
|
install -m 0644 ${imx95-firmware}/ahab/mx95a0-ahab-container.img ./iMX95/
|
||||||
install -m 0644 ${imx95-firmware}/ucm-imx95/m7_image.bin ./iMX95/
|
install -m 0644 ${imx95-firmware}/m7_image.bin ./iMX95/
|
||||||
|
|
||||||
make SOC=iMX95 REV=A0 OEI=YES LPDDR_TYPE=lpddr5 flash_all
|
make SOC=iMX95 REV=A0 OEI=YES LPDDR_TYPE=lpddr5 flash_all
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,63 @@
|
||||||
{ pkgs, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
silicon ? "A0",
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "comms-sbc-firmware";
|
pname = "nxp-firmware-imx95";
|
||||||
version = "v0_6.36";
|
version = "nxp-firmware-8.28-994fa14";
|
||||||
|
|
||||||
src = builtins.fetchGit {
|
m7Firmware = fetchurl {
|
||||||
url = "git@github.com:tiiuae/comms-sbc-firmware.git";
|
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx95-m7-demo-25.09.00.bin";
|
||||||
rev = "06394d6d983955734257fdc7f719e454a3ce07f4";
|
sha256 = "sha256-3nA6uka6WPtXH5aZhaaKHKRM0tJ0pxHQdPEupNic1Ks=";
|
||||||
|
};
|
||||||
|
|
||||||
|
ddrFirmware = fetchurl {
|
||||||
|
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin";
|
||||||
|
sha256 = "sha256-VZlvNA6HglaFoAzTCZARiQZuyVRe5gdzT5QsPN5Nadw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
ahabFirmware = fetchurl {
|
||||||
|
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin";
|
||||||
|
sha256 = "sha256-LSnwpN42YroV9qfZBpcC1OrtQV2WoX8p1bEn8sb91jQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkgs.rsync
|
coreutils
|
||||||
pkgs.coreutils
|
bash
|
||||||
];
|
];
|
||||||
|
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
# copy everything except .git
|
export SILICON=${silicon}
|
||||||
rsync -a --exclude='.git' $src/ $out/
|
|
||||||
|
# M7 firmware
|
||||||
|
echo "Copying M7 firmware..."
|
||||||
|
cp ${m7Firmware} $out/m7_image.bin
|
||||||
|
|
||||||
|
# DDR firmware
|
||||||
|
cp ${ddrFirmware} ./firmware-imx-8.28-994fa14.bin
|
||||||
|
chmod +x firmware-imx-8.28-994fa14.bin
|
||||||
|
./firmware-imx-8.28-994fa14.bin --auto-accept
|
||||||
|
|
||||||
|
mkdir -p $out/ddr
|
||||||
|
cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr5*v202409.bin $out/ddr/
|
||||||
|
|
||||||
|
# AHAB container
|
||||||
|
cp ${ahabFirmware} ./firmware-ele-imx-2.0.2-89161a8.bin
|
||||||
|
chmod +x firmware-ele-imx-2.0.2-89161a8.bin
|
||||||
|
./firmware-ele-imx-2.0.2-89161a8.bin --auto-accept
|
||||||
|
|
||||||
|
mkdir -p $out/ahab
|
||||||
|
if [ "$SILICON" = "A0" ]; then
|
||||||
|
cp firmware-ele-imx-2.0.2-89161a8/mx95a0-ahab-container.img $out/ahab/
|
||||||
|
else
|
||||||
|
cp firmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img $out/ahab/
|
||||||
|
fi
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,9 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
pkgs.gcc-arm-embedded
|
pkgs.gcc-arm-embedded
|
||||||
];
|
];
|
||||||
|
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchFromGitHub {
|
||||||
url = "https://github.com/nxp-imx/imx-oei.git";
|
owner = "nxp-imx";
|
||||||
|
repo = "imx-oei";
|
||||||
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
|
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
|
||||||
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
|
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,9 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
pkgs.gcc-arm-embedded
|
pkgs.gcc-arm-embedded
|
||||||
];
|
];
|
||||||
|
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchFromGitHub {
|
||||||
url = "https://github.com/nxp-imx/imx-oei.git";
|
owner = "nxp-imx";
|
||||||
|
repo = "imx-oei";
|
||||||
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
|
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
|
||||||
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
|
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,11 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
cryptography
|
cryptography
|
||||||
];
|
];
|
||||||
|
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchFromGitHub {
|
||||||
url = "https://github.com/nxp-imx/imx-optee-os.git";
|
owner = "nxp-imx";
|
||||||
|
repo = "imx-optee-os";
|
||||||
rev = "612bc5a642a4608d282abeee2349d86de996d7ee";
|
rev = "612bc5a642a4608d282abeee2349d86de996d7ee";
|
||||||
sha256 = "sha256-A7p3KPijwipivs9Qw9Mr62RWwaMBGTz7J8WP5JYoSOs=";
|
sha256 = "sha256-l8GKkrlBs5kgw6jrzGLT9WAeTSDqo8XWZDFT2+Fisv4=";
|
||||||
};
|
};
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/nxp-imx/imx-optee-os";
|
homepage = "https://github.com/nxp-imx/imx-optee-os";
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,9 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
cryptography
|
cryptography
|
||||||
];
|
];
|
||||||
|
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchFromGitHub {
|
||||||
url = "https://github.com/nxp-imx/imx-sm.git";
|
owner = "nxp-imx";
|
||||||
|
repo = "imx-sm";
|
||||||
rev = "709deccd9338399eb39b5cf99a60eab4fa60d539";
|
rev = "709deccd9338399eb39b5cf99a60eab4fa60d539";
|
||||||
sha256 = "sha256-02Cl+XhWGSFswspdBJ/4B/mBm4XTs/qKotx0BXMQpJk=";
|
sha256 = "sha256-02Cl+XhWGSFswspdBJ/4B/mBm4XTs/qKotx0BXMQpJk=";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
bison,
|
bison,
|
||||||
dtc,
|
dtc,
|
||||||
fetchgit,
|
fetchFromGitHub,
|
||||||
flex,
|
flex,
|
||||||
gnutls,
|
gnutls,
|
||||||
libuuid,
|
libuuid,
|
||||||
|
|
@ -15,8 +15,9 @@
|
||||||
efitools,
|
efitools,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
ubsrc = fetchgit {
|
ubsrc = fetchFromGitHub {
|
||||||
url = "https://github.com/compulab-yokneam/u-boot-compulab.git";
|
owner = "compulab-yokneam";
|
||||||
|
repo = "u-boot-compulab";
|
||||||
# tag: lf_v2024.04
|
# tag: lf_v2024.04
|
||||||
rev = "824401fe487d7d3cbcf251bd60270bd7fe8d21d0";
|
rev = "824401fe487d7d3cbcf251bd60270bd7fe8d21d0";
|
||||||
sha256 = "sha256-m+YW7+XF/jcNKfyb5533LXGyOWvStqY+MCczAdcNGZI=";
|
sha256 = "sha256-m+YW7+XF/jcNKfyb5533LXGyOWvStqY+MCczAdcNGZI=";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue