mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-23 03:19:42 +01:00
Merge #645
645: starfive visionfive2: Add firmware update script. r=Mic92 a=leifhelm Co-authored-by: Jakob Leifhelm <jakob.leifhelm@gmail.com>
This commit is contained in:
commit
70d5f55fae
3 changed files with 50 additions and 4 deletions
|
@ -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 ];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue