49 lines
1.3 KiB
Nix
49 lines
1.3 KiB
Nix
{ ... }: {
|
|
#TODO[epic=Moderate] Clean this up, move to host's configuration.nix.
|
|
# Native Raspberry Pi boot flow.
|
|
boot.loader.raspberry-pi.bootloader = "kernel";
|
|
boot.loader.grub.enable = false;
|
|
boot.consoleLogLevel = 7;
|
|
boot.kernelModules = [ "nvme" ];
|
|
|
|
# Root device for kernel cmdline (NVMe boot).
|
|
boot.kernelParams = [
|
|
"root=PARTUUID=4d44c78a-ee3c-4e3e-9eee-0f2eb10347b6"
|
|
"rootfstype=ext4"
|
|
];
|
|
|
|
console = {
|
|
earlySetup = true;
|
|
font = "ter-v32n";
|
|
};
|
|
|
|
# Enable PCIe x1 for CM5 NVMe adapter.
|
|
hardware.raspberry-pi.config.cm5.base-dt-params.pciex1 = {
|
|
enable = true;
|
|
value = "on";
|
|
};
|
|
|
|
powerManagement.cpuFreqGovernor = "powersave";
|
|
|
|
# Root + firmware as boot-critical mounts.
|
|
fileSystems."/".neededForBoot = true;
|
|
fileSystems."/boot/firmware".neededForBoot = true;
|
|
|
|
# Pi generational boot expects boot-firmware.mount to exist.
|
|
systemd.mounts = [
|
|
{
|
|
what = "/dev/disk/by-label/FIRMWARE";
|
|
where = "/boot/firmware";
|
|
type = "vfat";
|
|
options = "noatime,fmask=0022,dmask=0022";
|
|
wantedBy = [ "local-fs.target" ];
|
|
after = [ "local-fs-pre.target" ];
|
|
}
|
|
];
|
|
|
|
# There is no serial console on uConsole CM5 by default.
|
|
systemd.services."serial-getty@ttyS0".enable = false;
|
|
|
|
system.stateVersion = "25.11";
|
|
}
|