configurations: harma: add CPLD update config
Add CPLD update config for update daemon.
https://gerrit.openbmc.org/c/openbmc/phosphor-bmc-code-mgmt/+/80975
Tested on Harma:
```
1. Check inventory
root@bmc:~# curl -u root:0penBmc -k -X GET
https://localhost/redfish/v1/UpdateService/FirmwareInventory
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
"@odata.type":
"#SoftwareInventoryCollection.SoftwareInventoryCollection",
"Members": [
{
"@odata.id":
"/redfish/v1/UpdateService/FirmwareInventory/Harma_MB_CPLD_4656"
},
{
"@odata.id":
"/redfish/v1/UpdateService/FirmwareInventory/Harma_SCM_CPLD_2469"
}
],
"Members@odata.count": 27,
"Name": "Software Inventory Collection"
}
2. Check firmware information
root@bmc:~# curl -u root:0penBmc -k -X GET
https://.../FirmwareInventory/Harma_SCM_CPLD_2469
{
"@odata.id":
"/redfish/v1/UpdateService/FirmwareInventory/Harma_SCM_CPLD_2469",
"@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "Harma_SCM_CPLD_2469",
"Name": "Software Inventory",
"Status": {
"Health": "Warning",
"HealthRollup": "OK",
"State": "Disabled"
},
"Updateable": true,
"Version": "00010005"
}
3. Trigger update
curl -k -H "X-Auth-Token: $token"
-H "Content-Type:multipart/form-data"
-X POST -F UpdateParameters=
"{\"Targets\":
[\"/redfish/v1/UpdateService/FirmwareInventory/Harma_SCM_CPLD_2469\"],
\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json"
-F "UpdateFile=@F0MSCM_impl1_V10007.pldm;type=application/octet-stream"
https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
4. Check task status
root@bmc:~# curl -u root:0penBmc -k -X GET
https://localhost/redfish/v1/TaskService/Tasks/0
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"EndTime": "2025-06-11T09:16:19+00:00",
"HidePayload": false,
"Id": "0",
"Messages": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The task with Id '0' has started.",
"MessageArgs": [
"0"
],
"MessageId": "TaskEvent.1.0.TaskStarted",
"MessageSeverity": "OK",
"Resolution": "None."
},
{
"@odata.type": "#Message.v1_1_1.Message",
"Message":
"The task with Id '0' has changed to progress 1 percent complete.",
"MessageArgs": [
"0",
"1"
],
"MessageId": "TaskEvent.1.0.TaskProgressChanged",
"MessageSeverity": "OK",
"Resolution": "None."
},
{
"@odata.type": "#Message.v1_1_1.Message",
"Message":
"The task with Id '0' has changed to progress 10 percent complete.",
"MessageArgs": [
"0",
"10"
],
"MessageId": "TaskEvent.1.0.TaskProgressChanged",
"MessageSeverity": "OK",
"Resolution": "None."
},
...
{
"@odata.type": "#Message.v1_1_1.Message",
"Message":
"The task with Id '0' has changed to progress 100 percent complete.",
"MessageArgs": [
"0",
"100"
],
"MessageId": "TaskEvent.1.0.TaskProgressChanged",
"MessageSeverity": "OK",
"Resolution": "None."
},
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The task with Id '0' has completed.",
"MessageArgs": [
"0"
],
"MessageId": "TaskEvent.1.0.TaskCompletedOK",
"MessageSeverity": "OK",
"Resolution": "None."
}
],
"Name": "Task 0",
"Payload": {
"HttpHeaders": [],
"HttpOperation": "POST",
"JsonBody": "null",
"TargetUri": "/redfish/v1/UpdateService/update"
},
"PercentComplete": 100,
"StartTime": "2025-06-11T09:16:15+00:00",
"TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0",
"TaskState": "Completed",
"TaskStatus": "OK"
}
5. Check inventory again
root@bmc:~# curl -u root:0penBmc -k -X GET
https://localhost/redfish/v1/UpdateService/FirmwareInventory/
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory",
"@odata.type":
"#SoftwareInventoryCollection.SoftwareInventoryCollection",
"Members": [
{
"@odata.id":
"/redfish/v1/UpdateService/FirmwareInventory/Harma_MB_CPLD_4656"
},
{
"@odata.id":
"/redfish/v1/UpdateService/FirmwareInventory/Harma_SCM_CPLD_7073"
}
],
"Members@odata.count": 27,
"Name": "Software Inventory Collection"
}
6. Check firmware information again after ac cycle
root@bmc:~# curl -u root:0penBmc -k -X GET
https://.../FirmwareInventory/Harma_SCM_CPLD_7335
{
"@odata.id":
"/redfish/v1/UpdateService/FirmwareInventory/Harma_SCM_CPLD_7335",
"@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "Harma_SCM_CPLD_7335",
"Name": "Software Inventory",
"Status": {
"Health": "Warning",
"HealthRollup": "OK",
"State": "Disabled"
},
"Updateable": true,
"Version": "00010007"
}
```
Change-Id: I203e86e3756d9747efb1994f32b2be2d027ccb70
Signed-off-by: Daniel Hsu <Daniel-Hsu@quantatw.com>
diff --git a/configurations/meta/harma_mb.json b/configurations/meta/harma_mb.json
index 8cb4e30..9d5dc64 100644
--- a/configurations/meta/harma_mb.json
+++ b/configurations/meta/harma_mb.json
@@ -757,6 +757,16 @@
"Type": "ISL69269Firmware"
},
{
+ "Address": "0x40",
+ "Bus": 5,
+ "FirmwareInfo": {
+ "CompatibleHardware": "com.meta.Hardware.Harma.CPLD.LCMXO3LF_4300C_mb",
+ "VendorIANA": 40981
+ },
+ "Name": "Harma_MB_CPLD",
+ "Type": "LatticeMachXO3Firmware"
+ },
+ {
"Address": "0x20",
"Bus": 28,
"Labels": [
diff --git a/configurations/meta/harma_mb_vr_infineon.json b/configurations/meta/harma_mb_vr_infineon.json
index 909c898..3b3a395 100644
--- a/configurations/meta/harma_mb_vr_infineon.json
+++ b/configurations/meta/harma_mb_vr_infineon.json
@@ -416,6 +416,16 @@
"power1_Name": "NIC_MEZZ_P12V_PWR_W"
},
{
+ "Address": "0x40",
+ "Bus": 5,
+ "FirmwareInfo": {
+ "CompatibleHardware": "com.meta.Hardware.Harma.CPLD.LCMXO3LF_4300C_mb",
+ "VendorIANA": 40981
+ },
+ "Name": "Harma_MB_CPLD",
+ "Type": "LatticeMachXO3Firmware"
+ },
+ {
"Address": "0x20",
"Bus": 28,
"Labels": [
diff --git a/configurations/meta/harma_scm.json b/configurations/meta/harma_scm.json
index 23f4dce..bee2770 100644
--- a/configurations/meta/harma_scm.json
+++ b/configurations/meta/harma_scm.json
@@ -172,6 +172,16 @@
"Type": "GPIOLeakDetector"
},
{
+ "Address": "0x40",
+ "Bus": 15,
+ "FirmwareInfo": {
+ "CompatibleHardware": "com.meta.Hardware.Harma.CPLD.LCMXO3LF_2100C_scm",
+ "VendorIANA": 40981
+ },
+ "Name": "Harma_SCM_CPLD",
+ "Type": "LatticeMachXO3Firmware"
+ },
+ {
"Address": "0x4B",
"Bus": 1,
"Name": "SCM_INLET_TEMP_C",