uefi testing
This commit is contained in:
@@ -66,6 +66,7 @@ let
|
||||
};
|
||||
firmware = pkgs.${namespace}.raspberrypifw;
|
||||
};
|
||||
|
||||
ubootBuilder = import ./uboot-builder.nix {
|
||||
inherit pkgs;
|
||||
ubootPackage = (if (cfg.variant == "5") then pkgs.${namespace}.uboot-pi5 else pkgs.${namespace}.uboot-pi4);
|
||||
@@ -73,6 +74,12 @@ let
|
||||
extlinuxConfBuilder = config.boot.loader.generic-extlinux-compatible.populateCmd;
|
||||
};
|
||||
|
||||
uefiBuilder = import ./uefi-builder.nix{
|
||||
inherit pkgs;
|
||||
uefiPackage = (if (cfg.variant == "5") then pkgs.${namespace}.uefi-rpi5 else pkgs.${namespace}.uefi-rpi4);
|
||||
firmwareBuilder = firmwarePopulateCmd;
|
||||
};
|
||||
|
||||
# Builders exposed via populateCmd, which run on the build architecture
|
||||
populateFirmwareBuilder = import ./firmware-builder.nix {
|
||||
pkgs = pkgs.buildPackages;
|
||||
@@ -106,6 +113,7 @@ let
|
||||
builder = {
|
||||
# system.build.installBootLoader
|
||||
uboot = "${ubootBuilder} -f /boot/firmware -b /boot -c";
|
||||
uefi = "${uefiBuilder} -f /boot/firmware -b /boot -c";
|
||||
};
|
||||
|
||||
# firmware: caller must provide `-c <nixos configuration>` and `-f <firmware target path>`
|
||||
@@ -128,6 +136,14 @@ in
|
||||
];
|
||||
description = "Raspberry Pi variant (4 or 5)";
|
||||
};
|
||||
|
||||
bootType = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"uefi"
|
||||
"uboot"
|
||||
];
|
||||
default = "uboot";
|
||||
};
|
||||
|
||||
apply-overlays-dtmerge = {
|
||||
enable = lib.mkEnableOption "" // {
|
||||
@@ -166,9 +182,10 @@ in
|
||||
]);
|
||||
loader = {
|
||||
generic-extlinux-compatible = {
|
||||
enable = lib.mkDefault true;
|
||||
useGenerationDeviceTree = lib.mkOverride 60 true;
|
||||
enable = lib.mkDefault (if cfg.bootType == "uefi" then false else true);
|
||||
useGenerationDeviceTree = lib.mkOverride 60 (if cfg.bootType == "uefi" then false else true);
|
||||
};
|
||||
systemd-boot.enable = (if cfg.bootType == "uefi" then true else false);
|
||||
grub.enable = lib.mkForce false;
|
||||
};
|
||||
};
|
||||
@@ -259,10 +276,10 @@ in
|
||||
};
|
||||
|
||||
system = {
|
||||
build.installBootLoader = lib.mkOverride 60 (builder."uboot");
|
||||
build.installBootLoader = lib.mkOverride 60 (if cfg.bootType == "uefi" then (builder."uefi") else (builder."uboot")); # todo
|
||||
boot = {
|
||||
loader = {
|
||||
id = lib.mkOverride 60 ("raspberrypi-uboot");
|
||||
id = lib.mkOverride 60 (if cfg.bootType == "uefi" then "raspberrypi-uefi" else "raspberrypi-uboot"); # todo
|
||||
kernelFile = pkgs.stdenv.hostPlatform.linux-kernel.target;
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user