From ee7f64283f2fe728fd4bd67280bf59daaec9df54 Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Tue, 9 May 2017 11:03:14 -0500 Subject: Add modes to phosphor-fan-control phosphor-fan-control can behave differently based on its command line arguments --init: Set fans to full speed, delay for a configurable amount of time to allow fans to ramp up, start the fan control ready target, and then exit. --control: Start the control algorithm. Never exits. Will be started as part of the fan control ready target. Change-Id: I453daf8cc05a5c85a19c098e1cca64cac2ad9520 Signed-off-by: Matt Spinler --- control/gen-fan-zone-defs.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'control/gen-fan-zone-defs.py') diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py index 3457d41..04f206f 100755 --- a/control/gen-fan-zone-defs.py +++ b/control/gen-fan-zone-defs.py @@ -11,12 +11,14 @@ import yaml from argparse import ArgumentParser from mako.template import Template -#Note: Condition is a TODO +#Note: Condition is a TODO (openbmc/openbmc#1500) tmpl = '''/* This is a generated file. */ #include "manager.hpp" using namespace phosphor::fan::control; +const unsigned int Manager::_powerOnDelay{${mgr_data['power_on_delay']}}; + const std::vector Manager::_zoneLayouts { %for zone_group in zones: @@ -151,8 +153,15 @@ if __name__ == '__main__': with open(args.fan_yaml, 'r') as fan_input: fan_data = yaml.safe_load(fan_input) or {} - zone_data = buildZoneData(zone_data, fan_data) + zone_config = buildZoneData(zone_data.get('zone_configuration', {}), + fan_data) + + manager_config = zone_data.get('manager_configuration', {}) + + if manager_config.get('power_on_delay') is None: + manager_config['power_on_delay'] = 0 output_file = os.path.join(args.output_dir, "fan_zone_defs.cpp") with open(output_file, 'w') as output: - output.write(Template(tmpl).render(zones=zone_data)) + output.write(Template(tmpl).render(zones=zone_config, + mgr_data=manager_config)) -- cgit v1.2.1