|
1 | | -{ pkgs, ... }: |
| 1 | +{ |
| 2 | + pkgs, |
| 3 | + silicon ? "A0", |
| 4 | + ... |
| 5 | +}: |
| 6 | + |
2 | 7 | with pkgs; |
3 | 8 | 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 | + }; |
6 | 16 |
|
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="; |
10 | 25 | }; |
11 | 26 |
|
12 | 27 | nativeBuildInputs = [ |
13 | | - pkgs.rsync |
14 | | - pkgs.coreutils |
| 28 | + coreutils |
| 29 | + bash |
15 | 30 | ]; |
| 31 | + |
16 | 32 | dontUnpack = true; |
17 | 33 | dontStrip = true; |
18 | 34 |
|
19 | 35 | installPhase = '' |
20 | 36 | 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 |
23 | 62 | ''; |
24 | 63 | } |
0 commit comments