blob: 2f3ceb609f13ce6b30ce19508f0dac69128ce90f [file] [log] [blame]
Patrick Williams267c0bb2017-01-19 21:20:46 -06001SUMMARY = "Phosphor State Management"
2DESCRIPTION = "Phosphor State Manager provides a set of system state \
3management daemons. It is suitable for use on a wide variety of OpenBMC \
4platforms."
5HOMEPAGE = "https://github.com/openbmc/phosphor-state-manager"
6PR = "r1"
Patrick Venturee22ac6b2018-10-21 08:23:40 -07007PV = "1.0+git${SRCPV}"
Patrick Williams267c0bb2017-01-19 21:20:46 -06008LICENSE = "Apache-2.0"
9LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
10
11STATE_MGR_PACKAGES = " \
12 ${PN}-host \
13 ${PN}-chassis \
Josh Kinga9462882017-01-19 14:04:03 -060014 ${PN}-bmc \
Michael Tritz7199d262017-04-18 17:01:12 -050015 ${PN}-discover \
Andrew Geisslera94faf42017-05-08 15:58:01 -050016 ${PN}-host-check \
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060017 ${PN}-reset-sensor-states \
Andrew Geisslerf26fd902019-09-23 19:11:20 +000018 ${PN}-systemd-target-monitor \
Patrick Williams267c0bb2017-01-19 21:20:46 -060019"
Brad Bishopf6f49d52018-04-11 11:44:15 -040020PACKAGE_BEFORE_PN += "${STATE_MGR_PACKAGES}"
21ALLOW_EMPTY_${PN} = "1"
Brad Bishopc3f10572017-03-01 16:08:45 -050022
Patrick Williams267c0bb2017-01-19 21:20:46 -060023DBUS_PACKAGES = "${STATE_MGR_PACKAGES}"
24
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060025SYSTEMD_PACKAGES = "${PN}-discover \
26 ${PN}-reset-sensor-states \
Andrew Geisslerf26fd902019-09-23 19:11:20 +000027 ${PN}-systemd-target-monitor \
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060028"
Andrew Geissler7a4341e2018-03-13 11:46:27 -070029
30# The host-check function will check if the host is running
31# after a BMC reset.
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060032# The reset-sensor-states function will reset the host
Andrew Geissler7a4341e2018-03-13 11:46:27 -070033# sensors on a BMC reset or system power loss.
34# Neither is required for host state function but are
35# recommended to deal properly with these reset scenarios.
36RRECOMMENDS_${PN}-host = "${PN}-host-check ${PN}-reset-sensor-states"
Patrick Williams267c0bb2017-01-19 21:20:46 -060037
Andrew Geisslerc1debbb2019-12-11 14:51:20 -060038inherit meson pkgconfig
Patrick Williams267c0bb2017-01-19 21:20:46 -060039inherit obmc-phosphor-dbus-service
40
Patrick Williams267c0bb2017-01-19 21:20:46 -060041DEPENDS += "sdbusplus"
William A. Kennington IIIf0e66742018-10-18 01:34:43 -070042DEPENDS += "sdeventplus"
Patrick Williams267c0bb2017-01-19 21:20:46 -060043DEPENDS += "phosphor-logging"
Patrick Williamsd0486d82017-01-30 11:06:16 -060044DEPENDS += "phosphor-dbus-interfaces"
Brad Bishopcc51cd92018-10-18 17:07:53 -040045DEPENDS += "libcereal"
Andrew Geisslerf26fd902019-09-23 19:11:20 +000046DEPENDS += "nlohmann-json"
47DEPENDS += "cli11"
Patrick Williams267c0bb2017-01-19 21:20:46 -060048
Anthony Wilson3492fb92019-03-30 08:11:32 -070049FILES_${PN}-host = "${bindir}/phosphor-host-state-manager"
Patrick Williams267c0bb2017-01-19 21:20:46 -060050DBUS_SERVICE_${PN}-host += "xyz.openbmc_project.State.Host.service"
Andrew Geisslercd2b9462017-07-26 17:53:04 -050051DBUS_SERVICE_${PN}-host += "phosphor-reboot-host@.service"
Lei YU5ae34a52018-08-01 14:02:26 +080052SYSTEMD_ENVIRONMENT_FILE_${PN}-host += "obmc/phosphor-reboot-host/reboot.conf"
Andrew Geissler22957e82018-03-27 19:39:05 -070053SYSTEMD_SERVICE_${PN}-host += "phosphor-reset-host-reboot-attempts@.service"
Patrick Williams267c0bb2017-01-19 21:20:46 -060054
Anthony Wilson3492fb92019-03-30 08:11:32 -070055FILES_${PN}-chassis = "${bindir}/phosphor-chassis-state-manager"
Patrick Williams267c0bb2017-01-19 21:20:46 -060056DBUS_SERVICE_${PN}-chassis += "xyz.openbmc_project.State.Chassis.service"
57
Anthony Wilson3492fb92019-03-30 08:11:32 -070058FILES_${PN}-chassis += "${bindir}/obmcutil"
59
60FILES_${PN}-bmc = "${bindir}/phosphor-bmc-state-manager"
Josh Kinga9462882017-01-19 14:04:03 -060061DBUS_SERVICE_${PN}-bmc += "xyz.openbmc_project.State.BMC.service"
62
Anthony Wilson3492fb92019-03-30 08:11:32 -070063FILES_${PN}-discover = "${bindir}/phosphor-discover-system-state"
Michael Tritz1f792e02017-03-31 12:04:32 -050064SYSTEMD_SERVICE_${PN}-discover += "phosphor-discover-system-state@.service"
65
Anthony Wilson3492fb92019-03-30 08:11:32 -070066FILES_${PN}-host-check = "${bindir}/phosphor-host-check"
Andrew Geisslera94faf42017-05-08 15:58:01 -050067SYSTEMD_SERVICE_${PN}-host-check += "phosphor-reset-host-check@.service"
68SYSTEMD_SERVICE_${PN}-host-check += "phosphor-reset-host-running@.service"
69
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060070SYSTEMD_SERVICE_${PN}-reset-sensor-states += "phosphor-reset-sensor-states@.service"
71
Andrew Geisslerf26fd902019-09-23 19:11:20 +000072FILES_${PN}-systemd-target-monitor = " \
73 ${bindir}/phosphor-systemd-target-monitor \
74 ${sysconfdir}/phosphor-systemd-target-monitor/phosphor-target-monitor-default.json \
75 "
76SYSTEMD_SERVICE_${PN}-systemd-target-monitor += "phosphor-systemd-target-monitor.service"
77
Andrew Geisslera94faf42017-05-08 15:58:01 -050078RESET_CHECK_TMPL = "phosphor-reset-host-check@.service"
79RESET_CHECK_TGTFMT = "obmc-host-reset@{1}.target"
80RESET_CHECK_INSTFMT = "phosphor-reset-host-check@{0}.service"
81RESET_CHECK_FMT = "../${RESET_CHECK_TMPL}:${RESET_CHECK_TGTFMT}.requires/${RESET_CHECK_INSTFMT}"
82
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060083SENSOR_RESET_TMPL = "phosphor-reset-sensor-states@.service"
84SENSOR_RESET_TGTFMT = "obmc-host-reset@{1}.target"
85SENSOR_RESET_INSTFMT = "phosphor-reset-sensor-states@{0}.service"
86SENSOR_RESET_FMT = "../${SENSOR_RESET_TMPL}:${SENSOR_RESET_TGTFMT}.requires/${SENSOR_RESET_INSTFMT}"
87
Andrew Geisslera94faf42017-05-08 15:58:01 -050088RESET_RUNNING_TMPL = "phosphor-reset-host-running@.service"
89RESET_RUNNING_TGTFMT = "obmc-host-reset@{1}.target"
90RESET_RUNNING_INSTFMT = "phosphor-reset-host-running@{0}.service"
91RESET_RUNNING_FMT = "../${RESET_RUNNING_TMPL}:${RESET_RUNNING_TGTFMT}.requires/${RESET_RUNNING_INSTFMT}"
92
93SYSTEMD_LINK_${PN}-host-check += "${@compose_list_zip(d, 'RESET_CHECK_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}"
94SYSTEMD_LINK_${PN}-host-check += "${@compose_list_zip(d, 'RESET_RUNNING_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}"
95
Dhruvaraj Subhashchandran39179e52017-12-17 12:06:23 -060096SYSTEMD_LINK_${PN}-reset-sensor-states += "${@compose_list_zip(d, 'SENSOR_RESET_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}"
97
Andrew Geisslera94faf42017-05-08 15:58:01 -050098# Force the standby target to run the host reset check target
99RESET_TMPL_CTRL = "obmc-host-reset@.target"
Patrick Ventured607cfb2019-04-04 12:15:22 -0700100SYSD_TGT = "multi-user.target"
Andrew Geisslera94faf42017-05-08 15:58:01 -0500101RESET_INSTFMT_CTRL = "obmc-host-reset@{0}.target"
102RESET_FMT_CTRL = "../${RESET_TMPL_CTRL}:${SYSD_TGT}.wants/${RESET_INSTFMT_CTRL}"
103SYSTEMD_LINK_${PN}-host-check += "${@compose_list_zip(d, 'RESET_FMT_CTRL', 'OBMC_HOST_INSTANCES')}"
104
Michael Tritz1f792e02017-03-31 12:04:32 -0500105TMPL = "phosphor-discover-system-state@.service"
106INSTFMT = "phosphor-discover-system-state@{0}.service"
Patrick Ventured607cfb2019-04-04 12:15:22 -0700107FMT = "../${TMPL}:multi-user.target.wants/${INSTFMT}"
Michael Tritz1f792e02017-03-31 12:04:32 -0500108SYSTEMD_LINK_${PN}-discover += "${@compose_list(d, 'FMT', 'OBMC_HOST_INSTANCES')}"
Michael Tritz7199d262017-04-18 17:01:12 -0500109
Andrew Geissler4a0f3322017-07-20 10:28:34 -0500110# Force the shutdown target to run the chassis-poweroff target
111CHASSIS_STOP_TMPL = "obmc-chassis-poweroff@.target"
Andrew Geissler191400b2017-05-26 17:40:03 -0500112HOST_STOP_TGTFMT = "obmc-host-shutdown@{1}.target"
Andrew Geissler4a0f3322017-07-20 10:28:34 -0500113CHASSIS_STOP_INSTFMT = "obmc-chassis-poweroff@{0}.target"
114HOST_STOP_FMT = "../${CHASSIS_STOP_TMPL}:${HOST_STOP_TGTFMT}.requires/${CHASSIS_STOP_INSTFMT}"
115SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_STOP_FMT', 'OBMC_CHASSIS_INSTANCES', 'OBMC_HOST_INSTANCES')}"
Andrew Geissler191400b2017-05-26 17:40:03 -0500116
Andrew Geisslercd2b9462017-07-26 17:53:04 -0500117# Force the host reboot target to run the shutdown target
118HOST_SHUTDOWN_TMPL = "obmc-host-shutdown@.target"
119HOST_REBOOT_TGTFMT = "obmc-host-reboot@{0}.target"
120HOST_SHUTDOWN_INSTFMT = "obmc-host-shutdown@{0}.target"
121HOST_REBOOT_FMT = "../${HOST_SHUTDOWN_TMPL}:${HOST_REBOOT_TGTFMT}.requires/${HOST_SHUTDOWN_INSTFMT}"
122SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_REBOOT_FMT', 'OBMC_HOST_INSTANCES')}"
123
Andrew Geissler510ae372018-03-27 13:56:26 -0700124# And also force the reboot target to call the host startmin service
Andrew Geisslercd2b9462017-07-26 17:53:04 -0500125HOST_REBOOT_SVC = "phosphor-reboot-host@.service"
126HOST_REBOOT_SVC_INST = "phosphor-reboot-host@{0}.service"
127HOST_REBOOT_SVC_FMT = "../${HOST_REBOOT_SVC}:${HOST_REBOOT_TGTFMT}.requires/${HOST_REBOOT_SVC_INST}"
128SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_REBOOT_SVC_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}"
129
Andrew Geissler510ae372018-03-27 13:56:26 -0700130# Force the host-start target to call the host-startmin target
131HOST_STARTMIN_TMPL = "obmc-host-startmin@.target"
132HOST_START_TGTFMT = "obmc-host-start@{0}.target"
133HOST_STARTMIN_INSTFMT = "obmc-host-startmin@{0}.target"
134HOST_START_FMT = "../${HOST_STARTMIN_TMPL}:${HOST_START_TGTFMT}.requires/${HOST_STARTMIN_INSTFMT}"
135SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_START_FMT', 'OBMC_HOST_INSTANCES')}"
136
Andrew Geissler22957e82018-03-27 19:39:05 -0700137# Force the host-start target to call the reboot count reset service
138HOST_RST_RBT_ATTEMPTS_SVC = "phosphor-reset-host-reboot-attempts@.service"
139HOST_RST_RBT_ATTEMPTS_SVC_INST = "phosphor-reset-host-reboot-attempts@{0}.service"
140HOST_RST_RBT_ATTEMPTS_SVC_FMT = "../${HOST_RST_RBT_ATTEMPTS_SVC}:${HOST_START_TGTFMT}.requires/${HOST_RST_RBT_ATTEMPTS_SVC_INST}"
141SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_RST_RBT_ATTEMPTS_SVC_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}"
142
Andrew Geisslerf26fd902019-09-23 19:11:20 +0000143do_install_append() {
144 install -d ${D}${sysconfdir}/phosphor-systemd-target-monitor
Andrew Geisslerc1debbb2019-12-11 14:51:20 -0600145 install ${S}/data/phosphor-target-monitor-default.json ${D}${sysconfdir}/phosphor-systemd-target-monitor/phosphor-target-monitor-default.json
Andrew Geisslerf26fd902019-09-23 19:11:20 +0000146}
147
Patrick Williams267c0bb2017-01-19 21:20:46 -0600148SRC_URI += "git://github.com/openbmc/phosphor-state-manager"
Andrew Geisslerc1debbb2019-12-11 14:51:20 -0600149SRCREV = "4640d48e998709f1b64b97347db0f1b355b7f423"
Patrick Williams267c0bb2017-01-19 21:20:46 -0600150
151S = "${WORKDIR}/git"