https://github.com/9elements/pwrseqd
Power sequencing daemon
https://github.com/9elements/pwrseqd
Last synced: about 1 year ago
JSON representation
Power sequencing daemon
- Host: GitHub
- URL: https://github.com/9elements/pwrseqd
- Owner: 9elements
- License: apache-2.0
- Created: 2021-12-20T13:28:58.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-10T17:45:41.000Z (about 1 year ago)
- Last Synced: 2025-04-12T06:54:28.867Z (about 1 year ago)
- Language: C++
- Size: 394 KB
- Stars: 2
- Watchers: 10
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Power sequencing daemon (pwrseqd)
The *pwrseqd* is a replacement for the CPLD found on modern server
mainboards. It has to be run on the BMC capable of controlling
all power VRs, monitoring all rails, controlling GPIOs and doing thermal
management.
This software is meant to be used on [OpenBmc](https://github.com/openbmc/openbmc).
Detailed implementation can be found in [HighLevelOverview](doc/HighLevelOverview.md).
The whole application is designed around Linux kernel features and requires the
following options to be enabled:
```
CONFIG_REGULATOR=y
CONFIG_REGULATOR_NETLINK_EVENTS=y
CONFIG_REGULATOR_USERSPACE_CONSUMER=y
CONFIG_GPIO=y
CONFIG_GPIO_CDEV=y
```
# How to build
```bash
mkdir build
cd build
cmake ..
make
```
# External dependencies
- libyaml-cpp
- libgpiod
- libgpiodcxx
- libpthread
- libbsdbusplus
- libphosphor-logging
# Config files
The program needs one or multiple configuration file in YAML syntax to
operate. The configuration describes the power sequencing, which is very
similar to the verilog/VHDL code used to compiled into a CPLD bitstream.
Configuration files are merged on program startup.
For details see [Configuration file layout](doc/config.md).
Also see special signals [Predefined signals](doc/specialSignals.md).
## License
```
Apache License
Version 2.0, January 2004
```