Skip to content

Commit 11ea8b8

Browse files
govindsiMic92
authored andcommitted
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>
1 parent a3576f0 commit 11ea8b8

File tree

8 files changed

+76
-30
lines changed

8 files changed

+76
-30
lines changed

compulab/ucm-imx95/bsp/ucm-imx95-atf.nix

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
lib,
3-
fetchgit,
3+
fetchFromGitHub,
44
stdenv,
55
buildPackages,
66
pkgsCross,
@@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
1616
platform = target-board;
1717
enableParallelBuilding = true;
1818

19-
src = fetchgit {
20-
url = "https://github.com/nxp-imx/imx-atf.git";
19+
src = fetchFromGitHub {
20+
owner = "nxp-imx";
21+
repo = "imx-atf";
2122
rev = "28affcae957cb8194917b5246276630f9e6343e1";
2223
sha256 = "sha256-a8F+Lf8pwML+tCwawS0N/mrSXWPmFhlUeOg0MCRK3VE=";
2324
};

compulab/ucm-imx95/bsp/ucm-imx95-boot.nix

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ let
1111
imx95-sm-fw = pkgs.callPackage ./ucm-imx95-sm-fw.nix { };
1212
imx95-oei-ddr = pkgs.callPackage ./ucm-imx95-oei-ddr.nix { };
1313
imx95-oei-tcm = pkgs.callPackage ./ucm-imx95-oei-tcm.nix { };
14-
src = pkgs.fetchgit {
15-
url = "https://github.com/nxp-imx/imx-mkimage.git";
14+
src = pkgs.fetchFromGitHub {
15+
owner = "nxp-imx";
16+
repo = "imx-mkimage";
1617
#tag: lf-6.6.36
1718
rev = "4622115cbc037f79039c4522faeced4aabea986b";
1819
sha256 = "sha256-2gz0GxlB3jwy8PC6+cP3+MpyUzqE1vDTw8nuxK6vo3g=";
@@ -68,9 +69,9 @@ in
6869
install -m 0644 ${imx95-sm-fw}/m33_image.bin ./iMX95/m33_image.bin
6970
install -m 0644 ${imx95-oei-ddr}/oei-m33-ddr.bin ./iMX95/oei-m33-ddr.bin
7071
install -m 0644 ${imx95-oei-tcm}/oei-m33-tcm.bin ./iMX95/oei-m33-tcm.bin
71-
install -m 0644 ${imx95-firmware}/ucm-imx95/lpddr5* ./iMX95/
72-
install -m 0644 ${imx95-firmware}/ucm-imx95/mx95a0-ahab-container.img ./iMX95/
73-
install -m 0644 ${imx95-firmware}/ucm-imx95/m7_image.bin ./iMX95/
72+
install -m 0644 ${imx95-firmware}/ddr/lpddr5* ./iMX95/
73+
install -m 0644 ${imx95-firmware}/ahab/mx95a0-ahab-container.img ./iMX95/
74+
install -m 0644 ${imx95-firmware}/m7_image.bin ./iMX95/
7475
7576
make SOC=iMX95 REV=A0 OEI=YES LPDDR_TYPE=lpddr5 flash_all
7677
Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,63 @@
1-
{ pkgs, ... }:
1+
{
2+
pkgs,
3+
silicon ? "A0",
4+
...
5+
}:
6+
27
with pkgs;
38
stdenv.mkDerivation rec {
4-
pname = "comms-sbc-firmware";
5-
version = "v0_6.36";
9+
pname = "nxp-firmware-imx95";
10+
version = "nxp-firmware-8.28-994fa14";
11+
12+
m7Firmware = fetchurl {
13+
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx95-m7-demo-25.09.00.bin";
14+
sha256 = "sha256-3nA6uka6WPtXH5aZhaaKHKRM0tJ0pxHQdPEupNic1Ks=";
15+
};
616

7-
src = builtins.fetchGit {
8-
url = "git@github.com:tiiuae/comms-sbc-firmware.git";
9-
rev = "06394d6d983955734257fdc7f719e454a3ce07f4";
17+
ddrFirmware = fetchurl {
18+
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin";
19+
sha256 = "sha256-VZlvNA6HglaFoAzTCZARiQZuyVRe5gdzT5QsPN5Nadw=";
20+
};
21+
22+
ahabFirmware = fetchurl {
23+
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin";
24+
sha256 = "sha256-LSnwpN42YroV9qfZBpcC1OrtQV2WoX8p1bEn8sb91jQ=";
1025
};
1126

1227
nativeBuildInputs = [
13-
pkgs.rsync
14-
pkgs.coreutils
28+
coreutils
29+
bash
1530
];
31+
1632
dontUnpack = true;
1733
dontStrip = true;
1834

1935
installPhase = ''
2036
mkdir -p $out
21-
# copy everything except .git
22-
rsync -a --exclude='.git' $src/ $out/
37+
export SILICON=${silicon}
38+
39+
# M7 firmware
40+
echo "Copying M7 firmware..."
41+
cp ${m7Firmware} $out/m7_image.bin
42+
43+
# DDR firmware
44+
cp ${ddrFirmware} ./firmware-imx-8.28-994fa14.bin
45+
chmod +x firmware-imx-8.28-994fa14.bin
46+
./firmware-imx-8.28-994fa14.bin --auto-accept
47+
48+
mkdir -p $out/ddr
49+
cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr5*v202409.bin $out/ddr/
50+
51+
# AHAB container
52+
cp ${ahabFirmware} ./firmware-ele-imx-2.0.2-89161a8.bin
53+
chmod +x firmware-ele-imx-2.0.2-89161a8.bin
54+
./firmware-ele-imx-2.0.2-89161a8.bin --auto-accept
55+
56+
mkdir -p $out/ahab
57+
if [ "$SILICON" = "A0" ]; then
58+
cp firmware-ele-imx-2.0.2-89161a8/mx95a0-ahab-container.img $out/ahab/
59+
else
60+
cp firmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img $out/ahab/
61+
fi
2362
'';
2463
}

compulab/ucm-imx95/bsp/ucm-imx95-oei-ddr.nix

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ pkgs.stdenv.mkDerivation rec {
1111
pkgs.gcc-arm-embedded
1212
];
1313

14-
src = pkgs.fetchgit {
15-
url = "https://github.com/nxp-imx/imx-oei.git";
14+
src = pkgs.fetchFromGitHub {
15+
owner = "nxp-imx";
16+
repo = "imx-oei";
1617
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
1718
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
1819
};

compulab/ucm-imx95/bsp/ucm-imx95-oei-tcm.nix

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ pkgs.stdenv.mkDerivation rec {
1111
pkgs.gcc-arm-embedded
1212
];
1313

14-
src = pkgs.fetchgit {
15-
url = "https://github.com/nxp-imx/imx-oei.git";
14+
src = pkgs.fetchFromGitHub {
15+
owner = "nxp-imx";
16+
repo = "imx-oei";
1617
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
1718
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
1819
};

compulab/ucm-imx95/bsp/ucm-imx95-optee-os.nix

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,11 @@ pkgs.stdenv.mkDerivation rec {
2424
cryptography
2525
];
2626

27-
src = pkgs.fetchgit {
28-
url = "https://github.com/nxp-imx/imx-optee-os.git";
27+
src = pkgs.fetchFromGitHub {
28+
owner = "nxp-imx";
29+
repo = "imx-optee-os";
2930
rev = "612bc5a642a4608d282abeee2349d86de996d7ee";
30-
sha256 = "sha256-A7p3KPijwipivs9Qw9Mr62RWwaMBGTz7J8WP5JYoSOs=";
31+
sha256 = "sha256-l8GKkrlBs5kgw6jrzGLT9WAeTSDqo8XWZDFT2+Fisv4=";
3132
};
3233
meta = with lib; {
3334
homepage = "https://github.com/nxp-imx/imx-optee-os";

compulab/ucm-imx95/bsp/ucm-imx95-sm-fw.nix

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ pkgs.stdenv.mkDerivation rec {
1717
cryptography
1818
];
1919

20-
src = pkgs.fetchgit {
21-
url = "https://github.com/nxp-imx/imx-sm.git";
20+
src = pkgs.fetchFromGitHub {
21+
owner = "nxp-imx";
22+
repo = "imx-sm";
2223
rev = "709deccd9338399eb39b5cf99a60eab4fa60d539";
2324
sha256 = "sha256-02Cl+XhWGSFswspdBJ/4B/mBm4XTs/qKotx0BXMQpJk=";
2425
};

compulab/ucm-imx95/bsp/ucm-imx95-uboot.nix

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
lib,
44
bison,
55
dtc,
6-
fetchgit,
6+
fetchFromGitHub,
77
flex,
88
gnutls,
99
libuuid,
@@ -15,8 +15,9 @@
1515
efitools,
1616
}:
1717
let
18-
ubsrc = fetchgit {
19-
url = "https://github.com/compulab-yokneam/u-boot-compulab.git";
18+
ubsrc = fetchFromGitHub {
19+
owner = "compulab-yokneam";
20+
repo = "u-boot-compulab";
2021
# tag: lf_v2024.04
2122
rev = "824401fe487d7d3cbcf251bd60270bd7fe8d21d0";
2223
sha256 = "sha256-m+YW7+XF/jcNKfyb5533LXGyOWvStqY+MCczAdcNGZI=";

0 commit comments

Comments
 (0)