{ pkgs, lib, namespace, ... }: { boot = { # loader.raspberry-pi = { # firmwarePackage = kernelBundle.raspberrypifw; # variant = "4"; # }; # kernelPackages = kernelBundle.linuxPackages_rpi4; # kernelPackages = pkgs.${namespace}.linuxPackages_cachyos-lto; kernelPackages = pkgs.${namespace}.linuxPackages_rpi4-lts; supportedFilesystems = lib.mkForce [ ]; }; specialisation = { "linux-latest".configuration = { boot = { kernelPackages = lib.mkOverride 90 pkgs.unstable.linuxPackages_latest; }; }; }; ${namespace}.hardware.raspberry-pi.config = { all = { # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters base-dt-params = { i2c_arm = { enable = true; value = "on"; }; i2c = { enable = true; value = "on"; }; spi = { enable = true; value = "on"; }; }; 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 = { }; }; }; }