blob: d98cc3671e071382da03108a1caccb51bd0db3e1 [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Power Manager Node Config Schema",
"type": "array",
"items": {
"oneOf": [
{
"properties": {
"type": {
"pattern": "CrashReportHandler"
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "CpuControlHandler"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"driver_path": {
"type": "string"
},
"capacitance": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"min_cpu_clock_speed": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
"additionalProperties": false,
"required": [
"driver_path",
"capacitance"
]
},
"dependencies": {
"type": "object",
"properties": {
"cpu_stats_handler_node": {
"type": "string"
},
"cpu_dev_handler_node": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"cpu_stats_handler_node",
"cpu_dev_handler_node"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config",
"dependencies"
]
},
{
"properties": {
"type": {
"pattern": "CpuStatsHandler"
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "DeviceControlHandler"
},
"config": {
"type": "object",
"properties": {
"driver_path": {
"type": "string"
}
}
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "DriverManagerHandler"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"registration_timeout_s": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config"
]
},
{
"properties": {
"type": {
"pattern": "ShutdownWatcher"
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "SystemShutdownHandler"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"component_manager_path": {
"type": "string"
},
"shutdown_timeout_s": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
"required": [
"component_manager_path"
]
},
"dependencies": {
"type": "object",
"properties": {
"driver_manager_handler_node": {
"type": "string"
},
"shutdown_watcher_node": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"driver_manager_handler_node"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config",
"dependencies"
]
},
{
"properties": {
"type": {
"pattern": "TemperatureHandler"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"driver_path": {
"type": "string"
},
"cache_duration_ms": {
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"driver_path",
"cache_duration_ms"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config"
]
},
{
"properties": {
"type": {
"pattern": "ThermalLimiter"
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "ThermalPolicy"
},
"name": {
"type": "string"
},
"dependencies": {
"type": "object",
"properties": {
"crash_report_handler_node": {
"type": "string"
},
"cpu_control_nodes": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"system_power_handler_node": {
"type": "string"
},
"temperature_handler_node": {
"type": "string"
},
"thermal_limiter_node": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"cpu_control_nodes",
"system_power_handler_node",
"temperature_handler_node",
"thermal_limiter_node"
]
},
"config": {
"type": "object",
"properties": {
"thermal_shutdown_temperature": {
"type": "number"
},
"throttle_end_delay": {
"type": "number"
},
"controller_params": {
"type": "object",
"properties": {
"sample_interval": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"filter_time_constant": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"target_temperature": {
"type": "number",
"minimum": 30.0,
"maximum": 110.0
},
"e_integral_min": {
"type": "number",
"maximum": 0
},
"e_integral_max": {
"type": "number",
"minimum": 0
},
"sustainable_power": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"proportional_gain": {
"type": "number",
"minimum": 0
},
"integral_gain": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"sample_interval",
"filter_time_constant",
"target_temperature",
"e_integral_min",
"e_integral_max",
"sustainable_power",
"proportional_gain",
"integral_gain"
]
}
},
"additionalProperties": false,
"required": [
"thermal_shutdown_temperature",
"controller_params"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config",
"dependencies"
]
},
{
"properties": {
"type": {
"pattern": "ThermalShutdown"
},
"name": {
"type": "string"
},
"dependencies": {
"type": "object",
"properties": {
"system_shutdown_node": {
"type": "string"
},
"temperature_handler_node": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"system_shutdown_node",
"temperature_handler_node"
]
},
"config": {
"type": "object",
"properties": {
"thermal_shutdown_temperature_c": {
"type": "number"
},
"poll_interval_s": {
"type": "number"
},
"filter_time_constant_s": {
"type": "number"
}
},
"additionalProperties": false,
"required": [
"thermal_shutdown_temperature_c",
"poll_interval_s",
"filter_time_constant_s"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config",
"dependencies"
]
}
]
}
}