i2c-vr: isl69269: fix tx buffer copy in program()
The data (e.g. pData[i].data) layout is: [addr, cmd, data0..dataN].
Fixed to copy from data+1 (skipping addr) with correct length to
properly format the I2C transmission buffer.
Tested:
```
1. Check firmware info: (current version 5FFB1D09)
~$ curl -k -u root:0penBmc -X GET https://10.2.230.66/redfish/v1/UpdateService/FirmwareInventory/Catalina_PDB_vr_n1_8217
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Catalina_PDB_vr_n1_8217",
"@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "Catalina_PDB_vr_n1_8217",
"Name": "Software Inventory",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Updateable": true,
"Version": "5FFB1D09"
}
2. Trigger Update: (update to version C001A89C)
~$ curl -k -u root:0penBmc \
-H "Content-Type:multipart/form-data" \
-X POST \
-F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/Catalina_PDB_vr_n1_8217\"],\"@Redfish.OperationApplyTime\":\"OnReset\"};type=application/json" \
-F "UpdateFile=@catalina-raa-n1_C001A89C.pldm;type=application/octet-stream" \
https://10.2.230.66/redfish/v1/UpdateService/update-multipart
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"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."
}
],
"Name": "Task 0",
"Payload": {
"HttpHeaders": [],
"HttpOperation": "POST",
"TargetUri": "/redfish/v1/UpdateService/update-multipart"
},
"PercentComplete": 0,
"StartTime": "2025-09-17T17:15:50+00:00",
"TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0",
"TaskState": "Running",
"TaskStatus": "OK"
}
3. After AC cycle check firmware info again:
~$ curl -k -u root:0penBmc -X GET https://10.2.230.66/redfish/v1/UpdateService/FirmwareInventory/Catalina_PDB_vr_n1_332
{
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Catalina_PDB_vr_n1_332",
"@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory",
"Description": "Unknown image",
"Id": "Catalina_PDB_vr_n1_332",
"Name": "Software Inventory",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Updateable": true,
"Version": "C001A89C"
}
```
Change-Id: I454ad86c2aaa74f675cd5c753a37603bc3e55448
Signed-off-by: Cosmo Chou <cosmo.chou@quantatw.com>
diff --git a/i2c-vr/isl69269/isl69269.cpp b/i2c-vr/isl69269/isl69269.cpp
index 42fb925..399a80f 100644
--- a/i2c-vr/isl69269/isl69269.cpp
+++ b/i2c-vr/isl69269/isl69269.cpp
@@ -390,9 +390,8 @@
for (int i = 0; i < configuration.wrCnt; i++)
{
- tbuf[0] = configuration.pData[i].cmd;
- std::memcpy(tbuf + 1, &configuration.pData[i].data,
- configuration.pData[i].len - 1);
+ std::memcpy(tbuf, configuration.pData[i].data + 1,
+ configuration.pData[i].len);
if (!(co_await i2cInterface.sendReceive(
tbuf, configuration.pData[i].len, rbuf, rlen)))