diff options
Diffstat (limited to 'meta-phosphor/recipes-phosphor/state')
11 files changed, 87 insertions, 150 deletions
diff --git a/meta-phosphor/recipes-phosphor/state/files/obmc/phosphor-reboot-host/reboot.conf b/meta-phosphor/recipes-phosphor/state/files/obmc/phosphor-reboot-host/reboot.conf deleted file mode 100644 index 2e3ca1a5b..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/obmc/phosphor-reboot-host/reboot.conf +++ /dev/null @@ -1 +0,0 @@ -REBOOT_DELAY=5 diff --git a/meta-phosphor/recipes-phosphor/state/files/phosphor-discover-system-state@.service b/meta-phosphor/recipes-phosphor/state/files/phosphor-discover-system-state@.service deleted file mode 100644 index 4a5e6a7e5..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/phosphor-discover-system-state@.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Reboot If Enabled -Wants=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service -After=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service -Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service -After=mapper-wait@-xyz-openbmc_project-state-host%i.service -Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service -After=op-reset-chassis-on@%i.service -ConditionPathExists=!/run/openbmc/chassis@%i-on - -[Service] -Restart=no -Type=oneshot -ExecStart=/usr/bin/env phosphor-discover-system-state --host %i -SyslogIdentifier=phosphor-discover-system-state - -[Install] -WantedBy=multi-user.target diff --git a/meta-phosphor/recipes-phosphor/state/files/phosphor-reboot-host@.service b/meta-phosphor/recipes-phosphor/state/files/phosphor-reboot-host@.service deleted file mode 100644 index 27479f2de..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/phosphor-reboot-host@.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Reboot host%i -Wants=obmc-host-stop@%i.target -After=obmc-host-stop@%i.target - -[Service] -#ExecStart={base_bindir}/systemctl start obmc-host-start@%i.target -# This service is starting another target that conflicts with the -# target this service is running in. OpenBMC needs a refactor of -# how it does its host reset path. Until then, this short term -# solution does the job. -# Since this is a part of the reboot target, call the startmin -# target which does the minimum required to start the host. -ExecStart=/bin/sh -c "sleep ${{REBOOT_DELAY}} && systemctl start obmc-host-startmin@%i.target" -EnvironmentFile={envfiledir}/obmc/phosphor-reboot-host/reboot.conf - -[Install] -WantedBy=obmc-host-reboot@%i.target diff --git a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-check@.service b/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-check@.service deleted file mode 100644 index 075ac500b..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-check@.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Check Host%i status on BMC reset -Wants=phosphor-ipmi-host.service -After=phosphor-ipmi-host.service -Wants=obmc-host-reset-running@%i.target -Before=obmc-host-reset-running@%i.target -Wants=op-reset-chassis-on@%i.service -After=op-reset-chassis-on@%i.service -Conflicts=obmc-host-stop@%i.target -ConditionPathExists=/run/openbmc/chassis@%i-on - -[Service] -RemainAfterExit=yes -Type=oneshot -ExecStart=/usr/bin/env phosphor-host-check -SyslogIdentifier=phosphor-host-check - -[Install] -WantedBy=obmc-host-reset@%i.target diff --git a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-reboot-attempts@.service b/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-reboot-attempts@.service deleted file mode 100644 index 35de4304b..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-reboot-attempts@.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Reset host reboot counter -Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service -After=mapper-wait@-xyz-openbmc_project-state-host%i.service -ConditionPathExists=!/run/openbmc/host@%i-on - -[Service] -Restart=no -Type=oneshot -ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host%i` /xyz/openbmc_project/state/host%i xyz.openbmc_project.Control.Boot.RebootAttempts AttemptsLeft u 3" - -[Install] -WantedBy=obmc-host-start@%i.target diff --git a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-running@.service b/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-running@.service deleted file mode 100644 index a49bbdd16..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-host-running@.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Start host%i running after BMC reset -After=obmc-host-reset-running@%i.target -Requires=obmc-host-reset-running@%i.target -ConditionPathExists=/run/openbmc/host@%i-on - -[Service] -RemainAfterExit=no -ExecStart=/bin/systemctl start obmc-host-start@%i.target - - -[Install] -WantedBy=obmc-host-reset@%i.target diff --git a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-sensor-states@.service b/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-sensor-states@.service deleted file mode 100644 index 689372f4a..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/phosphor-reset-sensor-states@.service +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Reset host sensors -After=phosphor-reset-host-check@%i.service -Wants=mapper-wait@-xyz-openbmc_project-state-host%i.service -After=mapper-wait@-xyz-openbmc_project-state-host%i.service -ConditionPathExists=!/run/openbmc/host@%i-on - -[Service] -Restart=no -Type=oneshot -ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host0` /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Boot.Progress BootProgress s xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified" -ExecStart=/bin/sh -c "busctl set-property `mapper get-service /xyz/openbmc_project/state/host0` /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.OperatingSystem.Status OperatingSystemState s xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive" - -[Install] -WantedBy=obmc-host-reset@%i.target diff --git a/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.BMC.service b/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.BMC.service deleted file mode 100644 index de1da5add..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.BMC.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Phosphor BMC State Manager -Before=mapper-wait@-xyz-openbmc_project-state-bmc.service -Wants=obmc-mapper.target -After=obmc-mapper.target - - -[Service] -ExecStart=/usr/bin/env phosphor-bmc-state-manager -SyslogIdentifier=phosphor-bmc-state-manager -Restart=always -Type=dbus -BusName={BUSNAME} - -[Install] -WantedBy=multi-user.target diff --git a/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Chassis.service b/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Chassis.service deleted file mode 100644 index 1cab07fcf..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Chassis.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=Phosphor Chassis State Manager -Before=mapper-wait@-xyz-openbmc_project-state-chassis.service -Wants=obmc-mapper.target -After=obmc-mapper.target -After=org.openbmc.control.Power@0.service - -[Service] -ExecStart=/usr/bin/env phosphor-chassis-state-manager -SyslogIdentifier=phosphor-chassis-state-manager -Restart=always -Type=dbus -BusName={BUSNAME} - -[Install] -WantedBy=multi-user.target diff --git a/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Host.service b/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Host.service deleted file mode 100644 index 780f26071..000000000 --- a/meta-phosphor/recipes-phosphor/state/files/xyz.openbmc_project.State.Host.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Phosphor Host State Manager -Wants=mapper-wait@-xyz-openbmc_project-control-host0-auto_reboot.service -After=mapper-wait@-xyz-openbmc_project-control-host0-auto_reboot.service -Before=mapper-wait@-xyz-openbmc_project-state-host.service -After=phosphor-reset-host-running@0.service -Wants=obmc-mapper.target -After=obmc-mapper.target - -[Service] -ExecStart=/usr/bin/env phosphor-host-state-manager -SyslogIdentifier=phosphor-host-state-manager -Restart=always -Type=dbus -BusName={BUSNAME} - -[Install] -WantedBy=multi-user.target diff --git a/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb b/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb index 674add7b1..caa0352a6 100644 --- a/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb +++ b/meta-phosphor/recipes-phosphor/state/phosphor-state-manager_git.bb @@ -16,6 +16,7 @@ STATE_MGR_PACKAGES = " \ ${PN}-host-check \ ${PN}-reset-sensor-states \ ${PN}-systemd-target-monitor \ + ${PN}-obmc-targets \ " PACKAGE_BEFORE_PN += "${STATE_MGR_PACKAGES}" ALLOW_EMPTY_${PN} = "1" @@ -35,6 +36,9 @@ SYSTEMD_PACKAGES = "${PN}-discover \ # recommended to deal properly with these reset scenarios. RRECOMMENDS_${PN}-host = "${PN}-host-check ${PN}-reset-sensor-states" +# The obmc-targets are the base targets required to boot a computer system +RRECOMMENDS_${PN}-host += "${PN}-obmc-targets" + inherit meson pkgconfig inherit obmc-phosphor-dbus-service @@ -49,7 +53,6 @@ DEPENDS += "cli11" FILES_${PN}-host = "${bindir}/phosphor-host-state-manager" DBUS_SERVICE_${PN}-host += "xyz.openbmc_project.State.Host.service" DBUS_SERVICE_${PN}-host += "phosphor-reboot-host@.service" -SYSTEMD_ENVIRONMENT_FILE_${PN}-host += "obmc/phosphor-reboot-host/reboot.conf" SYSTEMD_SERVICE_${PN}-host += "phosphor-reset-host-reboot-attempts@.service" FILES_${PN}-chassis = "${bindir}/phosphor-chassis-state-manager" @@ -140,7 +143,89 @@ HOST_RST_RBT_ATTEMPTS_SVC_INST = "phosphor-reset-host-reboot-attempts@{0}.servic HOST_RST_RBT_ATTEMPTS_SVC_FMT = "../${HOST_RST_RBT_ATTEMPTS_SVC}:${HOST_START_TGTFMT}.requires/${HOST_RST_RBT_ATTEMPTS_SVC_INST}" SYSTEMD_LINK_${PN}-host += "${@compose_list_zip(d, 'HOST_RST_RBT_ATTEMPTS_SVC_FMT', 'OBMC_HOST_INSTANCES', 'OBMC_HOST_INSTANCES')}" + +# Chassis power synchronization targets +# - start-pre: Services to run before we start power on process +# - start: Services to run to do the chassis power on +# - on: Services to run once power is on +# - stop-pre,stop,off: Same as above but applied to powering off +# - reset-on: Services to check if chassis power is on after bmc reset +CHASSIS_SYNCH_TARGETS = "start-pre start on stop-pre stop off reset-on" + +# Chassis action power targets +# - on: Services to run to power on the chassis +# - off: Services to run to power off the chassis +# - powered-off: Services to run once chassis power is off +# - reset: Services to check chassis power state and update chassis "on" target +# - hard-off: Services to force an immediate power off of the chassis +CHASSIS_ACTION_TARGETS = "poweron poweroff powered-off powerreset hard-poweroff" + +# Track all host synchronization point targets +# - start-pre: Services to run before we start host boot +# - starting: Services to run to do the host boot +# - started: Services to run once the host is booted +# - stop-pre,stopping,stopped: Same as above but applied to shutting down the host +# - reset-running: Services to check if host is running after bmc reset +HOST_SYNCH_TARGETS = "start-pre starting started stop-pre stopping stopped reset-running" + +# Track all host action targets +# - start: Will run startmin target, this target used for any additional +# services that user needs for an initial power on of host. +# For example, resetting the host reboot count could be put in +# this target so on any fresh power on, this count is reset. +# - startmin: Minimum services required to start the host. This target will +# be called by reboot and start target. +# - stop: Services to run to shutdown the host +# - quiesce: Target to enter on host boot failure +# - shutdown: Tell host to shutdown, then stop system +# - reset: Services to check if host is running and update host "start" target +# - crash: Target to run when host crashes. it is very much similar to +# quiesce target but the only delta is that this target contains +# multiple services and one of them is the quiesce target. +# - timeout: Target to run when host watchdog times out +# - reboot: Reboot the host +HOST_ACTION_TARGETS = "start startmin stop quiesce reset shutdown crash timeout reboot" + +CHASSIS_SYNCH_FMT = "obmc-power-{0}@.target" +CHASSIS_ACTION_FMT = "obmc-chassis-{0}@.target" +HOST_SYNCH_FMT = "obmc-host-{0}@.target" +HOST_ACTION_FMT = "obmc-host-{0}@.target" + +CHASSIS_LINK_SYNCH_FMT = "${CHASSIS_SYNCH_FMT}:obmc-power-{0}@{1}.target" +CHASSIS_LINK_ACTION_FMT = "${CHASSIS_ACTION_FMT}:obmc-chassis-{0}@{1}.target" +HOST_LINK_SYNCH_FMT = "${HOST_SYNCH_FMT}:obmc-host-{0}@{1}.target" +HOST_LINK_ACTION_FMT = "${HOST_ACTION_FMT}:obmc-host-{0}@{1}.target" +FAN_LINK_FMT = "obmc-fan-control-ready@.target:obmc-fan-control-ready@{0}.target" + +# Targets to be executed on checkstop and watchdog timeout +HOST_ERROR_TARGETS = "crash timeout" + +QUIESCE_TMPL = "obmc-host-quiesce@.target" +CRASH_TIMEOUT_TGTFMT = "obmc-host-{0}@{1}.target" +QUIESCE_INSTFMT = "obmc-host-quiesce@{1}.target" +QUIESCE_FMT = "../${QUIESCE_TMPL}:${CRASH_TIMEOUT_TGTFMT}.wants/${QUIESCE_INSTFMT}" + +SYSTEMD_SERVICE_${PN}-obmc-targets += " \ + obmc-mapper.target \ + obmc-fans-ready.target \ + obmc-fan-control.target \ + obmc-fan-control-ready@.target \ + obmc-fan-watchdog-takeover.target \ + " + +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS')}" +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_ACTION_FMT', 'CHASSIS_ACTION_TARGETS')}" +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'HOST_SYNCH_FMT', 'HOST_SYNCH_TARGETS')}" +SYSTEMD_SERVICE_${PN}-obmc-targets += "${@compose_list(d, 'HOST_ACTION_FMT', 'HOST_ACTION_TARGETS')}" + +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_LINK_SYNCH_FMT', 'CHASSIS_SYNCH_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'CHASSIS_LINK_ACTION_FMT', 'CHASSIS_ACTION_TARGETS', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'HOST_LINK_SYNCH_FMT', 'HOST_SYNCH_TARGETS', 'OBMC_HOST_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'HOST_LINK_ACTION_FMT', 'HOST_ACTION_TARGETS', 'OBMC_HOST_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'FAN_LINK_FMT', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_LINK_${PN}-obmc-targets += "${@compose_list(d, 'QUIESCE_FMT', 'HOST_ERROR_TARGETS', 'OBMC_HOST_INSTANCES')}" + SRC_URI += "git://github.com/openbmc/phosphor-state-manager" -SRCREV = "4640d48e998709f1b64b97347db0f1b355b7f423" +SRCREV = "c101157e5b138f36044a2a3aaf15ad8ac16501fc" S = "${WORKDIR}/git" |