nixos-hardware/starfive/visionfive/v2
Nick Cao 7f1836531b starfive visionfive2: use stable opensbi release 2023-08-18 16:38:08 +01:00
..
README.md starfive visionfive2: Add firmware update script. 2023-06-08 20:24:13 +02:00
default.nix starfive visionfive2: Increase mtd0 to fit spl 2023-08-04 21:10:16 +01:00
firmware.nix starfive visionfive2: Add firmware update script. 2023-06-08 20:24:13 +02:00
linux-6.5.nix starfive visionfive2: drop outdated kernel patches 2023-08-18 16:37:22 +01:00
opensbi.nix starfive visionfive2: use stable opensbi release 2023-08-18 16:38:08 +01:00
qspi-patch.dts starfive visionfive2: Increase mtd0 to fit spl 2023-08-04 21:10:16 +01:00
sd-image-installer.nix Init starfive visionfive 2 2023-04-16 23:18:18 +02:00
sd-image.nix starfive visionfive2: Add firmware update script. 2023-06-08 20:24:13 +02:00
spl-tool.nix starfive visionfive2: Update spl_tool 2023-04-18 09:19:48 +02:00
uboot.nix starfive visionfive2: u-boot: update to SDK version v3.0.4 2023-06-08 10:53:58 +08:00
visionfive-2-v1.2a-8GB.dts starfive visionfive2: replace 8GB memory patch with overlay 2023-05-23 20:31:37 +02:00
visionfive-2-v1.3b-8GB.dts starfive visionfive2: replace 8GB memory patch with overlay 2023-05-23 20:31:37 +02:00

README.md

Creating a SD-Image

Create and configure the flake.nix file:

{
  inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
  inputs.nixos-hardware.url = "github:nixos/nixos-hardware";

  # Some dependencies of this flake are not yet available on non linux systems
  inputs.systems.url = "github:nix-systems/x86_64-linux";
  inputs.flake-utils.url = "github:numtide/flake-utils";
  inputs.flake-utils.inputs.systems.follows = "systems";

  outputs = { self, nixpkgs, nixos-hardware, flake-utils, ... }:
    flake-utils.lib.eachDefaultSystem (system:
      rec {
        packages.default = packages.sd-image;
        packages.sd-image = (import "${nixpkgs}/nixos" {
          configuration =
            { config, ... }: {
              imports = [
                "${nixos-hardware}/starfive/visionfive/v2/sd-image-installer.nix"
              ];

              # If you want to use ssh set a password
              # users.users.nixos.password = "super secure password";
              # OR add your public ssh key
              # users.users.nixos.openssh.authorizedKeys.keys = [ "ssh-rsa ..." ];

              # AND configure networking
              # networking.interfaces.end0.useDHCP = true;
              # networking.interfaces.end1.useDHCP = true;

              # Additional configuration goes here

              sdImage.compressImage = false;

              nixpkgs.crossSystem = {
                config = "riscv64-unknown-linux-gnu";
                system = "riscv64-linux";
              };

              system.stateVersion = "23.05";
            };
          inherit system;
        }).config.system.build.sdImage;
      });
}

Build the sd image.

nix build .#

Additional configuration

Additional configuration may be needed depending on your specific hardware configuration.

Board rev 1.2A

If you have the 1.2A board revision add the following to your config:

hardware.deviceTree.name =
  lib.mkDefault "starfive/jh7110-starfive-visionfive-2-v1.2a.dtb";

8GB memory

If your board has 8GB of RAM add the following to your config:

Board rev 1.3B

hardware.deviceTree.overlays = [{
  name = "8GB-patch";
  dtsFile =
    "${nixos-hardware}/starfive/visionfive/v2/visionfive-2-v1.3b-8GB.dts";
}];

Board rev 1.2A

hardware.deviceTree.overlays = [{
  name = "8GB-patch";
  dtsFile =
    "${nixos-hardware}/starfive/visionfive/v2/visionfive-2-v1.2a-8GB.dts";
}];

Updating the bootloader

SD-Card

Install the firmware update script

environment.systemPackages = [
  (pkgs.callPackage
    "${nixos-hardware}/starfive/visionfive/v2/firmware.nix"
    { }).updater-sd
];

Then run as root

visionfive2-firmware-update-sd

SPI Flash

Install the firmware update script

environment.systemPackages = [
  (pkgs.callPackage
    "${nixos-hardware}/starfive/visionfive/v2/firmware.nix"
    { }).updater-flash
];

Then run as root

visionfive2-firmware-update-flash