109 lines
3.0 KiB
Nix
Executable File
109 lines
3.0 KiB
Nix
Executable File
{
|
|
pkgs,
|
|
lib,
|
|
namespace,
|
|
...
|
|
}:
|
|
{
|
|
boot = {
|
|
# loader.raspberry-pi = {
|
|
# bootloader = "kernel";
|
|
# firmwarePackage = pkgs.raspberrypifw;
|
|
# };
|
|
kernelPackages = pkgs.${namespace}.linuxPackages_rpi5-lts;
|
|
supportedFilesystems = lib.mkForce [ ];
|
|
};
|
|
|
|
nixpkgs = {
|
|
overlays = [
|
|
(_self: _super: {
|
|
linuxPackages_pi5-16k = pkgs.linuxPackagesFor (
|
|
pkgs.linux_6_18.override {
|
|
structuredExtraConfig = with lib.kernel; {
|
|
CONFIG_ARM64_4K_PAGES = lib.mkForce no;
|
|
CONFIG_ARM64_64K_PAGES = lib.mkForce no;
|
|
CONFIG_ARM64_16K_PAGES = lib.mkForce yes;
|
|
CONFIG_OF_CONFIGFS = yes;
|
|
CONFIG_CONFIGFS_FS = yes;
|
|
CONFIG_OF_OVERLAY = yes;
|
|
};
|
|
ignoreConfigErrors = true;
|
|
}
|
|
);
|
|
})
|
|
];
|
|
};
|
|
|
|
specialisation = {
|
|
"linux-latest".configuration = {
|
|
boot = {
|
|
kernelPackages = lib.mkOverride 90 pkgs.linuxPackages_pi5-16k;
|
|
};
|
|
};
|
|
};
|
|
|
|
${namespace}.hardware.raspberry-pi.config = {
|
|
# extra-config = {
|
|
# armstub = "RPI_EFI.fd";
|
|
# };
|
|
all = {
|
|
# # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters
|
|
|
|
# options = {
|
|
# # https://www.raspberrypi.com/documentation/computers/config_txt.html#enable_uart
|
|
# # in conjunction with `console=serial0,115200` in kernel command line (`cmdline.txt`)
|
|
# # creates a serial console, accessible using GPIOs 14 and 15 (pins
|
|
# # 8 and 10 on the 40-pin header)
|
|
# enable_uart = {
|
|
# enable = true;
|
|
# value = true;
|
|
# };
|
|
# # https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage
|
|
# # enable debug logging to the UART, also automatically enables
|
|
# # UART logging in `start.elf`
|
|
# uart_2ndstage = {
|
|
# enable = true;
|
|
# value = true;
|
|
# };
|
|
# };
|
|
|
|
# Base DTB parameters
|
|
# https://github.com/raspberrypi/linux/blob/a1d3defcca200077e1e382fe049ca613d16efd2b/arch/arm/boot/dts/overlays/README#L132
|
|
base-dt-params = {
|
|
|
|
# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#enable-pcie
|
|
pciex1 = {
|
|
enable = true;
|
|
value = "on";
|
|
};
|
|
# PCIe Gen 3.0
|
|
# https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#pcie-gen-3-0
|
|
pciex1_gen = {
|
|
enable = true;
|
|
value = "3";
|
|
};
|
|
|
|
};
|
|
|
|
# extra-config = ''
|
|
# armstub=RPI_EFI.fd
|
|
# device_tree_address=0x1f0000
|
|
# device_tree_end=0x210000
|
|
|
|
# # Force 32 bpp framebuffer allocation.
|
|
# framebuffer_depth=32
|
|
|
|
# # Disable compensation for displays with overscan.
|
|
# disable_overscan=1
|
|
|
|
# # Force maximum USB power regardless of the power supply.
|
|
# usb_max_current_enable=1
|
|
|
|
# # Force maximum CPU speed.
|
|
# force_turbo=1
|
|
# '';
|
|
|
|
};
|
|
};
|
|
}
|