mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 09:17:14 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  runCommand,
 | 
						|
  buildPackages,
 | 
						|
  pkgs,
 | 
						|
}:
 | 
						|
 | 
						|
let
 | 
						|
  uboot = pkgs.callPackage ./uboot.nix { };
 | 
						|
 | 
						|
  opensbi = pkgs.opensbi.override {
 | 
						|
    withPayload = "${uboot}/u-boot.bin";
 | 
						|
    withFDT = "${uboot}/u-boot.dtb";
 | 
						|
  };
 | 
						|
in
 | 
						|
runCommand "firmware-starfive-visionfive-v1"
 | 
						|
  {
 | 
						|
    nativeBuildInputs = with buildPackages; [ xxd ];
 | 
						|
  }
 | 
						|
  ''
 | 
						|
    function handle_file {
 | 
						|
      inFile=$1
 | 
						|
      echo inFile: $inFile
 | 
						|
      outFile=$2
 | 
						|
      inSize=`stat -c "%s" $inFile`
 | 
						|
      inSize32HexBe=`printf "%08x\n" $inSize`
 | 
						|
      inSize32HexLe=''${inSize32HexBe:6:2}''${inSize32HexBe:4:2}''${inSize32HexBe:2:2}''${inSize32HexBe:0:2}
 | 
						|
      echo "inSize: $inSize (0x$inSize32HexBe, LE:0x$inSize32HexLe)"
 | 
						|
      echo $inSize32HexLe | xxd -r -ps > $outFile
 | 
						|
      cat $inFile >> $outFile
 | 
						|
      echo outFile: $outFile
 | 
						|
      outSize=`stat -c "%s" $outFile`
 | 
						|
      outSize32HexBe=`printf "%08x\n" $outSize`
 | 
						|
      echo "outSize: $outSize (0x$outSize32HexBe)"
 | 
						|
    }
 | 
						|
 | 
						|
    mkdir -p "$out/nix-support"
 | 
						|
    echo "file bin \"$out/opensbi_u-boot_starfive_visionfive_v1.bin\"" >> "$out/nix-support/hydra-build-products"
 | 
						|
    handle_file ${opensbi}/share/opensbi/lp64/generic/firmware/fw_payload.bin $out/opensbi_u-boot_starfive_visionfive_v1.bin
 | 
						|
  ''
 |