Files
nixos-hardware/nxp/common/bsp/imx-firmware.nix

75 lines
1.8 KiB
Nix

{
pkgs,
targetBoard,
}:
let
imxurl = "https://www.nxp.com/lgfiles/NMG/MAD/YOCTO";
fwHdmiVersion = "8.16";
fwScVersion = "1.13.0";
fwSecoVersion = "3.8.6";
firmwareHdmi = pkgs.fetchurl rec {
url = "${imxurl}/firmware-imx-${fwHdmiVersion}.bin";
sha256 = "Bun+uxE5z7zvxnlRwI0vjowKFqY4CgKyiGjbZuilER0=";
executable = true;
};
firmwareSc = pkgs.fetchurl rec {
url = "${imxurl}/imx-sc-firmware-${fwScVersion}.bin";
sha256 = "YUaBIVCeOOTvifhiEIbKgyGsLZYufv5rs2isdSrw4dc=";
executable = true;
};
firmwareSeco = pkgs.fetchurl rec {
url = "${imxurl}/imx-seco-${fwSecoVersion}.bin";
sha256 = "eoG19xn283fsP2jP49hD4dIBRwEQqFQ9k3yVWOM8uKQ=";
executable = true;
};
in
pkgs.stdenv.mkDerivation rec {
pname = "imx-firmware";
version = "5.15.X_1.0.0-Yocto";
dontPatch = true;
dontConfigure = true;
dontBuild = true;
sourceRoot = ".";
unpackPhase = ''
${firmwareHdmi} --auto-accept --force
${firmwareSc} --auto-accept --force
${firmwareSeco} --auto-accept --force
'';
filesToInstall =
[
"firmware-imx-${fwHdmiVersion}/firmware/hdmi/cadence/dpfw.bin"
"firmware-imx-${fwHdmiVersion}/firmware/hdmi/cadence/hdmi?xfw.bin"
]
++ pkgs.lib.optional (targetBoard == "imx8qm") (
"imx-sc-firmware-${fwScVersion}/mx8qm-mek-scfw-tcm.bin"
+ " "
+ "imx-seco-${fwSecoVersion}/firmware/seco/mx8qmb0-ahab-container.img"
)
++ pkgs.lib.optional (targetBoard == "imx8qxp") (
"imx-sc-firmware-${fwScVersion}/mx8qx-mek-scfw-tcm.bin"
+ " "
+ "imx-seco-${fwSecoVersion}/firmware/seco/mx8qxc0-ahab-container.img"
);
installPhase = ''
mkdir -p $out
cp ${pkgs.lib.concatStringsSep " " filesToInstall} $out
'';
meta = with pkgs.lib; {
license = licenses.unfree;
};
}