diff --git a/flake.nix b/flake.nix index 705fd4c..ab640f7 100644 --- a/flake.nix +++ b/flake.nix @@ -308,14 +308,26 @@ fiatCode = fiatCodeForModel.${machineModel} or "USD"; }; + # Supported Pi boards, keyed by machine model. Each pairs the + # nixos-hardware board module (kernel, firmware, bootloader, device tree) + # with our own hardware glue (validator serial, kiosk display, no-suspend). + # Everything else in the Pi runtime is board-agnostic. + piBoards = { + rpi5 = { + hardware = nixos-hardware.nixosModules.raspberry-pi-5; + glue = ./deploy/nixos/hardware/raspberry-pi-5.nix; + }; + }; + # Shared module list (everything EXCEPT the root fs and the sd-image # builder). atm-app/fiatCode are threaded in so both products share one # evaluated app closure. - piBaseModules = { machineModel, atm-app, fiatCode }: [ - nixos-hardware.nixosModules.raspberry-pi-5 + piBaseModules = { machineModel, atm-app, fiatCode }: + let board = piBoards.${machineModel}; in [ + board.hardware ./deploy/nixos/configuration.nix ./deploy/nixos/bitspire-atm.nix - ./deploy/nixos/hardware/raspberry-pi-5.nix + board.glue ({ config, lib, pkgs, pkgs-unstable, ... }: { services.bitspire = { enable = true;