#
61e12672 |
| 12-Jun-2025 |
Daniel Hsu <Daniel-Hsu@quantatw.com> |
cpld: lattice: to align with new EM Type scheme
Update CPLD Lattice code updater to align with new EM Type scheme https://gerrit.openbmc.org/c/openbmc/entity-manager/+/81063
Tested on Harma MB cpld
cpld: lattice: to align with new EM Type scheme
Update CPLD Lattice code updater to align with new EM Type scheme https://gerrit.openbmc.org/c/openbmc/entity-manager/+/81063
Tested on Harma MB cpld:
1. Check CPLD version root@bmc:~# curl -u root:0penBmc -k -X GET https://.../Harma_MB_CPLD_6845 { "@odata.id": "/.../Harma_MB_CPLD_6845", "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", "Description": "Unknown image", "Id": "Harma_MB_CPLD_6845", "Name": "Software Inventory", "Status": { "Health": "Warning", "HealthRollup": "OK", "State": "Disabled" }, "Updateable": true, "Version": "00000220" }
2. Trigger update firmware curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{ \"Targets\":[ \"/redfish/v1/UpdateService/FirmwareInventory/Harma_MB_CPLD_6845\"], \"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" -F "UpdateFile=@mb_cpld_v224.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" }
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-13T06:19:25+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 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 90 percent complete.", "MessageArgs": [ "0", "90" ], "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-13T06:19:13+00:00", "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0", "TaskState": "Completed", "TaskStatus": "OK" }
3. Check version again after ac cycle root@bmc:~# curl -u root:0penBmc -k -X GET https://localhost/.../Harma_MB_CPLD_2181 { "@odata.id": "/.../Harma_MB_CPLD_2181", "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", "Description": "Unknown image", "Id": "Harma_MB_CPLD_2181", "Name": "Software Inventory", "Status": { "Health": "Warning", "HealthRollup": "OK", "State": "Disabled" }, "Updateable": true, "Version": "00000224" }
Change-Id: I33b6f211a375a47a2139164347e697a2d0aba419 Signed-off-by: Daniel Hsu <Daniel-Hsu@quantatw.com>
show more ...
|
#
f6470b5e |
| 26-Feb-2025 |
Daniel Hsu <Daniel-Hsu@quantatw.com> |
fw-update: cpld code updater
This commit introduces a code updater for CPLD. The Key features of this updater include: - configuring chip vendor and name - update CPLD through I2C
1. Display the fw
fw-update: cpld code updater
This commit introduces a code updater for CPLD. The Key features of this updater include: - configuring chip vendor and name - update CPLD through I2C
1. Display the fw inventory curl ... -X GET https://localhost/redfish/v1/UpdateService/FirmwareInventory { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory", "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection", "Members": [ ... { "@odata.id": ".../LCMXO3LF_4300C_6194" }, ... ], "Members@odata.count": 26, "Name": "Software Inventory Collection" }
2. Query CPLD version curl ... -X GET https://localhost/redfish/v1 /UpdateService/FirmwareInventory/LCMXO3LF_4300C_6194 { "@odata.id": "/.../LCMXO3LF_4300C_6194", "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", "Description": "Unknown image", "Id": "LCMXO3LF_4300C_6194", "Name": "Software Inventory", "Status": { "Health": "Warning", "HealthRollup": "OK", "State": "Disabled" }, "Updateable": false, "Version": "00000220" }
3. Trigger the fw update via redfish curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\": [\"/redfish/v1/UpdateService/FirmwareInventory/LCMXO3LF_4300C_6194\"], \"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" -F "UpdateFile=@testcpld.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. Query Task status curl ... -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-05-28T08:10:22+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": "... progress 15 percent complete.", "MessageArgs": [ "0", "15" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 20 percent complete.", "MessageArgs": [ "0", "20" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 25 percent complete.", "MessageArgs": [ "0", "25" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 30 percent complete.", "MessageArgs": [ "0", "30" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 40 percent complete.", "MessageArgs": [ "0", "40" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 50 percent complete.", "MessageArgs": [ "0", "50" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 60 percent complete.", "MessageArgs": [ "0", "60" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 70 percent complete.", "MessageArgs": [ "0", "70" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 80 percent complete.", "MessageArgs": [ "0", "80" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... progress 90 percent complete.", "MessageArgs": [ "0", "90" ], "MessageId": "TaskEvent.1.0.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "... 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-05-28T08:10:06+00:00", "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0", "TaskState": "Completed", "TaskStatus": "OK" }
5. Display the fw inventory with newly updated fw. curl ... -X GET https://localhost/redfish/v1/UpdateService/FirmwareInventory { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory", "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection", "Members": [ ... { "@odata.id": ".../LCMXO3LF_4300C_1571" }, ... ], "Members@odata.count": 26, "Name": "Software Inventory Collection" }
6. Query CPLD version again After AC cycle ..., so the number would be different. curl ... -X GET https://localhost/redfish/v1 /UpdateService/FirmwareInventory/LCMXO3LF_4300C_4643 { "@odata.id": "/.../LCMXO3LF_4300C_4643", "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", "Description": "Unknown image", "Id": "LCMXO3LF_4300C_4643", "Name": "Software Inventory", "Status": { "Health": "Warning", "HealthRollup": "OK", "State": "Disabled" }, "Updateable": false, "Version": "00000224" }
Change-Id: Ife8e30a00bfbb307e6e4eb55838a397c8a8162bd Signed-off-by: Daniel Hsu <Daniel-Hsu@quantatw.com>
show more ...
|