mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 09:17:14 +08:00 
			
		
		
		
	starfive visionfive2: Add firmware update script.
This commit is contained in:
		@@ -83,3 +83,31 @@ hardware.deviceTree.overlays = [{
 | 
			
		||||
    "${nixos-hardware}/starfive/visionfive/v2/visionfive-2-v1.2a-8GB.dts";
 | 
			
		||||
}];
 | 
			
		||||
```
 | 
			
		||||
# Updating the bootloader
 | 
			
		||||
## SD-Card
 | 
			
		||||
Install the firmware update script
 | 
			
		||||
``` nix
 | 
			
		||||
environment.systemPackages = [
 | 
			
		||||
  (pkgs.callPackage
 | 
			
		||||
    "${nixos-hardware}/starfive/visionfive/v2/firmware.nix"
 | 
			
		||||
    { }).updater-sd
 | 
			
		||||
];
 | 
			
		||||
```
 | 
			
		||||
Then run as root
 | 
			
		||||
``` sh
 | 
			
		||||
visionfive2-firmware-update-sd
 | 
			
		||||
```
 | 
			
		||||
## SPI Flash
 | 
			
		||||
Install the firmware update script
 | 
			
		||||
``` nix
 | 
			
		||||
environment.systemPackages = [
 | 
			
		||||
  (pkgs.callPackage
 | 
			
		||||
    "${nixos-hardware}/starfive/visionfive/v2/firmware.nix"
 | 
			
		||||
    { }).updater-flash
 | 
			
		||||
];
 | 
			
		||||
```
 | 
			
		||||
Then run as root
 | 
			
		||||
``` sh
 | 
			
		||||
visionfive2-firmware-update-flash
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
{ callPackage, pkgsBuildHost, runCommand, writeText, stdenv, dtc }:
 | 
			
		||||
{ callPackage, pkgsBuildHost, runCommand, writeText, writeShellApplication
 | 
			
		||||
, stdenv, dtc, mtdutils, coreutils }:
 | 
			
		||||
let
 | 
			
		||||
  uboot = callPackage ./uboot.nix { };
 | 
			
		||||
  opensbi = callPackage ./opensbi.nix {
 | 
			
		||||
@@ -36,7 +37,7 @@ let
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  '';
 | 
			
		||||
in {
 | 
			
		||||
in rec {
 | 
			
		||||
  inherit opensbi uboot;
 | 
			
		||||
  spl = stdenv.mkDerivation {
 | 
			
		||||
    name = "starfive-visionfive2-spl";
 | 
			
		||||
@@ -58,4 +59,20 @@ in {
 | 
			
		||||
      ${uboot}/mkimage -f ${its-file} -A riscv -O u-boot -T firmware $out/share/starfive-visionfive2/visionfive2_fw_payload.img
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
  updater-flash = writeShellApplication {
 | 
			
		||||
    name = "visionfive2-firmware-update-flash";
 | 
			
		||||
    runtimeInputs = [ mtdutils ];
 | 
			
		||||
    text = ''
 | 
			
		||||
      flashcp -v ${spl}/share/starfive-visionfive2/spl.bin /dev/mtd0
 | 
			
		||||
      flashcp -v ${uboot-fit-image}/share/starfive-visionfive2/visionfive2_fw_payload.img /dev/mtd1
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
  updater-sd = writeShellApplication {
 | 
			
		||||
    name = "visionfive2-firmware-update-sd";
 | 
			
		||||
    runtimeInputs = [ ];
 | 
			
		||||
    text = ''
 | 
			
		||||
      dd if=${spl}/share/starfive-visionfive2/spl.bin of=/dev/mmcblk0p1 conv=fsync
 | 
			
		||||
      dd if=${uboot-fit-image}/share/starfive-visionfive2/visionfive2_fw_payload.img of=/dev/mmcblk0p2 conv=fsync
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
{ config, pkgs, lib, modulesPath, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  firmware = pkgs.callPackage ./firmware.nix { };
 | 
			
		||||
let firmware = pkgs.callPackage ./firmware.nix { };
 | 
			
		||||
in {
 | 
			
		||||
  imports = [
 | 
			
		||||
    "${modulesPath}/profiles/base.nix"
 | 
			
		||||
@@ -48,4 +47,6 @@ in {
 | 
			
		||||
      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment.systemPackages = [ firmware.updater-flash ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user