oem ibm: support reading LIDs based on type
This commit reads the LIDs requested by Host. Host
sends request as T or P side. This commit evaluates the
current boot side and reads the appropriate LIDs.
Also this commit stores the image LIDs sent by Host
during an inband code update
Change-Id: Ia4bae68fa95f19bc228ef7002493d54abab3dc93
Signed-off-by: Sampa Misra <sampmisr@in.ibm.com>
diff --git a/oem/ibm/libpldmresponder/file_io.cpp b/oem/ibm/libpldmresponder/file_io.cpp
index 6b963d0..1192510 100644
--- a/oem/ibm/libpldmresponder/file_io.cpp
+++ b/oem/ibm/libpldmresponder/file_io.cpp
@@ -602,7 +602,8 @@
}
Response rwFileByTypeIntoMemory(uint8_t cmd, const pldm_msg* request,
- size_t payloadLength)
+ size_t payloadLength,
+ oem_platform::Handler* oemPlatformHandler)
{
Response response(
sizeof(pldm_msg_hdr) + PLDM_RW_FILE_BY_TYPE_MEM_RESP_BYTES, 0);
@@ -655,8 +656,10 @@
}
rc = cmd == PLDM_WRITE_FILE_BY_TYPE_FROM_MEMORY
- ? handler->writeFromMemory(offset, length, address)
- : handler->readIntoMemory(offset, length, address);
+ ? handler->writeFromMemory(offset, length, address,
+ oemPlatformHandler)
+ : handler->readIntoMemory(offset, length, address,
+ oemPlatformHandler);
encode_rw_file_by_type_memory_resp(request->hdr.instance_id, cmd, rc,
length, responsePtr);
return response;
@@ -666,14 +669,14 @@
size_t payloadLength)
{
return rwFileByTypeIntoMemory(PLDM_WRITE_FILE_BY_TYPE_FROM_MEMORY, request,
- payloadLength);
+ payloadLength, oemPlatformHandler);
}
Response Handler::readFileByTypeIntoMemory(const pldm_msg* request,
size_t payloadLength)
{
return rwFileByTypeIntoMemory(PLDM_READ_FILE_BY_TYPE_INTO_MEMORY, request,
- payloadLength);
+ payloadLength, oemPlatformHandler);
}
Response Handler::writeFileByType(const pldm_msg* request, size_t payloadLength)
@@ -719,7 +722,7 @@
rc = handler->write(reinterpret_cast<const char*>(
request->payload + PLDM_RW_FILE_BY_TYPE_REQ_BYTES),
- offset, length);
+ offset, length, oemPlatformHandler);
encode_rw_file_by_type_resp(request->hdr.instance_id,
PLDM_WRITE_FILE_BY_TYPE, rc, length,
responsePtr);
@@ -766,7 +769,7 @@
return response;
}
- rc = handler->read(offset, length, response);
+ rc = handler->read(offset, length, response, oemPlatformHandler);
responsePtr = reinterpret_cast<pldm_msg*>(response.data());
encode_rw_file_by_type_resp(request->hdr.instance_id,
PLDM_READ_FILE_BY_TYPE, rc, length,