Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 1 | SUMMARY = "Phosphor State Management" |
| 2 | DESCRIPTION = "Phosphor State Manager provides a set of system state \ |
| 3 | management daemons. It is suitable for use on a wide variety of OpenBMC \ |
| 4 | platforms." |
| 5 | HOMEPAGE = "https://github.com/openbmc/phosphor-state-manager" |
| 6 | PR = "r1" |
Patrick Venture | dcb2996 | 2018-10-21 08:23:40 -0700 | [diff] [blame] | 7 | PV = "1.0+git${SRCPV}" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 8 | LICENSE = "Apache-2.0" |
| 9 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" |
| 10 | |
Andrew Geissler | 20cff70 | 2020-03-09 16:51:27 -0500 | [diff] [blame] | 11 | include phosphor-state-manager-systemd-links.inc |
| 12 | |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 13 | STATE_MGR_PACKAGES = " \ |
| 14 | ${PN}-host \ |
| 15 | ${PN}-chassis \ |
Josh King | d2b95c7 | 2017-01-19 14:04:03 -0600 | [diff] [blame] | 16 | ${PN}-bmc \ |
Andrew Geissler | b2644f8 | 2021-02-10 16:11:58 -0600 | [diff] [blame] | 17 | ${PN}-hypervisor \ |
Michael Tritz | b6e965c | 2017-04-18 17:01:12 -0500 | [diff] [blame] | 18 | ${PN}-discover \ |
Andrew Geissler | b1afecc | 2017-05-08 15:58:01 -0500 | [diff] [blame] | 19 | ${PN}-host-check \ |
Dhruvaraj Subhashchandran | ef07e6f | 2017-12-17 12:06:23 -0600 | [diff] [blame] | 20 | ${PN}-reset-sensor-states \ |
Andrew Geissler | 44cadef | 2019-09-23 19:11:20 +0000 | [diff] [blame] | 21 | ${PN}-systemd-target-monitor \ |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 22 | ${PN}-obmc-targets \ |
Andrew Geissler | 98d9804 | 2020-04-15 16:02:17 +0000 | [diff] [blame] | 23 | ${PN}-scheduled-host-transition \ |
Andrew Geissler | a02a18a | 2022-02-21 23:00:20 +0000 | [diff] [blame] | 24 | ${PN}-chassis-check-power-status \ |
Andrew Geissler | d2b6c02 | 2022-04-27 01:10:13 +0000 | [diff] [blame] | 25 | ${PN}-secure-check \ |
Andrew Geissler | 19a6a52 | 2023-05-03 13:30:45 -0500 | [diff] [blame] | 26 | ${PN}-chassis-poweron-log \ |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 27 | " |
Brad Bishop | 7f9102c | 2018-04-11 11:44:15 -0400 | [diff] [blame] | 28 | PACKAGE_BEFORE_PN += "${STATE_MGR_PACKAGES}" |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 29 | ALLOW_EMPTY:${PN} = "1" |
Brad Bishop | 1a5a597 | 2017-03-01 16:08:45 -0500 | [diff] [blame] | 30 | |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 31 | DBUS_PACKAGES = "${STATE_MGR_PACKAGES}" |
| 32 | |
Dhruvaraj Subhashchandran | ef07e6f | 2017-12-17 12:06:23 -0600 | [diff] [blame] | 33 | SYSTEMD_PACKAGES = "${PN}-discover \ |
| 34 | ${PN}-reset-sensor-states \ |
Andrew Geissler | 44cadef | 2019-09-23 19:11:20 +0000 | [diff] [blame] | 35 | ${PN}-systemd-target-monitor \ |
Dhruvaraj Subhashchandran | ef07e6f | 2017-12-17 12:06:23 -0600 | [diff] [blame] | 36 | " |
Andrew Geissler | 6bc2f02 | 2018-03-13 11:46:27 -0700 | [diff] [blame] | 37 | |
Andrew Geissler | 16bb75a | 2023-06-09 14:34:42 -0400 | [diff] [blame] | 38 | PACKAGECONFIG ??= "no-warm-reboot \ |
| 39 | only-run-apr-on-power-loss \ |
Andrew Geissler | 55340eb | 2023-06-30 20:19:11 +0100 | [diff] [blame] | 40 | only-allow-boot-when-bmc-ready" |
Andrew Geissler | 16bb75a | 2023-06-09 14:34:42 -0400 | [diff] [blame] | 41 | |
| 42 | # Disable warm reboots of host |
| 43 | PACKAGECONFIG[no-warm-reboot] = "-Dwarm-reboot=disabled,-Dwarm-reboot=enabled" |
| 44 | |
Andrew Geissler | 973dd1f | 2024-02-27 14:31:17 -0600 | [diff] [blame] | 45 | # Disable forced warm reboots of host |
| 46 | PACKAGECONFIG[no-force-warm-reboot] = "-Dforce-warm-reboot=disabled,-Dforce-warm-reboot=enabled" |
| 47 | |
Andrew Geissler | 16bb75a | 2023-06-09 14:34:42 -0400 | [diff] [blame] | 48 | # Only run auto power restore logic if system had ac loss |
| 49 | PACKAGECONFIG[only-run-apr-on-power-loss] = "-Donly-run-apr-on-power-loss=true,-Donly-run-apr-on-power-loss=false" |
| 50 | |
| 51 | # Only allow boot operations when BMC is in Ready state |
Andrew Geissler | 55340eb | 2023-06-30 20:19:11 +0100 | [diff] [blame] | 52 | PACKAGECONFIG[only-allow-boot-when-bmc-ready] = "-Donly-allow-boot-when-bmc-ready=true,-Donly-allow-boot-when-bmc-ready=false" |
Andrew Geissler | 16bb75a | 2023-06-09 14:34:42 -0400 | [diff] [blame] | 53 | |
Andrew Geissler | 6bc2f02 | 2018-03-13 11:46:27 -0700 | [diff] [blame] | 54 | # The host-check function will check if the host is running |
| 55 | # after a BMC reset. |
Dhruvaraj Subhashchandran | ef07e6f | 2017-12-17 12:06:23 -0600 | [diff] [blame] | 56 | # The reset-sensor-states function will reset the host |
Andrew Geissler | 6bc2f02 | 2018-03-13 11:46:27 -0700 | [diff] [blame] | 57 | # sensors on a BMC reset or system power loss. |
| 58 | # Neither is required for host state function but are |
| 59 | # recommended to deal properly with these reset scenarios. |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 60 | RRECOMMENDS:${PN}-host = "${PN}-host-check ${PN}-reset-sensor-states" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 61 | |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 62 | # The obmc-targets are the base targets required to boot a computer system |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 63 | RRECOMMENDS:${PN}-host += "${PN}-obmc-targets" |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 64 | |
Andrew Geissler | 2445374 | 2023-05-03 13:39:33 -0600 | [diff] [blame] | 65 | # Make it the default to create an info log when the chassis transitions |
| 66 | # from off to on |
| 67 | RRECOMMENDS:${PN}-chassis:append = " ${PN}-chassis-poweron-log" |
| 68 | |
Andrew Geissler | ae3fe4a | 2019-12-11 14:51:20 -0600 | [diff] [blame] | 69 | inherit meson pkgconfig |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 70 | inherit obmc-phosphor-dbus-service |
Andrew Geissler | 15834fd | 2020-03-09 16:59:22 -0500 | [diff] [blame] | 71 | inherit obmc-phosphor-systemd |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 72 | |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 73 | DEPENDS += "sdbusplus" |
William A. Kennington III | fa391f2 | 2018-10-18 01:34:43 -0700 | [diff] [blame] | 74 | DEPENDS += "sdeventplus" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 75 | DEPENDS += "phosphor-logging" |
Patrick Williams | 1815f6b | 2017-01-30 11:06:16 -0600 | [diff] [blame] | 76 | DEPENDS += "phosphor-dbus-interfaces" |
Brad Bishop | 17c08bf | 2018-10-18 17:07:53 -0400 | [diff] [blame] | 77 | DEPENDS += "libcereal" |
Andrew Geissler | 44cadef | 2019-09-23 19:11:20 +0000 | [diff] [blame] | 78 | DEPENDS += "nlohmann-json" |
| 79 | DEPENDS += "cli11" |
Andrew Geissler | 12aa036 | 2021-10-07 13:33:11 +0000 | [diff] [blame] | 80 | DEPENDS += "libgpiod" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 81 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 82 | RDEPENDS:${PN}-chassis += "bash" |
Andrew Geissler | fa5be73 | 2022-07-14 13:50:37 -0500 | [diff] [blame] | 83 | RDEPENDS:${PN}-host += "bash" |
Andrew Geissler | 0ff0475 | 2021-04-14 13:51:25 +0000 | [diff] [blame] | 84 | |
Patrick Williams | ed104d4 | 2021-08-31 13:19:27 -0500 | [diff] [blame] | 85 | EXTRA_OEMESON:append = " -Dtests=disabled" |
William A. Kennington III | 8b4768d | 2021-06-04 18:06:59 -0700 | [diff] [blame] | 86 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 87 | FILES:${PN}-host = "${bindir}/phosphor-host-state-manager" |
Andrew Geissler | fa5be73 | 2022-07-14 13:50:37 -0500 | [diff] [blame] | 88 | FILES:${PN}-host += "${libexecdir}/host-reboot" |
Andrew Geissler | e190016 | 2022-03-25 16:10:13 +0000 | [diff] [blame] | 89 | DBUS_SERVICE:${PN}-host += "xyz.openbmc_project.State.Host@.service" |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 90 | DBUS_SERVICE:${PN}-host += "phosphor-reboot-host@.service" |
| 91 | SYSTEMD_SERVICE:${PN}-host += "phosphor-reset-host-reboot-attempts@.service" |
| 92 | SYSTEMD_SERVICE:${PN}-host += "phosphor-clear-one-time@.service" |
| 93 | SYSTEMD_SERVICE:${PN}-host += "phosphor-set-host-transition-to-running@.service" |
| 94 | SYSTEMD_SERVICE:${PN}-host += "phosphor-set-host-transition-to-off@.service" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 95 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 96 | FILES:${PN}-chassis = "${bindir}/phosphor-chassis-state-manager" |
Andrew Geissler | e190016 | 2022-03-25 16:10:13 +0000 | [diff] [blame] | 97 | DBUS_SERVICE:${PN}-chassis += "xyz.openbmc_project.State.Chassis@.service" |
Andrew Geissler | b5138ed | 2022-11-11 14:00:30 -0600 | [diff] [blame] | 98 | SYSTEMD_SERVICE:${PN}-chassis += "obmc-power-start@.service" |
| 99 | SYSTEMD_SERVICE:${PN}-chassis += "obmc-power-stop@.service" |
| 100 | SYSTEMD_SERVICE:${PN}-chassis += "obmc-powered-off@.service" |
| 101 | SYSTEMD_SERVICE:${PN}-chassis += "phosphor-reset-chassis-on@.service" |
| 102 | SYSTEMD_SERVICE:${PN}-chassis += "phosphor-reset-chassis-running@.service" |
Andrew Geissler | dcdd5ec | 2023-12-08 10:40:15 -0600 | [diff] [blame] | 103 | SYSTEMD_SERVICE:${PN}-chassis += "phosphor-set-chassis-transition-to-on@.service" |
| 104 | SYSTEMD_SERVICE:${PN}-chassis += "phosphor-set-chassis-transition-to-off@.service" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 105 | |
Andrew Geissler | 19a6a52 | 2023-05-03 13:30:45 -0500 | [diff] [blame] | 106 | SYSTEMD_SERVICE:${PN}-chassis-poweron-log += "phosphor-create-chassis-poweron-log@.service" |
| 107 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 108 | FILES:${PN}-chassis += "${bindir}/obmcutil" |
Anthony Wilson | cd800c8 | 2019-03-30 08:11:32 -0700 | [diff] [blame] | 109 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 110 | FILES:${PN}-bmc = "${bindir}/phosphor-bmc-state-manager" |
Andrew Geissler | 77c0126 | 2022-02-25 19:30:14 +0000 | [diff] [blame] | 111 | FILES:${PN}-bmc += "${sysconfdir}/phosphor-systemd-target-monitor/phosphor-service-monitor-default.json" |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 112 | DBUS_SERVICE:${PN}-bmc += "xyz.openbmc_project.State.BMC.service" |
Andrew Geissler | 77c0126 | 2022-02-25 19:30:14 +0000 | [diff] [blame] | 113 | DBUS_SERVICE:${PN}-bmc += "obmc-bmc-service-quiesce@.target" |
Josh King | d2b95c7 | 2017-01-19 14:04:03 -0600 | [diff] [blame] | 114 | |
Andrew Geissler | d2b6c02 | 2022-04-27 01:10:13 +0000 | [diff] [blame] | 115 | FILES:${PN}-secure-check = "${bindir}/phosphor-secure-boot-check" |
| 116 | SYSTEMD_SERVICE:${PN}-secure-check += "phosphor-bmc-security-check.service" |
| 117 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 118 | FILES:${PN}-hypervisor = "${bindir}/phosphor-hypervisor-state-manager" |
| 119 | DBUS_SERVICE:${PN}-hypervisor += "xyz.openbmc_project.State.Hypervisor.service" |
Andrew Geissler | b2644f8 | 2021-02-10 16:11:58 -0600 | [diff] [blame] | 120 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 121 | FILES:${PN}-discover = "${bindir}/phosphor-discover-system-state" |
| 122 | SYSTEMD_SERVICE:${PN}-discover += "phosphor-discover-system-state@.service" |
Michael Tritz | b3b5899 | 2017-03-31 12:04:32 -0500 | [diff] [blame] | 123 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 124 | FILES:${PN}-host-check = "${bindir}/phosphor-host-check" |
| 125 | SYSTEMD_SERVICE:${PN}-host-check += "phosphor-reset-host-running@.service" |
Andrew Geissler | ef50c6a | 2021-09-17 18:01:30 +0000 | [diff] [blame] | 126 | FILES:${PN}-host-check = "${bindir}/phosphor-host-reset-recovery" |
| 127 | SYSTEMD_SERVICE:${PN}-host-check += "phosphor-reset-host-recovery@.service" |
| 128 | |
Andrew Geissler | b1afecc | 2017-05-08 15:58:01 -0500 | [diff] [blame] | 129 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 130 | SYSTEMD_SERVICE:${PN}-reset-sensor-states += "phosphor-reset-sensor-states@.service" |
Dhruvaraj Subhashchandran | ef07e6f | 2017-12-17 12:06:23 -0600 | [diff] [blame] | 131 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 132 | FILES:${PN}-systemd-target-monitor = " \ |
Andrew Geissler | 44cadef | 2019-09-23 19:11:20 +0000 | [diff] [blame] | 133 | ${bindir}/phosphor-systemd-target-monitor \ |
| 134 | ${sysconfdir}/phosphor-systemd-target-monitor/phosphor-target-monitor-default.json \ |
| 135 | " |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 136 | SYSTEMD_SERVICE:${PN}-systemd-target-monitor += "phosphor-systemd-target-monitor.service" |
Andrew Geissler | 44cadef | 2019-09-23 19:11:20 +0000 | [diff] [blame] | 137 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 138 | FILES:${PN}-scheduled-host-transition = "${bindir}/phosphor-scheduled-host-transition" |
Andrew Geissler | e190016 | 2022-03-25 16:10:13 +0000 | [diff] [blame] | 139 | DBUS_SERVICE:${PN}-scheduled-host-transition += "xyz.openbmc_project.State.ScheduledHostTransition@.service" |
Andrew Geissler | 98d9804 | 2020-04-15 16:02:17 +0000 | [diff] [blame] | 140 | |
Andrew Geissler | a02a18a | 2022-02-21 23:00:20 +0000 | [diff] [blame] | 141 | FILES:${PN}-chassis-check-power-status = "${bindir}/phosphor-chassis-check-power-status" |
| 142 | SYSTEMD_SERVICE:${PN}-chassis-check-power-status += "phosphor-chassis-check-power-status@.service" |
| 143 | |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 144 | # Chassis power synchronization targets |
| 145 | # - start-pre: Services to run before we start power on process |
| 146 | # - start: Services to run to do the chassis power on |
| 147 | # - on: Services to run once power is on |
| 148 | # - stop-pre,stop,off: Same as above but applied to powering off |
| 149 | # - reset-on: Services to check if chassis power is on after bmc reset |
| 150 | CHASSIS_SYNCH_TARGETS = "start-pre start on stop-pre stop off reset-on" |
| 151 | |
| 152 | # Chassis action power targets |
| 153 | # - on: Services to run to power on the chassis |
| 154 | # - off: Services to run to power off the chassis |
Andrew Geissler | 55146f6 | 2022-12-06 16:50:55 -0600 | [diff] [blame] | 155 | # - cycle: Services to run to cycle power to the chassis |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 156 | # - powered-off: Services to run once chassis power is off |
| 157 | # - reset: Services to check chassis power state and update chassis "on" target |
| 158 | # - hard-off: Services to force an immediate power off of the chassis |
Andrew Geissler | e0ba7fb | 2022-07-06 14:51:03 -0500 | [diff] [blame] | 159 | # - blackout: Target to enter when chassis experiences blackout |
Andrew Geissler | 55146f6 | 2022-12-06 16:50:55 -0600 | [diff] [blame] | 160 | CHASSIS_ACTION_TARGETS = "poweron poweroff powercycle powered-off powerreset hard-poweroff blackout" |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 161 | |
| 162 | # Track all host synchronization point targets |
| 163 | # - start-pre: Services to run before we start host boot |
| 164 | # - starting: Services to run to do the host boot |
| 165 | # - started: Services to run once the host is booted |
| 166 | # - stop-pre,stopping,stopped: Same as above but applied to shutting down the host |
| 167 | # - reset-running: Services to check if host is running after bmc reset |
| 168 | HOST_SYNCH_TARGETS = "start-pre starting started stop-pre stopping stopped reset-running" |
| 169 | |
| 170 | # Track all host action targets |
| 171 | # - start: Will run startmin target, this target used for any additional |
| 172 | # services that user needs for an initial power on of host. |
| 173 | # For example, resetting the host reboot count could be put in |
| 174 | # this target so on any fresh power on, this count is reset. |
| 175 | # - startmin: Minimum services required to start the host. This target will |
| 176 | # be called by reboot and start target. |
| 177 | # - stop: Services to run to shutdown the host |
| 178 | # - quiesce: Target to enter on host boot failure |
Andrew Geissler | 73f9365 | 2022-04-15 13:32:04 -0500 | [diff] [blame] | 179 | # - graceful-quiesce: Target to enter on host boot failure (allow host graceful shutdown) |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 180 | # - shutdown: Tell host to shutdown, then stop system |
| 181 | # - reset: Services to check if host is running and update host "start" target |
| 182 | # - crash: Target to run when host crashes. it is very much similar to |
| 183 | # quiesce target but the only delta is that this target contains |
| 184 | # multiple services and one of them is the quiesce target. |
| 185 | # - timeout: Target to run when host watchdog times out |
Andrew Geissler | bbe378e | 2020-02-10 13:47:12 -0600 | [diff] [blame] | 186 | # - reboot: Reboot the host with a chassis power cycle included |
| 187 | # - warm-reboot: Reboot the host without a chassis power cycle. |
| 188 | # - force-warm-reboot: Reboot the host without a chassis power cycle and without |
| 189 | # notifying the host. |
| 190 | # - diagnostic-mode: This will be entered when the host is collecting diagnostic |
| 191 | # data for itself. |
Andrew Geissler | 73f9365 | 2022-04-15 13:32:04 -0500 | [diff] [blame] | 192 | HOST_ACTION_TARGETS = "start startmin stop quiesce graceful-quiesce reset shutdown crash timeout " |
Andrew Geissler | bbe378e | 2020-02-10 13:47:12 -0600 | [diff] [blame] | 193 | HOST_ACTION_TARGETS += "reboot warm-reboot force-warm-reboot diagnostic-mode" |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 194 | |
| 195 | CHASSIS_SYNCH_FMT = "obmc-power-{0}@.target" |
| 196 | CHASSIS_ACTION_FMT = "obmc-chassis-{0}@.target" |
| 197 | HOST_SYNCH_FMT = "obmc-host-{0}@.target" |
| 198 | HOST_ACTION_FMT = "obmc-host-{0}@.target" |
| 199 | |
| 200 | CHASSIS_LINK_SYNCH_FMT = "${CHASSIS_SYNCH_FMT}:obmc-power-{0}@{1}.target" |
| 201 | CHASSIS_LINK_ACTION_FMT = "${CHASSIS_ACTION_FMT}:obmc-chassis-{0}@{1}.target" |
| 202 | HOST_LINK_SYNCH_FMT = "${HOST_SYNCH_FMT}:obmc-host-{0}@{1}.target" |
| 203 | HOST_LINK_ACTION_FMT = "${HOST_ACTION_FMT}:obmc-host-{0}@{1}.target" |
| 204 | FAN_LINK_FMT = "obmc-fan-control-ready@.target:obmc-fan-control-ready@{0}.target" |
| 205 | |
| 206 | # Targets to be executed on checkstop and watchdog timeout |
Andrew Geissler | 91685cd | 2020-12-17 14:23:10 -0600 | [diff] [blame] | 207 | HOST_ERROR_TARGETS = "timeout" |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 208 | |
| 209 | QUIESCE_TMPL = "obmc-host-quiesce@.target" |
| 210 | CRASH_TIMEOUT_TGTFMT = "obmc-host-{0}@{1}.target" |
| 211 | QUIESCE_INSTFMT = "obmc-host-quiesce@{1}.target" |
| 212 | QUIESCE_FMT = "../${QUIESCE_TMPL}:${CRASH_TIMEOUT_TGTFMT}.wants/${QUIESCE_INSTFMT}" |
| 213 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 214 | SYSTEMD_SERVICE:${PN}-obmc-targets += " \ |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 215 | obmc-fans-ready.target \ |
| 216 | obmc-fan-control.target \ |
| 217 | obmc-fan-control-ready@.target \ |
| 218 | obmc-fan-watchdog-takeover.target \ |
| 219 | " |
| 220 | |
Patrick Williams | 12fc939 | 2021-08-06 09:16:53 -0500 | [diff] [blame] | 221 | SYSTEMD_SERVICE:${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS')}" |
| 222 | SYSTEMD_SERVICE:${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_ACTION_FMT', 'CHASSIS_ACTION_TARGETS')}" |
| 223 | SYSTEMD_SERVICE:${PN}-obmc-targets += "${@compose_list(d, 'HOST_SYNCH_FMT', 'HOST_SYNCH_TARGETS')}" |
| 224 | SYSTEMD_SERVICE:${PN}-obmc-targets += "${@compose_list(d, 'HOST_ACTION_FMT', 'HOST_ACTION_TARGETS')}" |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 225 | |
Patrick Williams | e83c220 | 2021-09-01 16:17:33 -0500 | [diff] [blame] | 226 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_LINK_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" |
| 227 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_LINK_ACTION_FMT', 'CHASSIS_ACTION_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" |
| 228 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list(d, 'HOST_LINK_SYNCH_FMT', 'HOST_SYNCH_TARGETS', 'OBMC_HOST_INSTANCES')}" |
| 229 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list(d, 'HOST_LINK_ACTION_FMT', 'HOST_ACTION_TARGETS', 'OBMC_HOST_INSTANCES')}" |
| 230 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list(d, 'FAN_LINK_FMT', 'OBMC_CHASSIS_INSTANCES')}" |
| 231 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list(d, 'QUIESCE_FMT', 'HOST_ERROR_TARGETS', 'OBMC_HOST_INSTANCES')}" |
Andrew Geissler | 024c25d | 2020-01-14 14:21:24 -0600 | [diff] [blame] | 232 | |
Andrew Geissler | 5d4ef51 | 2022-11-14 14:45:17 -0600 | [diff] [blame] | 233 | # Create target relationships |
| 234 | |
| 235 | # Starting the host requires chassis power on |
| 236 | START_TMPL_CTRL = "obmc-chassis-poweron@.target" |
| 237 | START_TGTFMT_CTRL = "obmc-host-startmin@{1}.target" |
| 238 | START_INSTFMT_CTRL = "obmc-chassis-poweron@{0}.target" |
| 239 | START_FMT_CTRL = "../${START_TMPL_CTRL}:${START_TGTFMT_CTRL}.requires/${START_INSTFMT_CTRL}" |
Patrick Williams | cde8c4e | 2024-02-05 08:45:49 -0600 | [diff] [blame] | 240 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list_zip(d, 'START_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES', 'OBMC_CHASSIS_INSTANCES')}" |
Andrew Geissler | 5d4ef51 | 2022-11-14 14:45:17 -0600 | [diff] [blame] | 241 | |
| 242 | # Chassis off requires host off |
| 243 | STOP_TMPL_CTRL = "obmc-host-stop@.target" |
| 244 | STOP_TGTFMT_CTRL = "obmc-chassis-poweroff@{0}.target" |
| 245 | STOP_INSTFMT_CTRL = "obmc-host-stop@{1}.target" |
| 246 | STOP_FMT_CTRL = "../${STOP_TMPL_CTRL}:${STOP_TGTFMT_CTRL}.requires/${STOP_INSTFMT_CTRL}" |
Potin Lai | 5b1b156 | 2024-03-06 19:32:44 +0800 | [diff] [blame] | 247 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list_zip(d, 'STOP_FMT_CTRL', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}" |
Andrew Geissler | 5d4ef51 | 2022-11-14 14:45:17 -0600 | [diff] [blame] | 248 | |
| 249 | # Hard power off requires chassis off |
| 250 | HARD_OFF_TMPL_CTRL = "obmc-chassis-poweroff@.target" |
| 251 | HARD_OFF_TGTFMT_CTRL = "obmc-chassis-hard-poweroff@{0}.target" |
| 252 | HARD_OFF_INSTFMT_CTRL = "obmc-chassis-poweroff@{0}.target" |
| 253 | HARD_OFF_FMT_CTRL = "../${HARD_OFF_TMPL_CTRL}:${HARD_OFF_TGTFMT_CTRL}.requires/${HARD_OFF_INSTFMT_CTRL}" |
| 254 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list_zip(d, 'HARD_OFF_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES')}" |
| 255 | |
| 256 | # Force the standby target to run the chassis reset check target |
| 257 | RESET_TMPL_CTRL = "obmc-chassis-powerreset@.target" |
| 258 | SYSD_TGT = "multi-user.target" |
| 259 | RESET_INSTFMT_CTRL = "obmc-chassis-powerreset@{0}.target" |
| 260 | RESET_FMT_CTRL = "../${RESET_TMPL_CTRL}:${SYSD_TGT}.wants/${RESET_INSTFMT_CTRL}" |
| 261 | SYSTEMD_LINK:${PN}-obmc-targets += "${@compose_list_zip(d, 'RESET_FMT_CTRL', 'OBMC_CHASSIS_INSTANCES')}" |
Patrick Williams | b81c1fb | 2024-03-08 21:44:55 -0600 | [diff] [blame] | 262 | SYSTEMD_LINK[vardeps] += "OBMC_CHASSIS_INSTANCES OBMC_HOST_INSTANCES" |
Andrew Geissler | ef50c6a | 2021-09-17 18:01:30 +0000 | [diff] [blame] | 263 | |
Patrick Williams | bccaff3 | 2023-04-14 11:24:47 -0500 | [diff] [blame] | 264 | SRC_URI = "git://github.com/openbmc/phosphor-state-manager;branch=master;protocol=https" |
Andrew Geissler | ceb19df | 2024-03-11 09:30:29 -0500 | [diff] [blame] | 265 | SRCREV = "8be7ec4510d7932dd9a8942cfa67cc05fe10866f" |
Patrick Williams | 9e20639 | 2017-01-19 21:20:46 -0600 | [diff] [blame] | 266 | |
| 267 | S = "${WORKDIR}/git" |