mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 09:17:14 +08:00 
			
		
		
		
	In addition, adjust code formatting and improve documentation Signed-off-by: Ivan Nikolaenko <ivan.nikolaenko@unikie.com>
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ 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-for-imx8qm.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;
 | 
						|
}
 | 
						|
 |