gbmc /
hothd /
08c451f5a5b5ba8d0c873a03e167a0eabf79bab5 hothd: Implement Activation interface for Software
Bmcweb is expecting all software to have activation interface
implemented to determine the Status of the software.
If hothd is up and running and can communicate with the Hoth chip,
then Activation status should be active. Since if there is communication
error, hothd will exit and not register any dbus object, hence the
activation will always be Active for both version of the software.
Tested:
```
root@jkbs2-nfd01:~# busctl introspect xyz.openbmc_project.Control.Hoth /xyz/openbmc_project/software/hoth_ro
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Software.Activation interface - - -
.Activation property s "xyz.openbmc_project.Software.Activatio… emits-change writable
.RequestedActivation property s "xyz.openbmc_project.Software.Activatio… emits-change writable
xyz.openbmc_project.Software.Version interface - - -
.Purpose property s "xyz.openbmc_project.Software.Version.V… emits-change writable
.Version property s "0.0.343/36e0ecd5 ok" emits-change writable
<.Control.Hoth /xyz/openbmc_project/software/hoth_ro xyz.openbmc_project.Software.Activation Activation
s "xyz.openbmc_project.Software.Activation.Activations.Active"
root@jkbs2-nfd01:~# curl localhost/redfish/v1/UpdateService/FirmwareInventory/hoth_ro
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/hoth_ro",
"@odata.type": "#SoftwareInventory.v1_3_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "hoth_ro",
"Name": "Software Inventory",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Updateable": false,
"Version": "0.0.343/36e0ecd5 ok"
}
root@jkbs2-nfd01:~# curl localhost/redfish/v1/UpdateService/FirmwareInventory/hoth_rw
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/hoth_rw",
"@odata.type": "#SoftwareInventory.v1_3_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "hoth_rw",
"Name": "Software Inventory",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Updateable": false,
"Version": "0.5.2024071810/bmc_mobo_hoth"
}
root@jkbs2-nfd01:~# systemctl stop hothd
root@jkbs2-nfd01:~# systemctl status hothd
○ hothd.service - Hoth control daemon
Loaded: loaded (/usr/lib/systemd/system/hothd.service; enabled; preset: enabled)
Active: inactive (dead) since Thu 2024-12-26 19:33:42 PST; 20s ago
Duration: 2month 2w 4d 14h 50min 12.757s
Invocation: e28b5252bed5483e84b3f03f0ad0b4b1
Process: 423 ExecStart=/usr/libexec/hothd -b (code=killed, signal=TERM)
Main PID: 423 (code=killed, signal=TERM)
CPU: 54.681s
root@jkbs2-nfd01:~# curl localhost/redfish/v1/UpdateService/FirmwareInventory/
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
"@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection",
"Members": [
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/bios_active"
},
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/de149a25"
}
],
"Members@odata.count": 2,
"Name": "Software Inventory Collection"
root@jkbs2-nfd01:~# busctl introspect xyz.openbmc_project.Control.Hoth /xyz/openbmc_project/software/hoth_ro
Failed to introspect object /xyz/openbmc_project/software/hoth_ro of service xyz.openbmc_project.Control.Hoth: The name is not activatable
```
Google-Bug-Id: 384444534
Change-Id: I95167df8d971c5ed862c29a5212aa0933f9ab32d
Signed-off-by: Munawar Hussain <munawarhussain@google.com>
2 files changed