mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-06 01:48:50 +08:00
Add NXP i.MX8 SOC family support.
Currently there are two devices supported: * imx8qm-mek * imx8qxp-mek Signed-off-by: Ivan Nikolaenko <ivan.nikolaenko@unikie.com>
This commit is contained in:
63
nxp/common/bsp/imx-uboot.nix
Normal file
63
nxp/common/bsp/imx-uboot.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{ pkgs ,
|
||||
targetBoard,
|
||||
}:
|
||||
|
||||
with pkgs; let
|
||||
inherit buildUBoot;
|
||||
|
||||
imx8qxp-attrs = {
|
||||
atf = "imx8qx";
|
||||
ahab = "mx8qxc0-ahab-container.img";
|
||||
scfw = "mx8qx-mek-scfw-tcm.bin";
|
||||
soc = "QX";
|
||||
patches = [ ../patches/0001-Add-UEFI-boot-for-imx8qxp.patch ];
|
||||
};
|
||||
|
||||
imx8qm-attrs = {
|
||||
atf = "imx8qm";
|
||||
ahab = "mx8qmb0-ahab-container.img";
|
||||
scfw = "mx8qm-mek-scfw-tcm.bin";
|
||||
soc = "QM";
|
||||
patches = [ ../patches/0001-Add-UEFI-boot-on-imx8qm_mek.patch ];
|
||||
};
|
||||
|
||||
imx8-attrs = if (targetBoard == "imx8qxp") then imx8qxp-attrs
|
||||
else if (targetBoard == "imx8qm") then imx8qm-attrs
|
||||
else {};
|
||||
|
||||
inherit (callPackage ./imx-atf.nix { inherit buildArmTrustedFirmware; targetBoard = imx8-attrs.atf; }) armTrustedFirmwareiMX8;
|
||||
imx-firmware = callPackage ./imx-firmware.nix { inherit pkgs targetBoard; };
|
||||
imx-mkimage = buildPackages.callPackage ./imx-mkimage.nix { inherit pkgs; };
|
||||
in {
|
||||
ubootImx8 = buildUBoot {
|
||||
version = "2022.04";
|
||||
src = fetchgit {
|
||||
url = "https://source.codeaurora.org/external/imx/uboot-imx.git";
|
||||
# tag: "lf_v2022.04"
|
||||
rev = "1c881f4da83cc05bee50f352fa183263d7e2622b";
|
||||
sha256 = "sha256-0TS6VH6wq6PwZUq6ekbuLaisZ9LrE0/haU9nseGdiE0=";
|
||||
};
|
||||
BL31 = "${armTrustedFirmwareiMX8}/bl31.bin";
|
||||
patches = imx8-attrs.patches;
|
||||
enableParallelBuilding = true;
|
||||
defconfig = "${targetBoard}_mek_defconfig";
|
||||
extraMeta.platforms = ["aarch64-linux"];
|
||||
preBuildPhases = [ "copyBinaries" ];
|
||||
|
||||
copyBinaries = ''
|
||||
install -m 0644 ${imx-firmware}/${imx8-attrs.ahab} ./ahab-container.img
|
||||
install -m 0644 ${imx-firmware}/${imx8-attrs.scfw} ./${imx8-attrs.scfw}
|
||||
install -m 0644 $BL31 ./u-boot-atf.bin
|
||||
'';
|
||||
postBuild = ''
|
||||
${imx-mkimage} -commit > head.hash
|
||||
cat u-boot.bin head.hash > u-boot-hash.bin
|
||||
dd if=u-boot-hash.bin of=u-boot-atf.bin bs=1K seek=128
|
||||
${imx-mkimage} -soc ${imx8-attrs.soc} -rev B0 -append ahab-container.img -c -scfw ${imx8-attrs.scfw} -ap u-boot-atf.bin a35 0x80000000 -out flash.bin
|
||||
'';
|
||||
filesToInstall = [ "flash.bin" ];
|
||||
};
|
||||
|
||||
inherit imx-firmware;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user