2023-03-03 21:04:39 +01:00
|
|
|
{ lib, pkgs, config, ...}:
|
|
|
|
let
|
|
|
|
inherit (lib) mkEnableOption mkOption types isDerivation hasAttr ;
|
|
|
|
in {
|
|
|
|
options = {
|
|
|
|
boot = {
|
2023-03-03 23:43:44 +01:00
|
|
|
};
|
2023-03-03 23:52:33 +01:00
|
|
|
hardware = {
|
2023-03-03 21:04:39 +01:00
|
|
|
dts = {
|
|
|
|
src = mkOption { type = types.path; };
|
|
|
|
includes = mkOption {
|
|
|
|
default = [];
|
|
|
|
type = types.listOf types.path;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
defaultOutput = mkOption {
|
|
|
|
type = types.nonEmptyStr;
|
|
|
|
};
|
|
|
|
flash = {
|
2023-03-07 23:03:31 +01:00
|
|
|
# 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
|
2023-03-03 21:04:39 +01:00
|
|
|
address = mkOption { type = types.str; };
|
|
|
|
size = mkOption { type = types.str; };
|
2023-04-10 21:39:26 +02:00
|
|
|
eraseBlockSize = mkOption { type = types.str; };
|
2023-03-03 21:04:39 +01:00
|
|
|
};
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|