starfive visionfive2: allow uboot and opensbi source overrides
This commit is contained in:
parent
a2861aa696
commit
7eab0aa0b7
4 changed files with 57 additions and 31 deletions
|
|
@ -1,26 +1,50 @@
|
|||
{ callPackage
|
||||
, writeShellApplication
|
||||
, stdenv
|
||||
, mtdutils
|
||||
}:
|
||||
|
||||
rec {
|
||||
opensbi = callPackage ./opensbi.nix { };
|
||||
uboot = callPackage ./uboot.nix { inherit opensbi; };
|
||||
updater-flash = writeShellApplication {
|
||||
name = "visionfive2-firmware-update-flash";
|
||||
runtimeInputs = [ mtdutils ];
|
||||
text = ''
|
||||
flashcp -v ${uboot}/u-boot-spl.bin.normal.out /dev/mtd0
|
||||
flashcp -v ${uboot}/u-boot.itb /dev/mtd2
|
||||
'';
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.hardware.visionfive2;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
hardware.visionfive2 = {
|
||||
opensbi.src = lib.mkOption {
|
||||
description = "VisionFive2 OpenSBI source";
|
||||
type = lib.types.nullOr lib.types.package;
|
||||
default = null;
|
||||
};
|
||||
uboot.src = lib.mkOption {
|
||||
description = "VisionFive2 U-boot source";
|
||||
type = lib.types.nullOr lib.types.package;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
updater-sd = writeShellApplication {
|
||||
name = "visionfive2-firmware-update-sd";
|
||||
runtimeInputs = [ ];
|
||||
text = ''
|
||||
dd if=${uboot}/u-boot-spl.bin.normal.out of=/dev/mmcblk0p1 conv=fsync
|
||||
dd if=${uboot}/u-boot.itb of=/dev/mmcblk0p2 conv=fsync
|
||||
'';
|
||||
|
||||
config = {
|
||||
system.build = {
|
||||
opensbi = (pkgs.callPackage ./opensbi.nix {}).overrideAttrs (f: p: {
|
||||
src = if cfg.opensbi.src != null then cfg.opensbi.src else p.src;
|
||||
});
|
||||
|
||||
uboot = (pkgs.callPackage ./uboot.nix { inherit (config.system.build) opensbi; }).overrideAttrs (f: p: {
|
||||
src = if cfg.uboot.src != null then cfg.uboot.src else p.src;
|
||||
});
|
||||
|
||||
updater-flash = pkgs.writeShellApplication {
|
||||
name = "visionfive2-firmware-update-flash";
|
||||
runtimeInputs = [ pkgs.mtdutils ];
|
||||
text = ''
|
||||
flashcp -v ${config.system.build.uboot}/u-boot-spl.bin.normal.out /dev/mtd0
|
||||
flashcp -v ${config.system.build.uboot}/u-boot.itb /dev/mtd2
|
||||
'';
|
||||
};
|
||||
|
||||
updater-sd = pkgs.writeShellApplication {
|
||||
name = "visionfive2-firmware-update-sd";
|
||||
runtimeInputs = [ ];
|
||||
text = ''
|
||||
dd if=${config.system.build.uboot}/u-boot-spl.bin.normal.out of=/dev/mmcblk0p1 conv=fsync
|
||||
dd if=${config.system.build.uboot}/u-boot.itb of=/dev/mmcblk0p2 conv=fsync
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue