45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  fetchFromGitHub,
 | 
						|
  buildUBoot,
 | 
						|
  m1n1,
 | 
						|
}:
 | 
						|
(buildUBoot rec {
 | 
						|
  src = fetchFromGitHub {
 | 
						|
    # tracking: https://pagure.io/fedora-asahi/uboot-tools/commits/main
 | 
						|
    owner = "AsahiLinux";
 | 
						|
    repo = "u-boot";
 | 
						|
    rev = "c134629a8bc448e979967bf0632fdd5bb42ee1d7";
 | 
						|
    hash = "sha256-EPdpyvblkvQrMCiPjX3Bnqp8s/3Yd/gYM1PQu4PDMhs=";
 | 
						|
  };
 | 
						|
  version = "2024.04-4-asahi";
 | 
						|
 | 
						|
  defconfig = "apple_m1_defconfig";
 | 
						|
  extraMeta.platforms = ["aarch64-linux"];
 | 
						|
  filesToInstall = [
 | 
						|
    "u-boot-nodtb.bin.gz"
 | 
						|
    "m1n1-u-boot.bin"
 | 
						|
  ];
 | 
						|
  extraConfig = ''
 | 
						|
    CONFIG_IDENT_STRING=" ${version}"
 | 
						|
    CONFIG_VIDEO_FONT_4X6=n
 | 
						|
    CONFIG_VIDEO_FONT_8X16=n
 | 
						|
    CONFIG_VIDEO_FONT_SUN12X22=n
 | 
						|
    CONFIG_VIDEO_FONT_16X32=y
 | 
						|
  '';
 | 
						|
})
 | 
						|
.overrideAttrs (o: {
 | 
						|
  # nixos's downstream patches are not applicable
 | 
						|
  patches = [
 | 
						|
  ];
 | 
						|
 | 
						|
  # DTC= flag somehow breaks DTC compilation so we remove it
 | 
						|
  makeFlags = builtins.filter (s: (!(lib.strings.hasPrefix "DTC=" s))) o.makeFlags;
 | 
						|
 | 
						|
  preInstall = ''
 | 
						|
    # compress so that m1n1 knows U-Boot's size and can find things after it
 | 
						|
    gzip -n u-boot-nodtb.bin
 | 
						|
    cat ${m1n1}/build/m1n1.bin arch/arm/dts/t[68]*.dtb u-boot-nodtb.bin.gz > m1n1-u-boot.bin
 | 
						|
  '';
 | 
						|
})
 |