{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; }; outputs = { self, nixpkgs }: let system = "x86_64-linux"; crossSystem = "aarch64-linux"; pkgs = import nixpkgs { inherit system; crossSystem = { gcc.cpu = "cortex-a53"; config = "aarch64-unknown-linux-gnu"; linux-kernel = { DTB = true; autoModules = true; baseConfig = "defconfig"; extraConfig = "# Raspberry Pi 3 stuff. Not needed for s >= 4.10.\nARCH_BCM2835 y\nBCM2835_MBOX y\nBCM2835_WDT y\nRASPBERRYPI_FIRMWARE y\nRASPBERRYPI_POWER y\nSERIAL_8250_BCM2835AUX y\nSERIAL_8250_EXTENDED y\nSERIAL_8250_SHARE_IRQ y\n\n# Cavium ThunderX stuff.\nPCI_HOST_THUNDER_ECAM y\n\n# Nvidia Tegra stuff.\nPCI_TEGRA y\n\n# The default (=y) forces us to have the XHCI firmware available in initrd,\n# which our initrd builder can't currently do easily.\nUSB_XHCI_TEGRA m\n"; name = "aarch64-multiplatform"; preferBuiltin = true; target = "Image"; }; }; }; in { nixosConfigurations.triviOS = nixpkgs.lib.nixosSystem { system = crossSystem; modules = [ ./triviOS ]; }; formatter.${system} = pkgs.pkgsBuildBuild.nixpkgs-fmt; }; }