mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-05 01:37:24 +08: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:
committed by
Jörg Thalheim
parent
a3576f0f3c
commit
11ea8b8477
@@ -1,6 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
fetchgit,
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
buildPackages,
|
||||
pkgsCross,
|
||||
@@ -16,8 +16,9 @@ stdenv.mkDerivation rec {
|
||||
platform = target-board;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/nxp-imx/imx-atf.git";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nxp-imx";
|
||||
repo = "imx-atf";
|
||||
rev = "28affcae957cb8194917b5246276630f9e6343e1";
|
||||
sha256 = "sha256-a8F+Lf8pwML+tCwawS0N/mrSXWPmFhlUeOg0MCRK3VE=";
|
||||
};
|
||||
|
||||
@@ -11,8 +11,9 @@ let
|
||||
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.fetchgit {
|
||||
url = "https://github.com/nxp-imx/imx-mkimage.git";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nxp-imx";
|
||||
repo = "imx-mkimage";
|
||||
#tag: lf-6.6.36
|
||||
rev = "4622115cbc037f79039c4522faeced4aabea986b";
|
||||
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-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-firmware}/ucm-imx95/lpddr5* ./iMX95/
|
||||
install -m 0644 ${imx95-firmware}/ucm-imx95/mx95a0-ahab-container.img ./iMX95/
|
||||
install -m 0644 ${imx95-firmware}/ucm-imx95/m7_image.bin ./iMX95/
|
||||
install -m 0644 ${imx95-firmware}/ddr/lpddr5* ./iMX95/
|
||||
install -m 0644 ${imx95-firmware}/ahab/mx95a0-ahab-container.img ./iMX95/
|
||||
install -m 0644 ${imx95-firmware}/m7_image.bin ./iMX95/
|
||||
|
||||
make SOC=iMX95 REV=A0 OEI=YES LPDDR_TYPE=lpddr5 flash_all
|
||||
|
||||
|
||||
@@ -1,24 +1,63 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
pkgs,
|
||||
silicon ? "A0",
|
||||
...
|
||||
}:
|
||||
|
||||
with pkgs;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "comms-sbc-firmware";
|
||||
version = "v0_6.36";
|
||||
pname = "nxp-firmware-imx95";
|
||||
version = "nxp-firmware-8.28-994fa14";
|
||||
|
||||
src = builtins.fetchGit {
|
||||
url = "git@github.com:tiiuae/comms-sbc-firmware.git";
|
||||
rev = "06394d6d983955734257fdc7f719e454a3ce07f4";
|
||||
m7Firmware = fetchurl {
|
||||
url = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx95-m7-demo-25.09.00.bin";
|
||||
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 = [
|
||||
pkgs.rsync
|
||||
pkgs.coreutils
|
||||
coreutils
|
||||
bash
|
||||
];
|
||||
|
||||
dontUnpack = true;
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
# copy everything except .git
|
||||
rsync -a --exclude='.git' $src/ $out/
|
||||
export SILICON=${silicon}
|
||||
|
||||
# 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
|
||||
];
|
||||
|
||||
src = pkgs.fetchgit {
|
||||
url = "https://github.com/nxp-imx/imx-oei.git";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nxp-imx";
|
||||
repo = "imx-oei";
|
||||
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
|
||||
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
|
||||
};
|
||||
|
||||
@@ -11,8 +11,9 @@ pkgs.stdenv.mkDerivation rec {
|
||||
pkgs.gcc-arm-embedded
|
||||
];
|
||||
|
||||
src = pkgs.fetchgit {
|
||||
url = "https://github.com/nxp-imx/imx-oei.git";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nxp-imx";
|
||||
repo = "imx-oei";
|
||||
rev = "5fca9f47544d03c52ca371eadfffbfd2454e6925";
|
||||
sha256 = "sha256-Sb6u1NlhJpDCOKBu3HqUb4BLEy0F8LYVnJE0tRSvzWc=";
|
||||
};
|
||||
|
||||
@@ -24,10 +24,11 @@ pkgs.stdenv.mkDerivation rec {
|
||||
cryptography
|
||||
];
|
||||
|
||||
src = pkgs.fetchgit {
|
||||
url = "https://github.com/nxp-imx/imx-optee-os.git";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nxp-imx";
|
||||
repo = "imx-optee-os";
|
||||
rev = "612bc5a642a4608d282abeee2349d86de996d7ee";
|
||||
sha256 = "sha256-A7p3KPijwipivs9Qw9Mr62RWwaMBGTz7J8WP5JYoSOs=";
|
||||
sha256 = "sha256-l8GKkrlBs5kgw6jrzGLT9WAeTSDqo8XWZDFT2+Fisv4=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/nxp-imx/imx-optee-os";
|
||||
|
||||
@@ -17,8 +17,9 @@ pkgs.stdenv.mkDerivation rec {
|
||||
cryptography
|
||||
];
|
||||
|
||||
src = pkgs.fetchgit {
|
||||
url = "https://github.com/nxp-imx/imx-sm.git";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "nxp-imx";
|
||||
repo = "imx-sm";
|
||||
rev = "709deccd9338399eb39b5cf99a60eab4fa60d539";
|
||||
sha256 = "sha256-02Cl+XhWGSFswspdBJ/4B/mBm4XTs/qKotx0BXMQpJk=";
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
lib,
|
||||
bison,
|
||||
dtc,
|
||||
fetchgit,
|
||||
fetchFromGitHub,
|
||||
flex,
|
||||
gnutls,
|
||||
libuuid,
|
||||
@@ -15,8 +15,9 @@
|
||||
efitools,
|
||||
}:
|
||||
let
|
||||
ubsrc = fetchgit {
|
||||
url = "https://github.com/compulab-yokneam/u-boot-compulab.git";
|
||||
ubsrc = fetchFromGitHub {
|
||||
owner = "compulab-yokneam";
|
||||
repo = "u-boot-compulab";
|
||||
# tag: lf_v2024.04
|
||||
rev = "824401fe487d7d3cbcf251bd60270bd7fe8d21d0";
|
||||
sha256 = "sha256-m+YW7+XF/jcNKfyb5533LXGyOWvStqY+MCczAdcNGZI=";
|
||||
|
||||
Reference in New Issue
Block a user