{ lib, pkgs, config, ...}: let inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ; in { options = { boot = { }; hardware = { dts = { src = mkOption { type = types.path; }; includes = mkOption { default = []; type = types.listOf types.path; }; }; defaultOutput = mkOption { type = types.nonEmptyStr; }; flash = { # start address and size of whichever partition (often # called "firmware") we're going to overwrite with our # kernel uimage and root fs. Not the entire flash, as # that often also contains the bootloader, data for # for wireless devices, etc address = mkOption { type = types.str; }; size = mkOption { type = types.str; }; eraseBlockSize = mkOption { type = types.str; }; }; loadAddress = mkOption { default = null; }; entryPoint = mkOption { }; radios = mkOption { type = types.listOf types.str; default = []; example = ["ath9k" "ath10k"]; }; rootDevice = mkOption { }; networkInterfaces = mkOption { type = types.attrsOf types.anything; }; }; }; }