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>
6 files changed
tree: 797a07ec60b8b640533801b60f7f79bb439652cd
  1. bios/
  2. bmc/
  3. common/
  4. cpld/
  5. eeprom-device/
  6. i2c-vr/
  7. subprojects/
  8. test/
  9. .clang-format
  10. .clang-tidy
  11. .gitignore
  12. .shellcheck
  13. LICENSE
  14. meson.build
  15. meson.options
  16. OWNERS
  17. README.md
README.md

phosphor-bmc-code-mgmt

Phosphor BMC Code Management provides a set of system software management applications. More information can be found at Software Architecture

To Build

To build this package, do the following steps:

  1. meson build
  2. ninja -C build

To clean the repository run rm -r build.