summaryrefslogtreecommitdiffstats
path: root/src/usr/testcore
diff options
context:
space:
mode:
authorRoland Veloz <rveloz@us.ibm.com>2017-08-23 10:29:57 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-10-06 14:22:35 -0400
commit2a1cc4f4045ddfb247a7be1a18593a9836db8412 (patch)
tree880c73ec0af9e7ffb14df3686a8a5502cdfad8cd /src/usr/testcore
parent7e787acb321e220f9ba0f4a17a408e06b5b4cef0 (diff)
downloadtalos-hostboot-2a1cc4f4045ddfb247a7be1a18593a9836db8412.tar.gz
talos-hostboot-2a1cc4f4045ddfb247a7be1a18593a9836db8412.zip
Updated VPD from HBRT on FSP systems
Created a generic message type that is used as a mailbox message that is passed from HBRT to FSP. The new generic message type is used to make a VPD write call. Change-Id: I21240d19909f786d525e2a98878000af4aea6e9f RTC:171488 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45048 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/testcore')
-rw-r--r--src/usr/testcore/rtloader/loader.H65
1 files changed, 50 insertions, 15 deletions
diff --git a/src/usr/testcore/rtloader/loader.H b/src/usr/testcore/rtloader/loader.H
index 97efc782f..60056c633 100644
--- a/src/usr/testcore/rtloader/loader.H
+++ b/src/usr/testcore/rtloader/loader.H
@@ -724,7 +724,6 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
hostInterfaces::hbrt_fw_msg* l_resp_fw_msg =
(hostInterfaces::hbrt_fw_msg*) o_resp;
-
if (*o_respLen < (hostInterfaces::HBRT_FW_MSG_BASE_SIZE +
sizeof(l_resp_fw_msg->resp_generic)))
{
@@ -742,7 +741,7 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
break;
}
- TRACFCOMP(g_trac_hbrt, ENTER_MRK
+ TRACFCOMP(g_trac_hbrt,
"rt_firmware_request for HCODE SCOM update: "
"type:%d, chipId:0x%X, section:%d, "
"operation:%d, scomAddr:0x%X scomData:0x%X",
@@ -753,14 +752,13 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
l_req_fw_msg->req_hcode_update.i_scomAddr,
l_req_fw_msg->req_hcode_update.i_scomData);
- l_resp_fw_msg->io_type =
- hostInterfaces::HBRT_FW_MSG_TYPE_RESP_GENERIC;
+ l_resp_fw_msg->io_type =
+ hostInterfaces::HBRT_FW_MSG_TYPE_RESP_GENERIC;
- // dummy return value for testing
- l_resp_fw_msg->resp_generic.o_status = 264;
+ // dummy return value for testing
+ l_resp_fw_msg->resp_generic.o_status = 264;
- TRACFCOMP(g_trac_hbrt, EXIT_MRK"rt_firmware_request");
- retVal = 1; // just return 1 for testing
+ retVal = 1; // just return 1 for testing
}
else if (hostInterfaces::HBRT_FW_MSG_TYPE_ERROR_LOG
== l_req_fw_msg->io_type)
@@ -781,7 +779,7 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
}
- TRACFCOMP(g_trac_hbrt, ENTER_MRK
+ TRACFCOMP(g_trac_hbrt,
"rt_firmware_request for error log: "
"type:%d, plid:0x%08x, size:%d, data:0x%02x",
l_req_fw_msg->io_type,
@@ -789,22 +787,59 @@ class RuntimeLoaderTest : public CxxTest::TestSuite
l_req_fw_msg->error_log.i_errlSize,
l_req_fw_msg->error_log.i_data);
- l_resp_fw_msg->io_type =
+ l_resp_fw_msg->io_type =
hostInterfaces::HBRT_FW_MSG_TYPE_RESP_GENERIC;
- // dummy return value for testing
- l_resp_fw_msg->resp_generic.o_status = 20;
+ // dummy return value for testing
+ l_resp_fw_msg->resp_generic.o_status = 20;
+
+ retVal = 0; // just return 0 for testing
+ }
+ else if (hostInterfaces::HBRT_FW_MSG_HBRT_FSP
+ == l_req_fw_msg->io_type)
+ {
+ if (i_reqLen < (hostInterfaces::HBRT_FW_MSG_BASE_SIZE +
+ sizeof(l_req_fw_msg->generic_message)))
+ {
+ retVal = -EINVAL;
+ break;
+ }
- TRACFCOMP(g_trac_hbrt, EXIT_MRK"rt_firmware_request");
- retVal = 0; // just return 0 for testing
+ TRACFCOMP(g_trac_hbrt,
+ "rt_firmware_request for VPD Write Msg: "
+ "type:0x%.8X, msgq:0x%.8X, VPD type:0x%.8X, data:0x%X",
+ l_req_fw_msg->io_type,
+ l_req_fw_msg->generic_message.msgq,
+ l_req_fw_msg->generic_message.msgType,
+ l_req_fw_msg->generic_message.data);
+
+ l_resp_fw_msg->io_type =
+ hostInterfaces::HBRT_FW_MSG_HBRT_FSP_RESP;
+
+ // random testing data
+ l_resp_fw_msg->generic_message_resp.msgq = 0x800;
+ l_resp_fw_msg->generic_message_resp.msgType = 0x900;
+ l_resp_fw_msg->generic_message_resp.errPlid = 0xA00;
+ retVal = 0;
+
+ TRACFCOMP(g_trac_hbrt,
+ "rt_firmware_request for VPD Write Msg response: "
+ "type:0x%.8X, msgq:0x%.8X, msgType:0x%.8X,"
+ " errPlid:0x%X, retVal=%d",
+ l_resp_fw_msg->io_type,
+ l_resp_fw_msg->generic_message_resp.msgq,
+ l_resp_fw_msg->generic_message_resp.msgType,
+ l_resp_fw_msg->generic_message_resp.errPlid,
+ retVal);
}
else
{
- TRACFCOMP(g_trac_hbrt, ENTER_MRK
+ TRACFCOMP(g_trac_hbrt,
"rt_firmware_request an unrecognized request: "
"type:%d", l_req_fw_msg->io_type);
}
} while (0) ;
+
return retVal;
}
OpenPOWER on IntegriCloud