add specifics on new PDI host checking interface

Further discussion on this topic has moved us away from the existing
general purpose PDI interface Execute(). The consensus was to move to a
new PDI interface with a property that could be read by applications.

The PDI review for this is here:
 https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-dbus-interfaces/+/42435

Change-Id: I5a58d297c52065c267f1e31d0b4f5ec98ed55640
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/designs/bmc-reset-with-host-up.md b/designs/bmc-reset-with-host-up.md
index 37e637a..3aab505 100644
--- a/designs/bmc-reset-with-host-up.md
+++ b/designs/bmc-reset-with-host-up.md
@@ -67,6 +67,10 @@
   respond. Lack of response within this time limit will result in the BMC
   potentially taking recovery actions.
   - This time limit must be configurable at build time
+- IPMI and PLDM will implement a phosphor-dbus-interface interface,
+  `xyz.openbmc_project.Condition.HostFirmware`, which will have a
+  `CurrentFirmwareCondition` property which other applications can read to
+  determine if the host is running.
 
 ### IPMI Detailed Requirements
 - IPMI will continue to utilize the SMS_ATN command to indicate to the host that
@@ -74,20 +78,23 @@
   command, it will be considered up and running
 
 ### PLDM Detailed Requirements
-- PLDM will do a PDR exchange with the host to regenerate the BMC PDR's
+- PLDM will utilize a GetTID command to the host to determine if it is running
 - Where applicable, PLDM will provide a mechanism to distinguish between
   different host firmware stacks
   - For example, on IBM systems there is a difference between the
     hostboot (host initialization) firmware and Hypervisor firmware stacks.
     Both are host firmware and talking PLDM but the BMC recovery paths will
-    differ based on which is running
+    differ based on which is running. The `CurrentFirmwareCondition` property
+    should not return "Running" unless the Hypervisor firmware is running.
 
 ## Proposed Design
 High Level Flow:
 - Check pgood
-- Check host via IPMI (enabled via compile option)
-- Check host via PLDM (enabled via compile option)
-- Check host via any custom mechanisms
+- Call mapper for all implementations of
+  `xyz.openbmc_project.Condition.HostFirmware` PDI interface
+- Read `CurrentFirmwareCondition` property of all interface. If any call returns
+  that a host is running then create file and start host target.
+- Otherwise, check host via any custom mechanisms
 - Execute automated recovery of host if desired
 
 IPMI and PLDM software will be started as applicable. A combination of systemd