1# phosphor-regulators 2 3## Overview 4 5The `phosphor-regulators` application configures and monitors voltage 6regulators. The application is controlled by a JSON configuration file. 7 8The application does not control how voltage regulators are enabled or how to 9monitor their Power Good (pgood) status. Those operations are typically 10performed by power sequencer hardware and the 11[`phosphor-power-sequencer`](../../phosphor-power-sequencer/docs/README.md) 12application. 13 14**Note:** Many changes have been made to this documentation to define 15enhancements to the multiple chassis support. These enhancements are not yet 16implemented in this application. The enhancements are also dependent on the 17planned new `phosphor-chassis-power` application. This disclaimer will be 18removed when this support is fully implemented. 19 20## Application 21 22`phosphor-regulators` is a single-threaded C++ executable. It is a 'daemon' 23process that runs continually. The application is launched by systemd when the 24BMC reaches the Ready state and before the system is powered on. 25 26The application is driven by a system-specific JSON configuration file. The JSON 27file is found and parsed at runtime. The parsing process creates a collection of 28C++ objects. These objects implement the regulator configuration and monitoring 29behavior that was specified in the JSON file. 30 31See [Internal Design](internal_design.md) for more information. 32 33## Configuring voltage regulators 34 35`phosphor-regulators` can modify the configuration of voltage regulators, such 36as modifying the output voltage or overcurrent limits. 37 38See [Regulator Configuration](configuration.md) for more information. 39 40## Monitoring voltage regulators 41 42`phosphor-regulators` supports two types of regulator monitoring: 43 44- Sensor monitoring 45 - Reading sensor values such as voltage output and temperature 46- Phase fault monitoring 47 - Checking if a redundant regulator phase has failed 48 49See [Regulator Monitoring](monitoring.md) for more information. 50 51## JSON configuration file 52 53The JSON configuration file defines the following: 54 55- Voltage regulators in the system. 56- Operations to perform on those regulators, such as configuration or sensor 57 monitoring. 58 59Configuration files are stored in the [`config_files`](../config_files) 60directory. 61 62See the [configuration file documentation](docs/config_file/README.md) for 63information on the file format, validation tool, and installation directories. 64 65## Multiple chassis systems 66 67A BMC-based system can contain one or more chassis. A chassis is typically a 68physical enclosure that contains system components such as CPUs, fans, power 69supplies, and PCIe cards. 70 71See [Multiple Chassis](multiple_chassis.md) for more information. 72 73## Testing 74 75Automated test cases exist for most of the code in this application. See 76[Testing](testing.md) for more information. 77